Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

[Excel] Creare una macro VBA di cerca.vert

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

[Excel] Creare una macro VBA di cerca.vert

Postdi JoJo5 » 10/11/10 11:46

Ciao di nuovo a tutti!
Sto cercando di creare una macro con la funzione cerca.vert di excel.
Vorrei che la macro cercasse il valore posto in A1 (foglio2), nel foglio1 tra le colonne A:F (il valore che voglio che riporti è nella F ed è una data).
Ho provato con questo ma non capisco cosa c'è di sbagliato :(

Sub CopyEoM()
Dim x As Date, sh1 As Worksheet, sh2 As Worksheet
Set sh1 = Worksheet("raw")
Set sh2 = Worksheet("Test")
'
x = WorksheetFunction.VLookup(sh2!A1.Value, sh1.Range("A:F"), 6, 0)
'
End Sub

Grazie a tutti!! :)
JoJo5
Newbie
 
Post: 9
Iscritto il: 09/11/10 15:21

Sponsor
 

Re: [Excel] Creare una macro VBA di cerca.vert

Postdi Anthony47 » 10/11/10 14:24

Hai notato che per sh1 e sh2 usi due notazioni diverse? E' corretta quella di sh1.

Ricorda anche che l' equivalente di #N/D in vba e' un run time error, quindi devi prepararti a gestirlo per evitare il blocco della macro.

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13885
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [Excel] Creare una macro VBA di cerca.vert

Postdi JoJo5 » 10/11/10 16:37

No in effetti non l'avevo notato :P
Così è corretto??

Sub CopyEoM()
Dim x As Date, sh1 As Worksheet, sh2 As Worksheet
Set sh1 = Worksheet("raw")
Set sh2 = Worksheet("Test")
'
x = WorksheetFunction.VLookup(sh2.Range("A1"), sh1.Range("A:F"), 6, 0)
'
End Sub

Adesso però se provo, mi esce il messaggio "Sub o Function non definita".. :x
JoJo5
Newbie
 
Post: 9
Iscritto il: 09/11/10 15:21

Re: [Excel] Creare una macro VBA di cerca.vert

Postdi Anthony47 » 10/11/10 22:23

Guarda quale e' la funzione che ti dice "Non definita", ti accorgerai che hai scritto Worksheet("nome") invece di Worksheets("nome")...

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13885
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [Excel] Creare una macro VBA di cerca.vert

Postdi gaetano73 » 28/02/13 14:29

Ciao a tutti. Uso Excel 2003.

Scusate se rispolvero un post così vecchio... ho adattato la macro alle mie esigenze facendo in questo modo:
Codice: Seleziona tutto
Sub Cerca_vert()
Dim x As String
x = WorksheetFunction.VLookup(Worksheets("Verifica").Range("A1"), Worksheets("Occupancy").Range("A1:B10"), 1, 0)
MsgBox ("X = " & x)
End Sub

Quando la mando in esecuzione mi appare il seguente errore:
"Errore di run-time '1004': Impossibile trovare la proprietà VLookup per la classe WorksheetFunction"
Dove sbaglio?
gaetano73
Utente Senior
 
Post: 247
Iscritto il: 03/09/02 18:36

Re: [Excel] Creare una macro VBA di cerca.vert

Postdi wallace&gromit » 28/02/13 14:52

mi appare questo messaggio se nel foglio "Occupancy" non ci sono elementi corrispondenti al testo di A1 nel foglio "Verifica"
stato 2014: Office2003/2013 su win7
Avatar utente
wallace&gromit
Utente Senior
 
Post: 1419
Iscritto il: 16/01/12 14:21

Re: [Excel] Creare una macro VBA di cerca.vert

Postdi gaetano73 » 28/02/13 15:08

Che stupido che sono!
Quindi sarebbe il corrispondente del #N/D?
Come posso evitarlo?
gaetano73
Utente Senior
 
Post: 247
Iscritto il: 03/09/02 18:36

Re: [Excel] Creare una macro VBA di cerca.vert

Postdi wallace&gromit » 28/02/13 15:20

potresti fare qualcosa così
Codice: Seleziona tutto
Sub Cerca_vert()
Dim x As String
On Error GoTo fine
x = WorksheetFunction.VLookup(Worksheets("Verifica").Range("A1"), Worksheets("Occupancy").Range("A1:B10"), 1, 0)
MsgBox ("X = " & x)
fine:
End Sub
ma non son se questo ti crea problemi, nel senso che semplicemente esce senza "dire" niente.
stato 2014: Office2003/2013 su win7
Avatar utente
wallace&gromit
Utente Senior
 
Post: 1419
Iscritto il: 16/01/12 14:21

Re: [Excel] Creare una macro VBA di cerca.vert

Postdi Anthony47 » 28/02/13 15:23

Nella discussione a cui ti eri accodato era scritto...

Guarda il suggerimento di w&g sopra.
Io suggerirei di settare la variabile X a un valore convenzionale (es "zczc1234"), poi contorni la WorksheetFunction.VLookup con On Error Resume Next (prima) e On Error GoTo 0 (dopo), e se dopo le istruzioni X contiene ancora il tuo valore convenzionale allora il risultato e' "valore missing".
Esiste anche la possibilita' di usare Application.VLookup, che restituisce "Error2042" in caso di valore missing; ma trattandosi di una prestazione non documentata non la suggerisco.

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13885
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [Excel] Creare una macro VBA di cerca.vert

Postdi gaetano73 » 28/02/13 15:59

OK. Grazie mille!
gaetano73
Utente Senior
 
Post: 247
Iscritto il: 03/09/02 18:36


Torna a Applicazioni Office Windows


Topic correlati a "[Excel] Creare una macro VBA di cerca.vert":


Chi c’è in linea

Visitano il forum: Nessuno e 9 ospiti