Bonjour herve62,
J'ai essayé de retranscrire ce code sur mon modèle. Mais je constate que ma variable "y" ne s'incrémente pas (après "Next y" passe directement à "End With").
Sachant que la macro est saisie à travers un module (et non sur la feuille en private sub).
Je ne sais dire pourquoi le code ne balaye pas toutes les cellules du tableau2.
Serais-tu en mesure de m'aider à ce sujet?
Ci-dessous l'extrait du code saisi :
Sub CP12_Click()
trouve = 0
fond = 0
Application.ScreenUpdating = False
'TRAITEMENT PREMIERE COLONNE E DE TABLEAU1
Sheets("tableau1").Select
For x = 2 To Range("E30000").End(xlUp).Row
val1 = Cells(x, 5)
ind = Cells(x, 5).Interior.ColorIndex
With Worksheets("tableau2")
For y = 2 To .Range("E30000").End(xlUp).Row
CP1 = .Cells(y, 5): indE = .Cells(y, 5).Interior.ColorIndex
CP2 = .Cells(y, 11): indK = .Cells(y, 11).Interior.ColorIndex
If val1 = CP1 Or val1 = CP2 Then
trouve = 1
If ind = indE Or ind = indK Then
fond = 1
End If
End If
Next y
End With
If trouve = 0 And fond = 0 Then Cells(x, 5).Interior.ColorIndex = 38
trouve = 0
fond = 0
Next x
'
'TRAITEMENT DEUXIEME COLONNE K DE TABLEAU1 - on duplique simplement le code
' en changeant E en K
'
Sheets("tableau1").Select
For x = 2 To Range("K30000").End(xlUp).Row - 1
val1 = Cells(x, 11)
ind = Cells(x, 11).Interior.ColorIndex
With Worksheets("tableau2")
For y = 2 To .Range("K30000").End(xlUp).Row - 1
CP1 = .Cells(y, 5): indE = .Cells(y, 5).Interior.ColorIndex
CP2 = .Cells(y, 11): indK = .Cells(y, 11).Interior.ColorIndex
If val1 = CP1 Or val1 = CP2 Then
trouve = 1
If ind = indE Or ind = indK Then
fond = 1
End If
End If
Next y
End With
If trouve = 0 And fond = 0 Then Cells(x, 11).Interior.ColorIndex = 38
trouve = 0
fond = 0
Next x
Application.ScreenUpdating = True
End Sub
Merci par avance, très belle journée.