Code VBA bouton de bascule sous excel
Fermé
Neliville51
Messages postés
92
Date d'inscription
mercredi 9 juillet 2008
Statut
Membre
Dernière intervention
5 juillet 2011
-
9 sept. 2010 à 11:41
pilas31 Messages postés 1825 Date d'inscription vendredi 5 septembre 2008 Statut Contributeur Dernière intervention 24 avril 2020 - 9 sept. 2010 à 19:42
pilas31 Messages postés 1825 Date d'inscription vendredi 5 septembre 2008 Statut Contributeur Dernière intervention 24 avril 2020 - 9 sept. 2010 à 19:42
A voir également:
- Bouton bascule vba
- Réinitialiser chromecast sans bouton - Guide
- Bouton reinitialisation pc - Guide
- Vba ouvrir un fichier excel avec chemin ✓ - Forum VB / VBA
- Find vba - Astuces et Solutions
- Hard reset samsung sans bouton home - Guide
1 réponse
pilas31
Messages postés
1825
Date d'inscription
vendredi 5 septembre 2008
Statut
Contributeur
Dernière intervention
24 avril 2020
643
9 sept. 2010 à 19:42
9 sept. 2010 à 19:42
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+