i'm new in vba and i would ask something about a VBA code that i made.
I've already read this link: VBA - Match Column Data and paste but it's not good for my needs.
My target is match column E with column F and give the description inside rows in G to paste in column H.
To get an msg box error if the match is false.
my problem is that the msg box appear always on my desk without matching.
Which is my mistake?
thank you everyone.
This is an example of my sheet:
This is my code so far:
Sub AssociazioneCodice()
'Dichiarazione della variabile per conteggio righe
Dim countRows, r, c, e As Integer
Dim trovato As Boolean
trovato = False
'Applicazione conteggio righe - Achtung!: Inserire sempre correttamente il nome del foglio dove si trovano i riferimenti da contare
countRows = ThisWorkbook.Worksheets("Foglio2").Range("A:A").Cells.SpecialCells(xlCellTypeConstants).Count
'Il for serve a cercare il numero del codice nella colonna E dei codici
For r = 1 To countRows
'Con il secondo for effettuo la corrispondenza tra la colonna dei codici E e confronto con i codici di riferimento generici della colonna F
For e = 1 To countRows
'L'if seguente serve a dire SE la cella della riga 'r' della colonna E è uguale alla cella della riga 'e' della colonna F
If Cells(r, 5) = Cells(e, 6) Then
'visto che ho trovato corrispondenza, allora prendi il contenuto della riga 'e' della colonna G e copiala nella riga 'r' della colonna H
Cells(r, 8) = Cells(e, 7)
e = countRows 'una volta controllato il codice e trovato, passo alla riga 'r' successiva
trovato = True
End If
If trovato = False Then
'SE non è stato trovato il codice, allora manda un messaggio e scrivi "ERRORE" nella riga'r' della colonna H
MsgBox "Codice non in elenco " & Cells(r, 5).Value & " Riga " & r
Cells(r, 8) = " ERRORE "
Else: trovato = False 'Se ha trovato il codice, allora viene resettato a False il booleano 'trovato'
End If
Next e
Next r
MsgBox " Numero di avvisi a sistema " & countRows
End Sub
Welcome to SO Antonio,( i am italian and i have studied your question)try to put next e
before If trovato = False Then
...
Keep me update...
Sub AssociazioneCodice()
'Dichiarazione della variabile per conteggio righe
Dim countRows, r, c, e As Integer
Dim trovato As Boolean
'Applicazione conteggio righe - Achtung!: Inserire sempre correttamente il nome del foglio dove si trovano i riferimenti da contare
countRows = ThisWorkbook.Worksheets("Foglio2").Range("A:A").Cells.SpecialCells(xlCellTypeConstants).Count
'Il for serve a cercare il numero del codice nella colonna E dei codici
For r = 1 To countRows
'Con il secondo for effettuo la corrispondenza tra la colonna dei codici E e confronto con i codici di riferimento generici della colonna F
For e = 1 To countRows
'L'if seguente serve a dire SE la cella della riga 'r' della colonna E è uguale alla cella della riga 'e' della colonna F
If Cells(r, 5) = Cells(e, 6) Then
'visto che ho trovato corrispondenza, allora prendi il contenuto della riga 'e' della colonna G e copiala nella riga 'r' della colonna H
Cells(r, 8) = Cells(e, 7)
e = countRows 'una volta controllato il codice e trovato, passo alla riga 'r' successiva
trovato = True
End If
Next e
If trovato = False Then
'SE non è stato trovato il codice, allora manda un messaggio e scrivi "ERRORE" nella riga'r' della colonna H
MsgBox "Codice non in elenco " & Cells(r, 5).Value & " Riga " & r
Cells(r, 8) = " ERRORE "
Else
trovato = False 'Se ha trovato il codice, allora viene resettato a False il booleano 'trovato'
End If
Next r
MsgBox " Numero di avvisi a sistema " & countRows
End Sub