Code VBA bouton de bascule sous excel
Neliville51
Messages postés
99
Statut
Membre
-
pilas31 Messages postés 1878 Statut Contributeur -
pilas31 Messages postés 1878 Statut Contributeur -
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
- Diagnostic bouton photo - Accueil - Outils
- Bouton shift pc - Forum Jeux vidéo
- Bouton on/off comment savoir - Forum Word
- Réinitialiser chromecast sans bouton - Guide
- Bouton couleur telecommande - 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+