Bonsoir,
une idée de structure avec des Select Case :
If Range("C1") = 2018 Then
Select Case Range("C2")
Case 1
Select Case Range("G2")
Case 6
Range("H23").Interior.Color = RGB(255, 0, 0)
Case 7
Range("X28,P17").Interior.Color = RGB(255, 0, 0)
Case 9
Range("J19").Interior.Color = RGB(255, 0, 0)
Case 10
Range("R12").Interior.Color = RGB(255, 0, 0)
End Select
Case 2
Select Case Range("G2")
Case 4
Range("L23").Interior.Color = RGB(255, 0, 0)
Case 11
Range("V29").Interior.Color = RGB(255, 0, 0)
End Select
Case 3
Select Case Range("G2")
Case 3
Range("T23").Interior.Color = RGB(255, 0, 0)
Case 12
Range("N24").Interior.Color = RGB(255, 0, 0)
Case 11
Range("X27").Interior.Color = RGB(255, 0, 0)
End Select
Case 4
Select Case Range("G2")
Case 9
Range("V10,H31").Interior.Color = RGB(255, 0, 0)
Case 2
Range("X34").Interior.Color = RGB(255, 0, 0)
End Select
Case 5
Select Case Range("G2")
Case 9
Range("V32").Interior.Color = RGB(255, 0, 0)
Case 4
Range("N22").Interior.Color = RGB(255, 0, 0)
Case 3
Range("D8").Interior.Color = RGB(255, 0, 0)
End Select
Case 6
' etc...
ElseIf Range("C1") = 2019 Then
' etc...
End If
Pour le deuxième point il faudrait que lors d'un changement de valeur sur une cellule cela efface les données des autres afin de n'avoir qu'un sens de remplissage et de pouvoir faire un test sur ce remplissage :
Si C1 modifiée, alors C2 et G2 effacés
Si C2 modifiée, alors G2 est supprimé
Si G2 modifiée, alors la surveillance événementielle n'efface rien et recherche la donnée correspondante aux trois données. Si sur les trois données C2 = "" alors c'est la deuxième procédure qui sera lancée...
un truc comme cela, non ?
@ bientôt
LouReeD