Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionPrivate Sub Worksheet_Change(ByVal Target As Range) Dim Adresse As String If Not Intersect(Target, Range("r14,S13,T14,U13")) Is Nothing Then Adresse = Target.Address Select Case Adresse Case Is = "$R$14" colorier Target, "B22:B24" Case Is = "$S$13" colorier Target, "C13:C15" Case Is = "$T$14" colorier Target, "D22:D24" Case Is = "$U$13" colorier Target, "E13:E15" End Select End If End Sub Sub colorier(cible, plage) With Sheets(1).Range(plage).Interior Select Case cible Case Is = "Gscc" .ColorIndex = 40 Case Is = "" .ColorIndex = -4142 End Select End With End Sub
colorier Target, "B22:B24"
Private Sub Worksheet_Change(ByVal Target As Range) Dim toto As Range, colorons As Range, couleur As Integer With Sheets(1) Set toto = Range("r14,S13,T14,U13") If Not Intersect(Target, toto) Is Nothing Then Select Case Target Case toto.Areas(1): Set colorons = Range("B22:B24") Case Is toto.Areas(2): Set colorons .Range("C13:C15") Case Is toto.Areas(3): Set colorons .Range("D22:D24") Case Is toto.Areas(4): Set colorons .Range("E13:E15") End Select Select Case Target.Text Case "Gscc": couleur = 40 Case "": couleur = -4142 End Select colorons.Interior.ColorIndex = couleur End If End With End Sub
Oui tu as raison l'information de la cellule(U13) de l'onglet "Semaine" vient d'une formule (= 'Horaire 1'! AN6)et c'est cette cellule-là (U13)qui dit à la macro(*)de vérifier le changement.
Les changements sont faits par l'utilisateur via une liste déroulante sur la feuille "Horaire1" et il n'a pas d'autres choix que la liste préétablie.
C'est quatre informations différentes pour 4 colorations de plages différentes.
Veux-tu que je t'envoie une copie du fichier, si cela peut aider à la compréhension
Les changements sont faits par l'utilisateur via une liste déroulante sur la feuille "Horaire1" et il n'a pas d'autres choix que la liste préétablie
------- b) tu vas mettre ceci dans le code de la feuille resul : Private Sub Worksheet_Change(ByVal Target As Range) Dim colorons As String, couleur As Integer Set toto = Range("R14,S13,T14,U13") If Not Intersect(Target, Range("A1,B1,C1,D1")) Is Nothing Then Select Case Target.Address(False, False) Case "R14": colorons = "B22:B24" Case "S13": colorons = "C13:C15" Case "T14": colorons = "D22:D24" Case "U13": colorons = "E13:E15" End Select Select Case Target.Text Case "Gscc": couleur = 40 Case "": couleur = -4142 End Select Range(colorons).Interior.ColorIndex = couleur End If End Sub
Private Sub Worksheet_Change(ByVal Target As Range) Dim ou As String If Not Intersect(Target, Range("AH7,AJ6,AL7,AN6")) Is Nothing Then Select Case Target.Address(False, False) Case "AH7": ou = "R14" Case "AJ6": ou = "S13" Case "AL7": ou = "T14" Case "AN6": ou = "U13" End Select Worksheets("resul").Range(ou).Value = Target.Value End If End Sub