Code VBA bouton de bascule sous excel
Neliville51
Messages postés
92
Date d'inscription
Statut
Membre
Dernière intervention
-
pilas31 Messages postés 1825 Date d'inscription Statut Contributeur Dernière intervention -
pilas31 Messages postés 1825 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour à tous et à toutes,
Bon voilà mon problème:
J'essaie de gérer de la documentation sous excel via vba. J'aimerais faire appliquer un code à l'ensemble des boutons de bascule de ma feuille excel. Voici le code que j'ai rédigé:
Private Sub ToggleButton1_Click()
Dim actif As Boolean
actif = ToggleButton1.Value
If actif Then
With ToggleButton1
.BackColor = vbGreen
.Caption = "Actif"
End With
Else
With ToggleButton1
.BackColor = vbRed
.Caption = "Inactif"
End With
End If
End Sub
Ce code marche pour le ToogleButton1 et j'aimerais que ça le fasse sur l'ensemble des "toobglebutton" (bouton de bascule) de ma feuille.
Merci d'avance à tous ceux et celles qui sauront m'éclaircir sur le sujet.
A bientôt
Bon voilà mon problème:
J'essaie de gérer de la documentation sous excel via vba. J'aimerais faire appliquer un code à l'ensemble des boutons de bascule de ma feuille excel. Voici le code que j'ai rédigé:
Private Sub ToggleButton1_Click()
Dim actif As Boolean
actif = ToggleButton1.Value
If actif Then
With ToggleButton1
.BackColor = vbGreen
.Caption = "Actif"
End With
Else
With ToggleButton1
.BackColor = vbRed
.Caption = "Inactif"
End With
End If
End Sub
Ce code marche pour le ToogleButton1 et j'aimerais que ça le fasse sur l'ensemble des "toobglebutton" (bouton de bascule) de ma feuille.
Merci d'avance à tous ceux et celles qui sauront m'éclaircir sur le sujet.
A bientôt
A voir également:
- Bouton bascule vba
- Bouton reinitialisation pc - Guide
- Diagnostic bouton photo - Accueil - Outils
- Bouton on/off comment savoir ✓ - Forum Matériel & Système
- Symbole arrêt marche - Forum Word
- Réinitialiser chromecast sans bouton - Guide
1 réponse
Bonjour,
Je propose la solution suivante :
1/ Créer une fonction "traiter" générique qui prend en paramétre le bouton en question :
Cette fonction s'utilise dans les macros des boutons bascule de la manière suivante
exemple pour le bouton 1 :
2/ Ensuite générer automatiquement toutes les macros "_Click" par la macro suivante :
3/ effacer les macros de la Feuil1 puis lancer la macro "Init_Macro_Bascule"
J'ai supposé que tous les boutons sont dans la Feuil1.
Mettre les deux macros "traiter" et "Init_Macro_Bascule" dans un module à part.
Voila j'espere que c'est assez clair .
A+
Je propose la solution suivante :
1/ Créer une fonction "traiter" générique qui prend en paramétre le bouton en question :
Sub traiter(bouton As ToggleButton) With bouton If .Value Then .BackColor = vbGreen .Caption = "Actif" Else .BackColor = vbRed .Caption = "Inactif" End If End With End Sub
Cette fonction s'utilise dans les macros des boutons bascule de la manière suivante
exemple pour le bouton 1 :
Sub ToggleButton1_Click() Call traiter(ToggleButton1) End Sub
2/ Ensuite générer automatiquement toutes les macros "_Click" par la macro suivante :
Sub Init_Macro_Bascule() Dim Code As String Dim s As Shape For Each s In Sheets("Feuil1").Shapes If Mid(s.Name, 1, 12) = "ToggleButton" Then Code = "Sub " & s.Name & "_Click" & vbCrLf Code = Code & "Call traiter(" & s.Name & ")" & vbCrLf Code = Code & "End Sub" With ThisWorkbook.VBProject.VBComponents("Feuil1").CodeModule NextLine = .CountOfLines + 1 .InsertLines NextLine, Code End With End If Next s End Sub
3/ effacer les macros de la Feuil1 puis lancer la macro "Init_Macro_Bascule"
J'ai supposé que tous les boutons sont dans la Feuil1.
Mettre les deux macros "traiter" et "Init_Macro_Bascule" dans un module à part.
Voila j'espere que c'est assez clair .
A+