Ciao a tutti,
Ho bisogno ancora del vostro aiuto per capire come scrivere il codice che mi permette di fare quanto segue: Se la cella C10 è vuota oppure il valore (si tratta di testo) lo trovo nel range da A1:A20 esco dalla sub. Se invece il valore della cella C10 è diverso
da quello che confronta da A1:A20 allora una msgbox mi avverte dicendomi, se è possibile il contenuto della cella C10. Questo confronto dovrei eseguirlo dalle celle C10:C15 una per una perché ho la necessità nel momento che il valore confrontato risulti diverso
che mi indichi il contenuto o valore della cella.
Grazie per quello che farete.
Ciao,
la macro allegata dovrebbe fare quello che chiedi. Se non hai mai utilizzato le macro prima leggi [Excel
Andrea.
Sub controllaCelle()
Dim rSource As Range, rSearch As Range, rFound As Range, cel As Range
With ThisWorkbook.Worksheets("Foglio1")
Set rSource = .Range("C10:C15")
Set rSearch = .Range("A1:A20")
End With
For Each cel In rSource
'---------- trattandosi di ricerca su testo puoi modificare le opzioni di ricerca
'---------- adattandole alle tue esigenze (ricerca parziale, esatta, distinzione tra maiuscole e minuscole)
If Len(cel) Then
Set rFound = rSearch.Find(What:=cel.Value, _
After:=rSearch.Cells(1, 1), _
LookIn:=xlValues, _
LookAt:=xlWhole, _
MatchCase:=True)
If rFound Is Nothing Then
MsgBox "Cella: " & cel.Address(False, False) & " - Valore: " & cel.Value & vbNewLine & vbNewLine & _
"Non trovato.", vbInformation + vbOKOnly
Else
'---------- esce dalla sub perché il valore nell'intervallo C10:C15 è stato trovato
Exit For
End If
Else
'---------- esce dalla sub perché la cella nell'intervallo C10:C15 è vuota
Exit For
End If
Next
Set cel = Nothing: Set rFound = Nothing: Set rSource = Nothing: Set rSearch = Nothing
End Sub