par , 12/03/2023 à 21h18 (2590 Affichages)
Préambule

On peut utiliser un ToggleButton (bouton bascule) pour
- masquer/afficher une ou des feuilles, colonnes, lignes
- appliquer ou pas une taxe, une tva, ...
- activer/désactiver un filtre
- faire un tri croissant/décroissant
- etc.
On peut considérer qu'un ToggleButton est comme un interrupteur qui allume/éteint. Sa propriété Value renvoie une valeur booléenne TRUE/FALSE
Je vous propose une fonction générique qui modifie les propriétés BackColor (Vert/Rouge) et ForeColor (Blanc et Normal) ainsi que la propriété Caption (message) en fonction de la propriété Value du contrôle ToggleButton
Code de la procédure
Cette procédure nommée ToggleProperties peut être placée dans un module standard.
1 2 3 4 5 6 7 8 9 10 11 12 13
| Function ToggleProperties(oToggle As ToggleButton, _
Messages As Variant)
' Philippe Tulliez https://magicoffice.be
' Arguments
' oToggle Objet ToggleButton
' Messages Variable tableau à deux dimensions (0, 1) contenant les deux messages
With oToggle
.Caption = Messages(Abs(.Value))
.BackColor = vbGreen / ((Abs(Not .Value) * 255) + 1)
.ForeColor = vbWhite * (Abs(Not .Value))
.Font.Bold = True
End With
End Function |
Exemple d'une procédure qui l'invoque
Procédure événementielle Click de la feuille où se trouve le bouton ActiveX nommé tgl_HideUnHide
1 2 3 4
| Private Sub tgl_HideUnHide_Click()
ToggleProperties tgl_HideUnHide, Array("Masquer", "Afficher")
Range("E:E,H:H,K:L").EntireColumn.Hidden = tgl_HideUnHide.Value
End Sub |
Propriété LinkedCell
La propriété LinkedCell (cellule liée) peut s'avérer intéressante si l'on souhaite utiliser sa valeur dans des formules d'excel.
Petite astuce : Pour cacher la cellule liée, il suffit de placer le bouton au-dessus de celle-ci. Une autre option est d'utiliser le format personnalisé en y plaçant ;;;