Bonjour Nelson, l'acide, bonjour le forum,
Une proposition VBA avec le code ci-dessous si ça intéresse quelqu'un :
Sub Macro1()
Dim G As Worksheet 'déclare la variable G (onglet General)
Dim FC As Worksheet 'déclare la variable FC (onglet French Collection)
Dim SH As Worksheet 'déclare la variable SH (onglet Selection Habitat)
Dim TG As Variant 'déclare la variable TG (Tableau General)
Dim TFC As Variant 'déclare la variable TFC (Tableau French Collection)
Dim TSH As Variant 'déclare la variable TSH (Tableau Selection Habitat)
Dim CFC As XlColorIndex 'déclare la variable CFC (Couleur French Collection)
Dim CSH As XlColorIndex 'déclare la variable CSH (Couleut Selection Habitat)
Dim I As Integer 'déclare la variable I (Incrément)
Dim J As Integer 'déclare la variable J (Incrément)
Set G = Worksheets("GENERAL") 'définit l'onglet G
Set FC = Worksheets("FRENCH COLLECTION") 'définit l'onglet FC
Set SH = Worksheets("SELECTION HABITAT") 'définit l'onglet SH
G.Range("B7").CurrentRegion.Interior.ColorIndex = xlNone 'suprime les couleurs dans la plage des données de l'onglet G
TG = G.Range("B7").CurrentRegion 'définit le tableau TG
TFC = FC.Range("B2").CurrentRegion 'définit le tableau TFC
TSH = SH.Range("B2").CurrentRegion 'définit le tableau TSH
CFC = FC.Range("B2").Interior.ColorIndex 'définit la couleur CFC
CSH = SH.Range("B2").Interior.ColorIndex 'définit la couleur CSH
For I = 1 To UBound(TG, 1) 'boucle 1 : sur toutes les lignes I du tableau TG
For J = 2 To UBound(TFC, 1) 'boucle 2 : sur toutes les lignes J du tableau TFC (en partant de la seconde)
'si la donnée ligne I colonne 1 de TG est égale à la donnée ligne J colonne 1 de TFC, colore les deux cellules ligne I+6 colonne B et C de l'onglet G avec la couleur CFC, sort de la boucle 2
If TG(I, 1) = TFC(J, 1) Then G.Cells(I + 6, "B").Resize(1, 2).Interior.ColorIndex = CFC: Exit For
Next J 'prochaine ligne de la boucle 2
Next I 'prochaine ligne de la boucle 1
For I = 1 To UBound(TG, 1) 'boucle 1 : sur toutes les lignes I du tableau TG
For J = 2 To UBound(TSH, 1) 'boucle 2 : sur toutes les lignes J du tableau TSH (en partant de la seconde)
'si la donnée ligne I colonne 1 de TG est égale à la donnée ligne J colonne 1 de TSH, colore les deux cellules ligne I+6 colonne B et C de l'onglet G avec la couleur CSH, sort de la boucle 2
If TG(I, 1) = TSH(J, 1) Then G.Cells(I + 6, "B").Resize(1, 2).Interior.ColorIndex = CSH: Exit For
Next J 'prochaine ligne de la boucle 2
Next I 'prochaine ligne de la boucle 1
End Sub