Pagina 1 di 2 12 UltimaUltima
Risultati da 1 a 30 di 39

Discussione: Ricerca su più fogli



  1. #1
    L'avatar di nick0573
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Pistoia
    Età
    47
    Messaggi
    1072
    Versione Office
    Excel 2016
    Likes ricevuti
    19
    Likes dati
    15

    Ricerca su più fogli

    Ciao a tutti gli amici del forum
    sono alle prese di nuovo con una ricerca su più fogli.

    Vorrei nel foglio "cerca" scrivere in B4 il nome del foglio dove cercare sd esempio (foglio1, foglio2, foglio3,)
    e in C4 dovrebbe elencare un menu a tendina di tutti i cognomi riferiti al nome del foglio che scrivo in B2
    a questo punto scelto il cognome in C4 riempire i dati nella tabella A7:E7.......


    Se possibile avevo pensato di farlo con la definizione dei nomi in quanto realmente i fogli sono circa 15
    e i nomi per ogni foglio una ventina......si accettano suggerimenti..

    Grazie a tuttti......
    File Allegati File Allegati
    windows 10
    Excel 2016

  2. #2

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4016
    Versione Office
    2013
    Likes ricevuti
    1225
    Likes dati
    923
    Ciao nick,
    visto che per ottenere l'elenco dei fogli ho utilizzato il VBA (con l'evento di attivazione del foglio "Cerca")... ho voluto continuare con questo.

    Ci sono 2 nomi definiti:
    "Fogli" e "Cognomi" che si aggiornano a seconda di quello che scegli nelle celle "B4" e "C4" (le quali hanno un convalida dati).
    Ho usato la colonna "I" del foglio "Cerca" per la lista dei Fogli (naturalmente la puoi nascondere).

    Negli elenchi ci sono dei casi di omonimia per i cognomi, quindi se dovessi scegliere un cognome che ha più di una corrispondenza, si aprirà una userform dove dovrai scegliere anche il nome da una combobox....

    Non ho fatto molti test, quindi potrebbero esserci uno o più errori (a te verificare :188: ).

    I codici nel modulo di classe del foglio "Cerca":

    Codice: 
    Option Explicit
    
    
    Private Sub Worksheet_Activate()
    Dim uRigaF As Integer, i As Integer, Riga As Integer
    
    
    uRigaF = Range("I" & Rows.Count).End(xlUp).Row + 1
    Range("I2:I" & uRigaF).ClearContents
    Riga = 2
    For i = 1 To Sheets.Count
        If Sheets(i).Name <> "Cerca" Then
            Range("I" & Riga).Value = Sheets(i).Name
            Riga = Riga + 1
        End If
    Next i
    ThisWorkbook.Names("Fogli").RefersTo = Worksheets("Cerca").Range("I2:I" & Sheets.Count)
    End Sub
    
    
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim uRigaC As Long, i As Long, Uguali As Long, Cognome As String, j As Integer
    
    
    If Not Intersect(Target, Range("B4")) Is Nothing Then
        Range("A7:E7").ClearContents
        If Target.Value <> "" Then
        Range("C4").ClearContents
            With Worksheets(Target.Value)
                uRigaC = .Range("A" & Rows.Count).End(xlUp).Row
                ThisWorkbook.Names("Cognomi").RefersTo = .Range("A2:A" & uRigaC)
            End With
        End If
    End If
    
    
    If Not Intersect(Target, Range("C4")) Is Nothing Then
        Range("A7:E7").ClearContents
        If Target.Value <> "" Then
            Range("D4").ClearContents
            With Worksheets(Range("B4").Value)
                uRigaC = .Range("A" & Rows.Count).End(xlUp).Row
                Uguali = Application.WorksheetFunction.CountIf(.Range("A2:A" & uRigaC), Target.Value)
                If Uguali > 1 Then
                    MsgBox "Ci sono più persone con questo cognome." & vbCrLf & _
                    "Specificare anche il nome!", vbOKOnly
                    Range("C4").Select
                    Call Inserire_Nome
                Else
                    Cognome = Range("C4").Value
                    For i = 2 To uRigaC
                        If .Cells(i, 1).Value = Cognome Then
                            For j = 1 To 5
                                Cells(7, j).Value = .Cells(i, j).Value
                            Next j
                            Exit Sub
                        End If
                    Next i
                End If
            End With
        End If
    End If
    End Sub
    Mentre quelli per la UserForm:

    Codice: 
    Option Explicit
    
    
    Private Sub CommandButton1_Click()
    Dim Wks As Worksheet, i As Long, Cognome As String, uRiga As Long, Nome As String
    Dim j As Integer
    
    
    If ComboBox1.Value = "" Then
        MsgBox "Scgegliere un nome!!!", vbOKOnly
        ComboBox1.SetFocus
        Exit Sub
    End If
    
    
    Set Wks = Worksheets(Range("B4").Value)
    uRiga = Wks.Range("A" & Rows.Count).End(xlUp).Row
    Cognome = Range("C4").Value
    Nome = ComboBox1.Value
    With Wks
        For i = 2 To uRiga
            If .Cells(i, 1).Value = Cognome And .Cells(i, 2).Value = Nome Then
                For j = 1 To 5
                    Cells(7, j).Value = .Cells(i, j).Value
                Next j
                GoTo fine
            End If
        Next i
    End With
    fine:
    Set Wks = Nothing
    Unload UserForm1
    End Sub
    
    
    Private Sub CommandButton2_Click()
    Unload UserForm1
    End Sub
    
    
    Private Sub UserForm_Initialize()
    Dim Wks As Worksheet, i As Long, Cognome As String, uRiga As Long
    
    
    Set Wks = Worksheets(Range("B4").Value)
    uRiga = Wks.Range("A" & Rows.Count).End(xlUp).Row
    Cognome = Range("C4").Value
    With Wks
        For i = 2 To uRiga
            If .Cells(i, 1).Value = Cognome Then
                UserForm1.ComboBox1.AddItem .Cells(i, 2).Value
            End If
        Next i
    End With
    Set Wks = Nothing
    End Sub
    Fammi sapere...
    Ciao

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."

  3. #3
    L'avatar di nick0573
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Pistoia
    Età
    47
    Messaggi
    1072
    Versione Office
    Excel 2016
    Likes ricevuti
    19
    Likes dati
    15
    ciao Cromagno.......
    già controllato, e funziona come avevo bisogno il problema è che con il Vba non ci capisco poco o niente
    e adattarlo al mio caso reale non sò se ce la faccio
    ad esempio i fogl01 foglio 2 sono in realta anni......2002,2003,2004,....ect.ect.
    e i risultati della tabella cerca sono altri dati invece di nome cognome email tel. e cosi via

    però mi piacerebbe adattarlo al mio caso perche funziona benissimo

    come posso fare????
    windows 10
    Excel 2016

  4. #4

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4016
    Versione Office
    2013
    Likes ricevuti
    1225
    Likes dati
    923
    Ciao nick,
    se le differenze sono solamente quelle che hai esposto, le cose da cambiare sarebbero veramente poche.
    Ma... senza vedere il file non posso esserne certo.

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."

  5. #5
    L'avatar di nick0573
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Pistoia
    Età
    47
    Messaggi
    1072
    Versione Office
    Excel 2016
    Likes ricevuti
    19
    Likes dati
    15
    cancello tutti i dati sensibili e provo a mettere il file ...............
    grazie
    windows 10
    Excel 2016

  6. #6
    L'avatar di nick0573
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Pistoia
    Età
    47
    Messaggi
    1072
    Versione Office
    Excel 2016
    Likes ricevuti
    19
    Likes dati
    15
    molto vicino a questo....
    File Allegati File Allegati
    windows 10
    Excel 2016

  7. #7

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4016
    Versione Office
    2013
    Likes ricevuti
    1225
    Likes dati
    923
    Ciao nick,
    ho controllato di fretta perchè sto per uscire... comunque provalo.

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."

  8. #8
    L'avatar di nick0573
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Pistoia
    Età
    47
    Messaggi
    1072
    Versione Office
    Excel 2016
    Likes ricevuti
    19
    Likes dati
    15
    ok grazie provo e ti faccio sapere

    grazie
    windows 10
    Excel 2016

  9. #9
    L'avatar di nick0573
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Pistoia
    Età
    47
    Messaggi
    1072
    Versione Office
    Excel 2016
    Likes ricevuti
    19
    Likes dati
    15
    Sembra tutto perfetto Grazie

    sei stato grande

    unica cosa poi ogni anno devo aggiornare i fogli degli anni
    cioè sparirà ad esempio foglio 1996 e si aggiungerà in fondo il foglio 2011
    come devo aggiornare il Vba
    mano a mano che cambio gli anni dei fogli???

    Grazie ancora di tutto per aiuto
    windows 10
    Excel 2016

  10. #10

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4016
    Versione Office
    2013
    Likes ricevuti
    1225
    Likes dati
    923
    Si dovrebbe aggiornare tutto da solo anche se togli o aggiungi fogli...

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."

  11. #11
    L'avatar di nick0573
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Pistoia
    Età
    47
    Messaggi
    1072
    Versione Office
    Excel 2016
    Likes ricevuti
    19
    Likes dati
    15
    sei un grande grazie
    e la lista dei nomi dentro le tabelle ce ne posso scrivere finchè voglio??
    windows 10
    Excel 2016

  12. #12

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4016
    Versione Office
    2013
    Likes ricevuti
    1225
    Likes dati
    923
    Si,
    una volta che scegli il nome del foglio dal convalida dati, il codice ricerca l'ultima riga della colonna A di quel foglio e di conseguenza aggiorna la lista dei cognomi.
    L'importante è che la struttura della tabella sia la stessa per ogni foglio.

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."

  13. #13
    L'avatar di nick0573
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Pistoia
    Età
    47
    Messaggi
    1072
    Versione Office
    Excel 2016
    Likes ricevuti
    19
    Likes dati
    15
    quello si....
    però ho provato
    ed ho copiato il codice Vba del foglio schede nel mio originale e i le due convalide dati
    anno e cognome non me le rende
    devo copiare qualche altro funzione???
    non capisco come mai
    windows 10
    Excel 2016

  14. #14

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4016
    Versione Office
    2013
    Likes ricevuti
    1225
    Likes dati
    923
    I nomi e le convalide dati li ho creati manualmente.
    Il codice agisce sui nomi già esistenti.

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."

  15. #15
    L'avatar di nick0573
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Pistoia
    Età
    47
    Messaggi
    1072
    Versione Office
    Excel 2016
    Likes ricevuti
    19
    Likes dati
    15
    farò dello prove per arrivarne a capo
    Grazie
    windows 10
    Excel 2016

  16. #16
    L'avatar di nick0573
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Pistoia
    Età
    47
    Messaggi
    1072
    Versione Office
    Excel 2016
    Likes ricevuti
    19
    Likes dati
    15
    Scusa cromagno ti riallego il file originale da me modificato
    e non riesco a capire dove si trova errore, perche non và bene com il tuo
    Scusa e grazie ancora
    File Allegati File Allegati
    windows 10
    Excel 2016

  17. #17

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    53
    Messaggi
    7108
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2059
    Likes dati
    1296
    Ciao,
    propongo oltre alla soluzione col vba di Cromagno (che saluto) una soluzione con le formule (sono di fretta e quindi le ho inserite solo nel file iniziale), se va bene si possono sviluppare nel file completo.

    Due colonne di appoggio nel foglio cerca (che si possono nascondere)

    Per i nomi

    =SE(INDIRETTO(""&$B$4&"!"&"A2"):INDIRETTO(""&$B$4&"!"&"A20")=0;"";INDIRETTO(""&$B$4&"!"&"A2"):INDIRETTO(""&$B$4&"!"&"A20"))

    In B7

    =INDICE(INDIRETTO(""&$B$4&"!"&"b1"):INDIRETTO(""&$B$4&"!"&"b10");CONFRONTA(A7;INDIRETTO(""&$B$4&"!"&"a1"):INDIRETTO(""&$B$4&"!"&"a10");0))

    Allego file.
    File Allegati File Allegati
    Quando si scartano tutte le ipotesi possibili, quella che resta, anche se può sembrare improbabile, non può che essere quella giusta!

  18. #18
    L'avatar di nick0573
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Pistoia
    Età
    47
    Messaggi
    1072
    Versione Office
    Excel 2016
    Likes ricevuti
    19
    Likes dati
    15
    ciao ges e grazie prima di tutto

    potrebbe essere una soluzione al Vba con le formule
    sembra che funzioni
    potrebbe andare
    windows 10
    Excel 2016

  19. #19

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    53
    Messaggi
    7108
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2059
    Likes dati
    1296
    Allego il tuo foglio completo di formule, così potrai scegliere.
    File Allegati File Allegati
    Quando si scartano tutte le ipotesi possibili, quella che resta, anche se può sembrare improbabile, non può che essere quella giusta!

  20. #20
    L'avatar di nick0573
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Pistoia
    Età
    47
    Messaggi
    1072
    Versione Office
    Excel 2016
    Likes ricevuti
    19
    Likes dati
    15
    Grazie Ges come alsolito funziona e gia applicato

    Mille Grazie...........:97:

    Mi piacerebbe provare anche far funzionare il File di Cromagno in Vba, quello che ti ho allegato se possibile

    E comunque grazie veramente a tutti
    windows 10
    Excel 2016

  21. #21
    L'avatar di nick0573
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Pistoia
    Età
    47
    Messaggi
    1072
    Versione Office
    Excel 2016
    Likes ricevuti
    19
    Likes dati
    15
    Scusa Ges ma ce un inesattenza

    Non mi restituisce in nome Giusto

    Come mai
    windows 10
    Excel 2016

  22. #22
    L'avatar di nick0573
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Pistoia
    Età
    47
    Messaggi
    1072
    Versione Office
    Excel 2016
    Likes ricevuti
    19
    Likes dati
    15
    certi nomi tornano bene con il cognome altri no
    windows 10
    Excel 2016

  23. #23

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    53
    Messaggi
    7108
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2059
    Likes dati
    1296
    Mah, non saprei ... le formule mi sembrano giuste ... quale in particolare non ti trovi?
    Quando si scartano tutte le ipotesi possibili, quella che resta, anche se può sembrare improbabile, non può che essere quella giusta!

  24. #24
    L'avatar di nick0573
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Pistoia
    Età
    47
    Messaggi
    1072
    Versione Office
    Excel 2016
    Likes ricevuti
    19
    Likes dati
    15
    prova con il 2003
    vedrai che il nome non torna
    windows 10
    Excel 2016

  25. #25
    L'avatar di nick0573
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Pistoia
    Età
    47
    Messaggi
    1072
    Versione Office
    Excel 2016
    Likes ricevuti
    19
    Likes dati
    15
    Trova nel 2003 il secondo marco e si blocca li la Formula
    windows 10
    Excel 2016

  26. #26

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    53
    Messaggi
    7108
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2059
    Likes dati
    1296
    Ah! Ho capito.
    La formula che ho copiato era limitata nell'intervallo di ricerca, fino alla 11 esima riga:

    =INDICE(INDIRETTO(""&$B$4&"!"&"C4"):INDIRETTO(""&$B$4&"!"&"C11");CONFRONTA($A$7;INDIRETTO(""&$B$4&"!"&"B4"):INDIRETTO(""&$B$4&"!"&"B11")))

    Metto un intervallo più ampio, fino alla 50esima riga:

    =INDICE(INDIRETTO(""&$B$4&"!"&"C4"):INDIRETTO(""&$B$4&"!"&"C50");CONFRONTA($A$7;INDIRETTO(""&$B$4&"!"&"B4"):INDIRETTO(""&$B$4&"!"&"B50")))

    Allego file.
    File Allegati File Allegati
    Quando si scartano tutte le ipotesi possibili, quella che resta, anche se può sembrare improbabile, non può che essere quella giusta!

  27. I seguenti utenti hanno dato un "Like"


  28. #27
    L'avatar di nick0573
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Pistoia
    Età
    47
    Messaggi
    1072
    Versione Office
    Excel 2016
    Likes ricevuti
    19
    Likes dati
    15
    Ges Perfetto ora funziona tutto bene Grazie

    Ultima domanda come mai se in C4 nella convalida dati abbiamo messo la formula SCARTO(I8;;;CONTA.VALORI($I$8:$I$19)) per eliminare gli
    spazi vuoti, nel munu a tendina invece ci sono tutti gli spazi ????????
    Grazie ancora:255:
    windows 10
    Excel 2016

  29. #28
    L'avatar di nick0573
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Pistoia
    Età
    47
    Messaggi
    1072
    Versione Office
    Excel 2016
    Likes ricevuti
    19
    Likes dati
    15
    Mi sono accorto di un piccolo neo.........
    ad esempio nell anno 2006 ci sono due con lo stesso cognome ma due persone diverse
    Se non è un sgrosso stravolgimento di formula è possibile nella convalida dati dei cognomi poter scegliere entrambi
    Cioe.....compaiono due con lo stesso cognome,ma la formula indiretto mi restituisce sempre il primo nome che trova
    Grazie
    windows 10
    Excel 2016

  30. #29

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2801
    Versione Office
    Excel 2013
    Likes ricevuti
    1019
    Likes dati
    977
    Vorrei proporre la mia soluzione al solo scopo didattico visto che quella di Ges (che saluto) è già completa, senza scomodare Mr VBA.
    Ho applicato la "nuova" funzione AGGREGA.
    File Allegati File Allegati

  31. I seguenti utenti hanno dato un "Like"


  32. #30
    L'avatar di nick0573
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Pistoia
    Età
    47
    Messaggi
    1072
    Versione Office
    Excel 2016
    Likes ricevuti
    19
    Likes dati
    15
    Ciao Rubik

    Sembra funzionare bene....anche questa e più che altro mi risolve il problema dei duplicati nelle varie tabelle dei fogli


    Grazie:274:
    windows 10
    Excel 2016

Discussioni Simili

  1. Risposte: 6
    Ultimo Messaggio: 28/01/17, 21:58
  2. Ricerca Dati in più Fogli
    Di Giuseppe Zammuto nel forum Domande su Excel VBA e MACRO
    Risposte: 4
    Ultimo Messaggio: 17/10/16, 11:36
  3. [Risolto] ricerca tra più fogli
    Di robertopiro nel forum Domande su Excel VBA e MACRO
    Risposte: 11
    Ultimo Messaggio: 14/10/16, 16:57
  4. [Risolto] Unione di più fogli con ricerca
    Di Rudolfet nel forum Domande su Excel VBA e MACRO
    Risposte: 4
    Ultimo Messaggio: 03/10/16, 14:42
  5. Ricerca su piu' fogli con VBA
    Di supermagix1 nel forum Domande su Excel VBA e MACRO
    Risposte: 7
    Ultimo Messaggio: 10/04/16, 16:12

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
  •