bonsoir,
Pour le bon fonctionnement de mon fichier, je viens de créer un code mais il est très long et très répétitif.
Je sais qu'il existe la méthode de boucle mais je ne la maîtrise pas.
Si quelqu'un pourrait m'aider et en même temps me donner un cour, je suis preneur.
voici le code :
si vous préférez le voir dans le fichier, je joint le fichier en pj, le code se trouve sur la feuil2 "pronostic"
Pour le bon fonctionnement de mon fichier, je viens de créer un code mais il est très long et très répétitif.
Je sais qu'il existe la méthode de boucle mais je ne la maîtrise pas.
Si quelqu'un pourrait m'aider et en même temps me donner un cour, je suis preneur.
voici le code :
Code:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
'--- Déclaration des variables
Dim llProno As Long
Dim fResul As Worksheet, fProno As Worksheet
Dim rProno As Range
Dim dResul As Object
'--- On enregistre les variables
Set fProno = Feuil2
Set fResul = Feuil3
If Not Application.Intersect(Target, Range("b2:b100")) Is Nothing Then
If fResul.Range("c2").Value = "Annulé" And Application.WorksheetFunction.CountA(Range("b2:b100")) >= 1 Then
Range("b2:b" & Range("a65536").End(xlUp).Row).Interior.ColorIndex = 3
Else: Range("b2:b" & Range("a65536").End(xlUp).Row).Interior.ColorIndex = xlColorIndexNone
End If
End If
If Not Application.Intersect(Target, Range("c2:c100")) Is Nothing Then
If fResul.Range("c3").Value = "Annulé" And Application.WorksheetFunction.CountA(Range("c2:c100")) >= 1 Then
Range("c2:c" & Range("a65536").End(xlUp).Row).Interior.ColorIndex = 3
Else: Range("c2:c" & Range("a65536").End(xlUp).Row).Interior.ColorIndex = xlColorIndexNone
End If
End If
If Not Application.Intersect(Target, Range("d2:d100")) Is Nothing Then
If fResul.Range("c4").Value = "Annulé" And Application.WorksheetFunction.CountA(Range("d2:d100")) >= 1 Then
Range("d2:d" & Range("a65536").End(xlUp).Row).Interior.ColorIndex = 3
Else: Range("d2:d" & Range("a65536").End(xlUp).Row).Interior.ColorIndex = xlColorIndexNone
End If
End If
If Not Application.Intersect(Target, Range("e2:e100")) Is Nothing Then
If fResul.Range("c5").Value = "Annulé" And Application.WorksheetFunction.CountA(Range("e2:e100")) >= 1 Then
Range("e2:e" & Range("a65536").End(xlUp).Row).Interior.ColorIndex = 3
Else: Range("e2:e" & Range("a65536").End(xlUp).Row).Interior.ColorIndex = xlColorIndexNone
End If
End If
If Not Application.Intersect(Target, Range("f2:f100")) Is Nothing Then
If fResul.Range("c6").Value = "Annulé" And Application.WorksheetFunction.CountA(Range("f2:f100")) >= 1 Then
Range("f2:f" & Range("a65536").End(xlUp).Row).Interior.ColorIndex = 3
Else: Range("f2:f" & Range("a65536").End(xlUp).Row).Interior.ColorIndex = xlColorIndexNone
End If
End If
If Not Application.Intersect(Target, Range("g2:g100")) Is Nothing Then
If fResul.Range("c7").Value = "Annulé" And Application.WorksheetFunction.CountA(Range("g2:g100")) >= 1 Then
Range("g2:g" & Range("a65536").End(xlUp).Row).Interior.ColorIndex = 3
Else: Range("g2:g" & Range("a65536").End(xlUp).Row).Interior.ColorIndex = xlColorIndexNone
End If
End If
If Not Application.Intersect(Target, Range("h2:h100")) Is Nothing Then
If fResul.Range("c8").Value = "Annulé" And Application.WorksheetFunction.CountA(Range("h2:h100")) >= 1 Then
Range("h2:h" & Range("a65536").End(xlUp).Row).Interior.ColorIndex = 3
Else: Range("h2:h" & Range("a65536").End(xlUp).Row).Interior.ColorIndex = xlColorIndexNone
End If
End If
If Not Application.Intersect(Target, Range("i2:i100")) Is Nothing Then
If fResul.Range("c9").Value = "Annulé" And Application.WorksheetFunction.CountA(Range("i2:i100")) >= 1 Then
Range("i2:i" & Range("a65536").End(xlUp).Row).Interior.ColorIndex = 3
Else: Range("i2:i" & Range("a65536").End(xlUp).Row).Interior.ColorIndex = xlColorIndexNone
End If
End If
If Not Application.Intersect(Target, Range("j2:j100")) Is Nothing Then
If fResul.Range("c10").Value = "Annulé" And Application.WorksheetFunction.CountA(Range("j2:j100")) >= 1 Then
Range("j2:j" & Range("a65536").End(xlUp).Row).Interior.ColorIndex = 3
Else: Range("j2:j" & Range("a65536").End(xlUp).Row).Interior.ColorIndex = xlColorIndexNone
End If
End If
If Not Application.Intersect(Target, Range("k2:k100")) Is Nothing Then
If fResul.Range("c11").Value = "Annulé" And Application.WorksheetFunction.CountA(Range("k2:k100")) >= 1 Then
Range("k2:k" & Range("a65536").End(xlUp).Row).Interior.ColorIndex = 3
Else: Range("k2:k" & Range("a65536").End(xlUp).Row).Interior.ColorIndex = xlColorIndexNone
End If
End If
End Sub
si vous préférez le voir dans le fichier, je joint le fichier en pj, le code se trouve sur la feuil2 "pronostic"
Pièces jointes
Dernière modification par un modérateur: