Problème boucle à condition
Bonjour à tous!
Je viens vers vous car je bloque sur un problème de syntaxe (il me semble) et malgré mes recherches je n'arrive pas à résoudre ce problème.
L'idée est de faire un rapprochement entre 2 feuilles excel.
Prenons une feuille A et une feuille B. L'idée est de prendre la première ligne de la feuille A, chercher la ligne dans la feuille B (en comparant colonne à colonne à l'aide d'une boucle) et colorier la ligne en vert si tout correspond. Puis passer à la ligne suivante.
Dans ce schéma je vois 3 boucles :
- la première pour passer d'une ligne à une autre dans la feuille A,
- la deuxième pour passer d'une ligne à une autre dans la feuille B lorsque l'on cherche la ligne qui correspond,
- la dernière pour comparer les colonnes d'une ligne
Les conditions sont naturellement des conditions d'égalité de valeur.
Voici où j'en suis.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
|
Dim nbreA As Variant
Dim nbreB As Variant
nbreA = Sheets("A").Range("A" & Application.Rows.Count).End(xlUp).Row (nombre de lignes dans A)
nbreB = Sheets("B").Range("A" & Application.Rows.Count).End(xlUp).Row (nombre de lignes dans B)
For i = nbreA To 2 Step -1
For j = nbreB To 2 Step -1
If Sheets("A").Cells(i, 1) = Sheets("B").Cells(j, 1) Or (Sheets("A").Cells(i, 1) = "29*" And Sheets("B").Cells(j, 2) = "Nom") Then
For k = 2 To 4
If Sheets("A").Cells(i, k) <> Sheets("B").Cells(j, k) Then
Exit For
End If
Next k
If k = 4 Then
Sheets("A").Rows(i).Interior.Color = RGB(0, 255, 0) And Sheets("B").Rows(j).Interior.Color = RGB(0, 255, 0)
Next i
Else
Next j
End If
If j = 2 Then
Sheets("A").Rows(i).Interior.Color = RGB(255, 0, 0)
Next i
End If
End if |
Normalement mes conditions sont bien formulées.
En revanche à chaque fois que j'essaie d'instaurer un "Next x" il me met "Erreur de compilation : Next sans For"...
C'est probablement une erreur de débutant qui concerne la syntaxe et la base même de l'utilisation des boucles mais je bloque tout de même dessus =/.
Si vous pouviez m'éclaircir sur ce point, vous me seriez d'une grande aide!
Merci d'avance!