Buongiorno a tutti.
Mi servirebbe una macro che simuli il comportamento del cercavert.

Ho cercato con la funziona trova ma non ho avuto successo.

Ho la seguente macro:

Sub CercaEcopia()

Dim cfRiga As Long
Dim fgRiga As Long
Dim Col As Long
Dim fgCol As Long
Dim shCF As Worksheet
Dim shFg1 As Worksheet

Set shCF = Worksheets("CF")
Set shFg1 = Worksheets("Nuova")

shCF.Range("u1").Clear

cfRiga = 2
Do While shCF.Cells(cfRiga, 1) <> ""
fgRiga = fnCerca(shFg1, shCF.Cells(cfRiga, 1).Text)
If fgRiga > 0 Then
'copia celle V÷AC
'fgCol = 1 indica che deve prendere la prima colonna (indice 1 del cercavert)
fgCol = 1
'In quale colonna del foglio CF andiamo a scrivere i valori trovati
For Col = 2 To 2
shCF.Cells(cfRiga, Col) = shFg1.Cells(fgRiga, fgCol)
fgCol = fgCol + 1
Next Col
End If
cfRiga = cfRiga + 1
Loop

End Sub

Function fnCerca(shFg1 As Worksheet, txt As String) As Long
Dim riga As Long
riga = 2
Do While shFg1.Cells(riga, 1) <> ""
If shFg1.Cells(riga, 1) = txt Then
fnCerca = riga
Exit Do
End If
riga = riga + 1
Loop

End Function


Nel foglio CF ho una colonna di valori, che se sono trovati nella colonna "Nuova" vengono ricopiati accanto al corrispondente di CF.
Il problema è che la macro si interrompre se trova una cella vuota.

Il problema dovrebbe essere la condizione del ciclo do while
Do While shCF.Cells(cfRiga, 1) <> ""
che cerca solo i valori diversi da zero

Si dovrebbero contare le righe in CF, e fare un contatore che man mano le decurti durante il do while?

Grazie a tutti per l'attenzione.