Risultati da 1 a 10 di 10

Discussione: vba, cerca.vert con campo ricerca variabile



  1. #1
    L'avatar di tanimon
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    _
    Messaggi
    258
    Versione Office
    Excel 2007
    Likes ricevuti
    36
    Likes dati
    4

    vba, cerca.vert con campo ricerca variabile

    Ciao a tutti,
    lato celle,
    la formula sotto riportata esegue il CERCA.VERT su un file chiuso, riportando il valore uguale a cella A1 presente nella colonna 2 della tabella
    presente nel range "a:b" del nomefile.

    lato vba,
    La guida di 2007 dice che quello che si vuole cercare ( nell'esempio A1) può essere un valore o un riferimento.

    Lato vba,
    qualcuno conosce un modo per impostare A1 (ciò che si vuole cercare) come variabile ?

    Ho cercato in rete, ma niente da adattare in modo di risolutivo.
    Grazie a tutti in anticipo.

    Frank

    Codice: 
    =CERCA.VERT(A1;'percorso\[nomefile.xlsx]nomefoglio'!$A:$B;2;0)
    Excel 2007 win7 - Ogni Progetto è composto da Micro Progetti: PRIMA risolvi quelli, e PRIMA raggiungi il completamento del Progetto!
    Domanda: "Come avranno fatto gli utilizzatori di Excel VBA, quando non esisteva il registratore di macro?"

  2. #2
    L'avatar di Ciurmy
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Vigodarzere
    Età
    44
    Messaggi
    7
    Versione Office
    Excel 2013
    Likes ricevuti
    1
    Ciao tanimon,

    per usare il cerca verticale usando VBA devi usare le seguente funzione:
    Application.worksheetfunction.VLookup.
    I parametri di entrata sono i medesimi del cerca verticale.
    Qui un esempio:
    http://www.cpearson.com/excel/callin...ionsinvba.aspx

  3. #3
    L'avatar di GiuseppeMN
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Mantova
    Messaggi
    864
    Versione Office
    2000 - 2013
    Likes ricevuti
    285
    Likes dati
    160
    Buona giornata, Frank;
    proverei ad utilizzare ua cosa di questo genere:
    Codice: 
    Option Explicit
    
    Sub Macro_per_Frank()
        Range("B1").FormulaLocal = "=CERCA.VERT(A1;'percorso\[nomefile.xlsx]nomefoglio'!$A:$B;2;0)"
    End Sub
    A disposizione.

    Un caro saluto e buona serata.

    Giuseppe

    Edit: Leggo solo ora la Risposta di @ Ciurmy (che saluto), mi scuso per la sovrapposizione.
    Windows XP Excel 2000 - Windows 10 Excel 2013

  4. #4
    L'avatar di tanimon
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    _
    Messaggi
    258
    Versione Office
    Excel 2007
    Likes ricevuti
    36
    Likes dati
    4
    Ciao Ciurmy e Giuseppe,
    grazie ad entrambi per disponibilità e risposte:288:

    @ ciurmy e @ Giuseppe
    Il problema è la cella A1,
    voglio dire, il codice postato da Giuseppe ed il link postato da ciurmy, funzionano e li ho già provati in precedenza.

    Funzionano sulla cella A1.

    Vorrei usarli per una cella variabile: il campo di ricerca non deve essere una cella fissa (la A1 o altre impostate ad hoc)
    ma diverse celle incolonnate sulle quali dovrei effettuare un cliclo o un Do.

    Forse tramite vba, la cosa migliore è:
    - aprire il file
    - usare il metodo Find
    - impostare la variabile alla cella offset(quante righe necessarie, quante colonne necessarie)
    - prelevare il dato ed impostarlo alla cella di destinazione
    - chiudere il file

    Che ne dite?

    Frank
    Excel 2007 win7 - Ogni Progetto è composto da Micro Progetti: PRIMA risolvi quelli, e PRIMA raggiungi il completamento del Progetto!
    Domanda: "Come avranno fatto gli utilizzatori di Excel VBA, quando non esisteva il registratore di macro?"

  5. #5
    L'avatar di Ciurmy
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Vigodarzere
    Età
    44
    Messaggi
    7
    Versione Office
    Excel 2013
    Likes ricevuti
    1
    Ciao a Tanimon e a Giuseppe,

    se ho capito bene, vuoi avere il dato da trovare come variabile.
    Allora considerando l'esempio del link e immaginiamo che i dati che vuoi trovare siano all’interno di un array di nome arr_con_dati_da_trovare, potresti fare:


    For i = 1 to 3

    Dim Res As Variant
    Dim dato_cercato = arr_con_dati_da_trovare(i)
    Res = Application.WorksheetFunction.VLookup(dato_cercato , Range("A1:C100"),3,FALSE)

    ‘ qui usi il risultato Res per altre cose
    ‘----------------------------------------------------

    Next i

  6. #6
    L'avatar di GiuseppeMN
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Mantova
    Messaggi
    864
    Versione Office
    2000 - 2013
    Likes ricevuti
    285
    Likes dati
    160
    Buona sera a Tutti;
    cerco di fare chiarezza.

    Fermo restando che, visto che sono un inguaribile pigrone, cercherei di privilegiare la soluzione con:
    Codice: 
     FormulaLocal
    questo mi consente di utilizzare la Funzione CERCA.VERT nativa Excel !!! :167:

    Ma, veniamo al punto; anche utilizzando VLOOKUP, è possibile parametrare la Cella di riferimento; ho testato questo Codice e, mi sembra funzionare:
    Codice: 
    Option Explicit
    
    Sub VLOOKUP_per_Frank()
    Dim r As Byte
    Application.ScreenUpdating = False
        For r = 1 To 6
            Cells(r, 2).FormulaR1C1 = "=VLOOKUP(RC1,'percorso\[nomefile.xlsx]nomefoglio'!C1:C2,2,0)"
        Next r
    Application.ScreenUpdating = True
        Cells(2, 1).Select
    End Sub
    Analoga soluzione è applicabile a FormulaLocal:
    Codice: 
    Option Explicit
    
    Sub FormulaLocal_per_Frank()
    Dim r As Byte
    Application.ScreenUpdating = False
        For r = 1 To 6
            Cells(r, 2).FormulaLocal = "=CERCA.VERT(A" & r & ";'percorso\[nomefile.xlsx]nomefoglio'!$A:$B;2;0)"
        Next r
    Application.ScreenUpdating = True
        Cells(2, 1).Select
    End Sub
    Frank, se i Codici proposti, creano problemi, posso allegare i due File che ho utilizzato per i miei Test.


    A disposizione.

    Buon fine settimana e buona serata.

    Giuseppe
    Windows XP Excel 2000 - Windows 10 Excel 2013

  7. I seguenti 2 utenti hanno dato un "Like" a GiuseppeMN per questo post:


  8. #7
    L'avatar di Vincenzo Damiani
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Molfetta
    Età
    58
    Messaggi
    415
    Versione Office
    2010
    Likes ricevuti
    13
    Likes dati
    634
    Ciao Giuseppe
    e un saluto a tutti del forum,
    sarei anch'io interessato alla tua proposta....
    potresti, gentilmente, allegare i file che hai utilizzato?
    grazie
    Windows8.1 office 2010

  9. #8
    L'avatar di GiuseppeMN
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Mantova
    Messaggi
    864
    Versione Office
    2000 - 2013
    Likes ricevuti
    285
    Likes dati
    160
    Buona giornata, Vincenzo;
    consentimi di ringraziare Gerardo per la sua Attenzione.

    In allegato i due File che ho utilizzato per eseguire i miei Test.

    Preliminarmente, è necessario inserire il File:
    - Base per Frank.xlsx
    nella Directory (Cartella)
    - C:\Excel\
    I due Codici VBA presenti nel File:
    - CERCA_VERT per Frank.xlsm
    sono attivati dai due Pulsanti:
    - VLOOKUP
    e
    - FormulaLocal


    Rimango a disposizione per eventuali ulteriori chiarimenti.

    Buon fine settimana.

    Giuseppe
    Windows XP Excel 2000 - Windows 10 Excel 2013

  10. I seguenti 2 utenti hanno dato un "Like" a GiuseppeMN per questo post:


  11. #9
    L'avatar di Vincenzo Damiani
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Molfetta
    Età
    58
    Messaggi
    415
    Versione Office
    2010
    Likes ricevuti
    13
    Likes dati
    634
    Perfetto....
    Grazie Mille Giuseppe...
    Auguro a te e a tutti del Forum Buon Natale...
    Windows8.1 office 2010

  12. #10
    L'avatar di tanimon
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    _
    Messaggi
    258
    Versione Office
    Excel 2007
    Likes ricevuti
    36
    Likes dati
    4
    ciao a tutti,
    e..... scusate il ritardo...........

    Innanzi tutto grazie a Ciurmy e Giuseppe per aver partecipato alla discussione in modo fattivo.

    Non me ne voglia Ciurmy, ma ovviamente a Giuseppe,
    va un ringraziamento particolare avendo Lui proposto 2 soluzioni entrambe risolutive il problema che avevo proposto. :97::285:

    Conoscendolo, sapevo che non avrebbe mollato l'osso e avrebbe trovato la strada giusta...:274:

    Quindi 1000 e più grazie a Giuseppe...
    e alla prossima.

    Frank
    Excel 2007 win7 - Ogni Progetto è composto da Micro Progetti: PRIMA risolvi quelli, e PRIMA raggiungi il completamento del Progetto!
    Domanda: "Come avranno fatto gli utilizzatori di Excel VBA, quando non esisteva il registratore di macro?"

Discussioni Simili

  1. Ricerca articolo ed estrazione prezzo tra due intervalli di date – CERCA.VERT
    Di fulvio63 nel forum Domande su Excel in generale
    Risposte: 5
    Ultimo Messaggio: 12/12/16, 15:45
  2. [Risolto] Cerca valori che si ripetono in tabella. Formula per arrivare dove il cerca.vert non può
    Di Gatt88 nel forum Domande su Excel in generale
    Risposte: 7
    Ultimo Messaggio: 02/12/16, 11:45
  3. [Risolto] Modificare variabile di ricerca in una macro
    Di giugar nel forum Domande su Excel VBA e MACRO
    Risposte: 9
    Ultimo Messaggio: 14/10/16, 14:23
  4. campo indice in cerca.vert
    Di Barchetta nel forum Domande su Excel in generale
    Risposte: 17
    Ultimo Messaggio: 10/06/16, 08:56
  5. Cerca Vert
    Di smanimania nel forum Domande su Excel in generale
    Risposte: 11
    Ultimo Messaggio: 22/02/16, 18:13

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
  •