Risultati da 1 a 8 di 8

Discussione: come filtrare dati



  1. #1
    L'avatar di trevis81
    Clicca e Apri
    Data Registrazione
    Nov 2015
    Località
    zanè
    Messaggi
    4
    Versione Office
    excel 2010
    Likes ricevuti
    0
    Likes dati
    0

    come filtrare dati

    Buongiorno a tutti.
    Vi presento il mio problema.
    Ho un file excel con tre fogli nei quali ci sono le persone che hanno partecipato a dei corsi.
    Nello specifico devo andare a creare un quarto foglio nel quale ci siano tutte le persone che hanno fatto i diversi corsi.
    Non necessariamente chi ha fatto il primo corso ha fatto il secondo o il terzo.
    Può esserci però chi ha svolto anche due o tre delle tipologie di corsi.
    Adesso vi spiego come è redatto il file.
    Nel primo foglio abbiamo nella colonna b le persone e nelle successive colonne che sono 6 altre informazioni sulla tipologia del corso.
    Nel secondo foglio abbiamo nella colonna b le persone e nelle successive colonne che sono 7 altre informazioni sulla tipologia del corso.
    Nel terzo foglio abbiamo nella colonna b le persone e nelle successive colonne che sono 6 altre informazioni sulla tipologia del corso.
    In questi fogli ogni persona ha nella sua riga le informazioni circa la tipologia del corso.
    Ora devo fare un quarto foglio con tutti i nomi delle persone che sono contenuti nei tre fogli precedenti con le relative informazioni dei corsi.
    Come fare?
    Un grazie a chi mi risponderà.
    Siccome non sono espertissimo di excel mi guidate passo passo nella risoluzione del problema?
    Buona giornata a tutti

  2. #2
    L'avatar di trevis81
    Clicca e Apri
    Data Registrazione
    Nov 2015
    Località
    zanè
    Messaggi
    4
    Versione Office
    excel 2010
    Likes ricevuti
    0
    Likes dati
    0
    nel file che ho allegato il quarto foglio è il risultato di ciò che vorrei ottenere.

  3. #3
    L'avatar di Baloon_50
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Milano - Italy
    Età
    67
    Messaggi
    3334
    Versione Office
    2013 PC
    Likes ricevuti
    481
    Likes dati
    49
    Citazione Originariamente Scritto da trevis81 Visualizza Messaggio
    nel file che ho allegato il quarto foglio è il risultato di ciò che vorrei ottenere.
    A te va bene anche una soluzione VBA o vuoi le formule?
    Se ti va il VBA proverò a fare quanto chiedi.
    Fammi sapere

    A volte basta usare parole inutili come “grazie” e “per favore” per rendere la vita più bella.
    (ELKonigsburg)
    Dice il saggio : "se vuoi essere aiutato devi metter l'allegato"
    (Nick Carter - Ten)

  4. #4
    L'avatar di Baloon_50
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Milano - Italy
    Età
    67
    Messaggi
    3334
    Versione Office
    2013 PC
    Likes ricevuti
    481
    Likes dati
    49
    Citazione Originariamente Scritto da trevis81 Visualizza Messaggio
    nel file che ho allegato il quarto foglio è il risultato di ciò che vorrei ottenere.
    Visto che non hai risposto ed io non avevo niente da fare, ti ho preparato il tutto col VBA.
    Dammi un riscontro se ti va bene o meno.

    Per chi non può scaricarsi il file, allego il codice. :999:

    Codice: 
    Sub EstraiDati()
    
    Dim uriga, uriga1, uriga2, uriga3 As Long
    Dim i, e As Integer
    Dim wsh, wsh1, wsh2, wsh3 As Worksheet
    Dim nominativo As String
    
    
    Application.ScreenUpdating = False
    Set wsh = ThisWorkbook.Worksheets("Foglio4")
    '---------------copio nominativi su foglio 4-------------------------------
    For i = 1 To 3
        Set wsh1 = ThisWorkbook.Sheets(i)
        uriga1 = wsh1.Cells(Rows.Count, 2).End(xlUp).Row
        uriga = wsh.Cells(Rows.Count, 2).End(xlUp).Row
        wsh1.Range("B2:B" & uriga1).Copy
        wsh.Range("B" & uriga + 1).PasteSpecial
    Next
    uriga = wsh.Cells(Rows.Count, 2).End(xlUp).Row
    wsh.Range("B2" & ":B" & uriga).RemoveDuplicates Columns:=Array(1), _
    Header:=xlNo
    '---------------------------metto in ordine alfabetico---------------------
        With wsh.Sort
            .SetRange Range("B2:B" & uriga)
            .Header = xlGuess
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
    '-------------------------------------------------------------------------
    Set wsh1 = ThisWorkbook.Sheets(1)
    Set wsh2 = ThisWorkbook.Sheets(2)
    Set wsh3 = ThisWorkbook.Sheets(3)
    uriga = wsh.Cells(Rows.Count, 2).End(xlUp).Row
    uriga1 = wsh1.Cells(Rows.Count, 1).End(xlUp).Row
    uriga2 = wsh2.Cells(Rows.Count, 2).End(xlUp).Row
    uriga3 = wsh3.Cells(Rows.Count, 3).End(xlUp).Row
    ' -----------------------tutti i nominativi del foglio 4------------------
    For e = 2 To uriga
        nominativo = wsh.Cells(e, 2).Value
    '--------------------------copia nominativi del corso 1------------------
        For i = 2 To uriga1
            If wsh1.Cells(i, 2).Value = nominativo Then
                wsh1.Range("C" & i & ":H" & i).Copy
                wsh.Range("C" & e).PasteSpecial
                Application.CutCopyMode = False
                Exit For
            End If
        Next
    '---------------------copia nominativi del corso 2----------------------------
        For i = 2 To uriga2
            If wsh2.Cells(i, 2).Value = nominativo Then
                wsh2.Range("C" & i & ":I" & i).Copy
                wsh.Range("I" & e).PasteSpecial
                Application.CutCopyMode = False
                Exit For
            End If
        Next
    '----------------------------copia nominativi del corso 3--------------------------
        For i = 2 To uriga3
            If wsh3.Cells(i, 2).Value = nominativo Then
                wsh3.Range("C" & i & ":H" & i).Copy
                wsh.Range("P" & e).PasteSpecial
                Application.CutCopyMode = False
                Exit For
            End If
        Next
    Next
    '----------------------------chiusura-------------------------------------------
    Set wsh = Nothing
    Set wsh1 = Nothing
    Set wsh2 = Nothing
    Set wsh3 = Nothing
    MsgBox ("Aggiornamento terminato"), vbInformation
    Application.ScreenUpdating = True
    
    
    End Sub

    A volte basta usare parole inutili come “grazie” e “per favore” per rendere la vita più bella.
    (ELKonigsburg)
    Dice il saggio : "se vuoi essere aiutato devi metter l'allegato"
    (Nick Carter - Ten)

  5. I seguenti utenti hanno dato un "Like"


  6. #5
    L'avatar di trevis81
    Clicca e Apri
    Data Registrazione
    Nov 2015
    Località
    zanè
    Messaggi
    4
    Versione Office
    excel 2010
    Likes ricevuti
    0
    Likes dati
    0
    ciao
    grazie mille
    funziona a meraviglia

  7. #6
    L'avatar di Baloon_50
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Milano - Italy
    Età
    67
    Messaggi
    3334
    Versione Office
    2013 PC
    Likes ricevuti
    481
    Likes dati
    49
    Citazione Originariamente Scritto da trevis81 Visualizza Messaggio
    ciao
    grazie mille
    funziona a meraviglia
    Grazie a te per il riscontro.

    Se è tutto ok per piacere metti la discussione come [RISOLTO]

    ciao

    A volte basta usare parole inutili come “grazie” e “per favore” per rendere la vita più bella.
    (ELKonigsburg)
    Dice il saggio : "se vuoi essere aiutato devi metter l'allegato"
    (Nick Carter - Ten)

  8. #7
    L'avatar di trevis81
    Clicca e Apri
    Data Registrazione
    Nov 2015
    Località
    zanè
    Messaggi
    4
    Versione Office
    excel 2010
    Likes ricevuti
    0
    Likes dati
    0
    ciao Baloon_50.
    buona giornata.
    come faccio a mettere la discussione su risolto?
    non so come fare.
    ho cercato finora ma invano.
    mi aiuti?
    grazie
    ciao

  9. #8
    L'avatar di Baloon_50
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Milano - Italy
    Età
    67
    Messaggi
    3334
    Versione Office
    2013 PC
    Likes ricevuti
    481
    Likes dati
    49
    Citazione Originariamente Scritto da trevis81 Visualizza Messaggio
    ciao Baloon_50.
    buona giornata.
    come faccio a mettere la discussione su risolto?
    non so come fare.
    ho cercato finora ma invano.
    mi aiuti?
    grazie
    ciao
    Vai nella barra dei menu, situata all’inizio di questa discussione, troverai il menu “Strumenti Discussione” quindi scegli “Segna questo Thread come risolto”
    :999:

    A volte basta usare parole inutili come “grazie” e “per favore” per rendere la vita più bella.
    (ELKonigsburg)
    Dice il saggio : "se vuoi essere aiutato devi metter l'allegato"
    (Nick Carter - Ten)

Discussioni Simili

  1. [Risolto] filtrare dati attraverso criteri imposti
    Di FOSCOJR nel forum Domande su Excel in generale
    Risposte: 14
    Ultimo Messaggio: 20/02/17, 09:26
  2. Filtrare dati con criteri provenienti da file esterno
    Di mrgiaco nel forum Domande su Excel VBA e MACRO
    Risposte: 4
    Ultimo Messaggio: 07/02/17, 21:36
  3. filtrare campo contenete H:m:s
    Di zizus nel forum Domande su Excel in generale
    Risposte: 2
    Ultimo Messaggio: 04/01/17, 16:02
  4. Filtrare una pivot
    Di MarcoIpad nel forum Domande su Excel in generale
    Risposte: 12
    Ultimo Messaggio: 01/11/16, 09:43
  5. Inserimento dati da un indirizzo ,e filtrare
    Di Fhazza nel forum Domande su Excel VBA e MACRO
    Risposte: 2
    Ultimo Messaggio: 02/02/16, 00:19

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •