XL 2016 changement de couleur ligne si chekbox activé

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

USER2112

XLDnaute Nouveau
Bonjour à tous,
s'il vous plait quelqu'un peut m'aider, en fait je veut colorer les lignes de mon fichier selon le statut des chekbox qui se trouvent devant chaque ligne.
par exemple si sur la première ligne si le chekbox est coché, le couleur de la ligne change automatiquement.
 

Pièces jointes

bonjour user🙂
brut comme cela tu affecte la macro a tes controls formulaire
VB:
Sub es()
Dim i As Checkbox
For Each i In Feuil1.CheckBoxes
Rows(Right(i.Name, Len(i.Name) - 10) + 1).Interior.ColorIndex = xlNone
If i.Value = xlOn Then
Rows(Right(i.Name, Len(i.Name) - 10) + 1).Interior.ColorIndex = 3
End If
Next
End Sub
 
re
ben!!! c'est ce que fait la macro es pour chaque box tu affecte la macro es non !!!!
les box demarre a partir de la ligne 2 dans ton exemple donc +1
Rows(Right(i.Name, Len(i.Name) - 10) + 1)

on pourrait un peu simplifier mais bon en general j'evite utiliser IIf dans des boucles si pas beaucoup de controls acceptable !!!
VB:
Sub es()
Dim i As Checkbox
For Each i In Feuil1.CheckBoxes
Rows(Right(i.Name, Len(i.Name) - 10) + 1).Interior.ColorIndex = IIf(i.Value = xlOn, 3, xlNone)
Next
End Sub

eventuellement on pourrait manipuler un module de classe mais bon !!!
 
Dernière édition:
bonjour,
merci ça marche mais comme vous voyez les cases a cocher sont insérer automatiquement et ils sont variable selon le nombre de ligne si j'ajoute une ligne et j'execute la macro une case s'ajoute devant donc je veut automatiser la tache .
est ce que c'est possible d'affecter le macro automatiquement sur l'ensemble des chekbox
 
re
essai comme cela j'ai change un peu ton code de creation de boxs donc le mien

VB:
Sub Checkbox()
Dim i
With Feuil1
For Each i In .CheckBoxes: i.Delete: Next
m = Application.WorksheetFunction.CountA(Feuil1.Range("$B:$B"))
For i = 2 To m
   With .CheckBoxes.Add(Range("K" & i).Left, _
        Range("K" & i).Top, Range("C" & i).Width, Range("C" & i).Height)
        .Caption = ""
       .Name = "box" & i
       .OnAction = "es"
    End With
  Next i
End With
End Sub
Sub es()
Dim i As Checkbox
For Each i In Feuil1.CheckBoxes
Rows(Right(i.Name, Len(i.Name) - 3)).Interior.ColorIndex = IIf(i.Value = xlOn, 3, xlNone)
Next
End Sub
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 Tableau
Réponses
24
Affichages
1 K
Retour