Sub couleurs_s1() ' couleurs_s1 Macro 'Dim Ref As Range Set Ref = ActiveCell If Range("I5") = "congés" Then Range("I2:I8").Select With Selection.Interior .Pattern = xlSolid .PatternColorIndex = xlAutomatic .ThemeColor = xlThemeColorLight2 .TintAndShade = 0.399975585192419 .PatternTintAndShade = 0 End With End If If Range("I5") = "formation" Then Range("I2:I8").Select With Selection.Interior .Pattern = xlSolid .PatternColorIndex = xlAutomatic .Color = 255 .TintAndShade = 0 .PatternTintAndShade = 0 End With End If If Range("I5") = "atelier" Then Range("I2:I8").Select With Selection.Interior .Pattern = xlSolid .PatternColorIndex = xlAutomatic .Color = 65535 .TintAndShade = 0 .PatternTintAndShade = 0 End With End If If Range("I5") = "intervention confirmée" Then Range("I2:I8").Select With Selection.Interior .Pattern = xlSolid .PatternColorIndex = xlAutomatic .Color = 255 .TintAndShade = 0 .PatternTintAndShade = 0 End With End If If Range("I5") = "intervention à confirmer" Then Range("I2:I8").Select With Selection.Interior .Pattern = xlSolid .PatternColorIndex = xlAutomatic .Color = 49407 .TintAndShade = 0 .PatternTintAndShade = 0 End With End If If Range("I5") = "disponible" Then Range("I2:I8").Select With Selection.Interior .Pattern = xlSolid .PatternColorIndex = xlAutomatic .Color = 5296274 .TintAndShade = 0 .PatternTintAndShade = 0 End With End If If Range("I5") = "jour férié" Then Range("I2:I8").Select With Selection.Interior .Pattern = xlSolid .PatternColorIndex = xlAutomatic .ThemeColor = xlThemeColorLight2 .TintAndShade = 0.399975585192419 .PatternTintAndShade = 0 End With End If If Range("I5") = "intervention étranger à confirmer" Then Range("I2:I8").Select With Selection.Interior .Pattern = xlSolid .PatternColorIndex = xlAutomatic .ThemeColor = xlThemeColorAccent4 .TintAndShade = 0.79981688894314 .PatternTintAndShade = 0 End With End If If Range("I5") = "intervention étranger confirmée" Then Range("I2:I8").Select With Selection.Interior .Pattern = xlSolid .PatternColorIndex = xlAutomatic .ThemeColor = xlThemeColorAccent4 .TintAndShade = 0.399975585192419 .PatternTintAndShade = 0 End With End If If Range("I5") = "divers" Then Range("I2:I8").Select With Selection.Interior .Pattern = xlSolid .PatternColorIndex = xlAutomatic .Color = 255 .TintAndShade = 0 .PatternTintAndShade = 0 End With End If Ref.Select End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionLa cellule I5 propose les champs suivants :
-disponible, intervention confirmée, intervention à confirmer, atelier, formation, congés, jour férié, intervention étranger confirmée, intervention étranger à confirmer, divers.
Une fois le champ sélectionné, j'appuie sur un bouton lié à la macro qui colore ma sélection « I2 à I8 ». Chaque champ est lié à une couleur.
En théorie ça fonctionne, mais cette méthode ne peut être appliquée à grande échelle. En effet ça nécessiterait de faire une macro par personne par semaine soit plus de 500.
Est-il possible de réutiliser ma macro et de « l'automatiser » pour n'en faire qu'une par personne ?
J'ai juste besoin de changer à chaque fois le champ et la plage correspondante et j'aimerais éviter de faire la même opération pour chaque jour.
Dim Ref As Range
Set Ref = ActiveCell
Private ou As Range Private Sub ComboBox1_Click() ou.Value = ComboBox1.Text End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range) If (Target.Column 2 Or Target.Column 5) And Target.Row Mod 4 = 0 Then Set ou = Target With ComboBox1 .Left = Target.Left .Top = Target.Top .Width = Target.Width .Height = Target.Height .Visible = True End With Else ComboBox1.Visible = False End If End Sub
Private ou As Range Private Sub ComboBox1_Click() dim i as integer For i = -3 To 3 Sheets("Feuil2").Cells(ComboBox1.ListIndex + 1, 2).Copy Destination:=ou.Offset(i, 0) Next ou.Value = ComboBox1.Text End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range) If (Target.Column 2 Or Target.Column 5) And (Target.Row + 2) Mod 7 = 0 Then Set ou = Target With ComboBox1 .Left = Target.Left .Top = Target.Top .Width = Target.Width .Height = Target.Height .Visible = True End With Else ComboBox1.Visible = False End If End Sub
Contenu_De_I5=Range("I5").Value Select Case Contenu_De_I5 Case "congés" ' comentaire sur la couleur RangeDeMaCouleur = "Z1" 'la cellule temoin que tu colorie pour congés Case Else MonFormPasDeCouleurPrevue.show End Select Call MaSubColoriseRange(RangeDeMaCouleur)
Private MaSubColoriseRange(AdressRange As String) Range("I8").Interior.Color = Range(AdressRange).Interior.Color End Sub
j'appuie sur un bouton lié à la macro qui colore ma sélection « I2 à I8 »
mais cette méthode ne peut être appliquée à grande échelle. En effet ça nécessiterait de faire une macro par personne par semaine soit plus de 500
Que faut-il faire ensuite ? Sachant que ce code ne me reconnait aucune macro dans ma "boite à macro" ?