VBA - Trovare numero riga con funzione MATCH con più criteri di ricerca - RISOLTO
Sto sviluppando un foglio di lavoro molto più complesso di quello che qui allego, in una tabella devo trovare il numero di riga cercandola con più criteri contenuti nella medesima riga solo in colonne differenti. Esempio:
ColonnaA ColonaB ColonnaC
Controllo Dal AL (<----Intestazioni di colonna)
4000 01/01/2021 15/01/2021
4001 10/02/2021 16/02/2021
4002 10/02/2021 28/02/2021
4003 15/01/2021 31/01/2021
Quindi se i criteri sono "4002 10/02/2021 28/02/2021" dovrebbe restituirmi il valore della riga n. 4 in una variabile per poi poterla poter utilizzare nelle successive righe di programma.
Nel foglio che allego ho elaborato in un Modulo due "Prove" di esempio una la "Prova1" che funziona utilizzando direttamente i riferimenti delle celle del foglio, un'altra la "Prova2" che non mi funziona ed è quella che mi serve utilizza le variabili.
Cortesemente riuscireste a farmi funzionare la Prova2 del mio foglio?
In anticipo ringrazio. Di seguito il codice VBA:
CODICE VBA PROVA 1 - FUNZIONANTE Sub Prova1()
Riga = Evaluate("=IfError(MATCH(E2&F2&G2,A1:A11&B1:B11&C1:C11,0),"""")")
Range("I2") = Val(Riga)
MsgBox ("Crit1 " & Range("E2") & vbNewLine & _
"Crit2 " & Range("F2") & vbNewLine & _
"Crit3 " & Range("G2") & vbNewLine & _
"Riga " & Riga)
End Sub
CODICE VBA PROVA 2 - NON FUNZIONANTE Sub Prova2()
Dim Crit1 As Double
Dim Crit2, Crit3 As Date
Dim urR, Riga As Long
Dim Rng1, Rng2, Rng3 As String
Crit1 = Range("E2").Value
Crit2 = Range("F2").Value
Crit3 = Range("G2").Value
urR = Range("A" & Rows.Count).End(xlUp).Row - 1
Rng1 = "A2:A" & urR
Rng2 = "B2:S" & urR
Rng3 = "C2:T" & urR
Riga = Val(Evaluate("=IfError(MATCH(Crit1&Crit2&Crit3,Rng1&Rng2&Rng3,0),"""")"))
Range("I2") = Riga
MsgBox ("Crit1 " & Crit1 & vbNewLine & _
"Crit2 " & Crit2 & vbNewLine & _
"Crit3 " & Crit3 & vbNewLine & _
"Riga " & Riga)
End Sub
[Modificato da LucaT. 23/01/2021 17:31]