Bonjour,

J'ai créé une macro qui compare 3 cellules d'une ligne aux 3 de la lignes précédente.
Si au moins une des 3 cellules est égale a au moins une des trois de la ligne précédente, alors ... rien , sinon on colore la ligne en rouge.

ex :
A B C
D E A ---> rien car A sur les 2 ligne
F B H ---> en rouge

Ma macro fonctionnerai si certaines cellules n'étaient pas vides.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Dim flag As Boolean
Dim derniere_ligne, i, j, k As Long
derniere_ligne = ThisWorkbook.Worksheets(a).Range("E65536").End(xlUp).Row
 
For i = 4 To derniere_ligne
flag = True
  For j = 9 To 10
    For k = 9 To 10
If ThisWorkbook.Worksheets(a).Cells(i, j).Text = ThisWorkbook.Worksheets(a).Cells(i - 1, k).Text Then flag = False
Next k
Next j
If flag = True Then ThisWorkbook.Worksheets(a).Range("I" & i & ":K" & i).Interior.ColorIndex = 3
Next i
 
Next a

En effet si j'ai
A B
C --> la ligne n'est pas colorée car les cellules de la troisieme colonne par exemple sont identiques (vides)



J'ai essayé :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
Dim flag As Boolean
Dim derniere_ligne, i, j, k As Long
derniere_ligne = ThisWorkbook.Worksheets(a).Range("E65536").End(xlUp).Row
 
For i = 4 To derniere_ligne
flag = True
  For j = 9 To 10
  If ThisWorkbook.Worksheets(a).Cells(i, j).Text <> "" Then
    For k = 9 To 10
If ThisWorkbook.Worksheets(a).Cells(i - 1, k).Text <> "" Then
If ThisWorkbook.Worksheets(a).Cells(i, j).Text = ThisWorkbook.Worksheets(a).Cells(i - 1, k).Text Then flag = False
Else
Next k
End If
Else
Next j
End If
If flag = True Then ThisWorkbook.Worksheets(a).Range("I" & i & ":K" & i).Interior.ColorIndex = 3
Next i
 
Next a
Mais bon ça ne fonctionne pas (next sans for) ... je ne pense pas qu'il me manque grand chose mais je ne vois pas comment (bien) imbriquer mes boucles et conditions.


Merci pour votre aide !