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.

Rispondi quotando