Togglebutton

Y compris Power BI, Power Query et toute autre question en lien avec Excel
Répondre
J
Johann77860
Jeune membre
Jeune membre
Messages : 44
Inscrit le : 20 avril 2016
Version d'Excel : 2004

Message par Johann77860 » 28 décembre 2016, 16:28

Bonjour

J'ai un formulaire avec plusieurs togglebutton.

Objectif 1: Quand on clique sur le Togglebutton1 (bouton enfoncé), celui-ci devient vert et les autres Togglebutton deviennent rouge et relevés.

Objectif 2: Quand on reclique sur le Togglebutton1 (relevé) celui-ci devient gris et tous les Togglebutton aussi.

Objectif 3: Quant on réalise l'objectif 1 et qu'on clique le Togglebutton 2, celui-ci (Togglebutton2) devient vert et enfoncé et les autres deviennent rouge (relevés)

Les objectifs 1 et 2 sont atteints. L'objectif 3 rencontre un problème: Si je réalise l'objectif 1 et qu'après je clique sur le togglebutton 2, le togglebutton1 devient gris au lieu d'etre rouge.

Pouvez-vous m'aider ?

Merci

Johann
togglebutton.xlsm
(18.88 Kio) Téléchargé 58 fois
g
gmb
Fanatique d'Excel
Fanatique d'Excel
Messages : 13'050
Appréciations reçues : 387
Inscrit le : 4 avril 2013
Version d'Excel : 2016

Message par gmb » 28 décembre 2016, 22:36

Bonjour

Un essai à tester. Te convient-il ?
Bye !
togglebutton v1.xlsm
(26.44 Kio) Téléchargé 100 fois
M
MFerrand
Fanatique d'Excel
Fanatique d'Excel
Messages : 17'171
Appréciations reçues : 448
Inscrit le : 20 juillet 2015
Version d'Excel : 2010 FR

Message par MFerrand » 28 décembre 2016, 22:53

Bonsoir,

Essaie ainsi :
Sub tgbChange(n As Integer)
    Dim i%
    If Controls("tgb" & n).Value Then
        For i = 1 To 6
            If i <> n Then
                With Controls("tgb" & i)
                    .Value = False
                    .BackColor = vbRed
                End With
            End If
        Next i
        With Controls("tgb" & n)
            .BackColor = vbGreen
            .Value = True
        End With
    Else
        For i = 1 To 6
            With Controls("tgb" & i)
                .Value = False
                .BackColor = RGB(224, 224, 224)
            End With
        Next i
    End If
End Sub

Private Sub tgb1_Change()
    tgbChange 1
End Sub

Private Sub tgb2_Change()
    tgbChange 2
End Sub

Private Sub tgb3_Change()
    tgbChange 3
End Sub

Private Sub tgb4_Change()
    tgbChange 4
End Sub

Private Sub tgb5_Change()
    tgbChange 5
End Sub

Private Sub tgb6_Change()
    tgbChange 6
End Sub
NB- J'ai renommé tes boutons... et anticipé pour les autres (peut-être à tort ?)
L'évènement Change est mieux adapté. Et forcer la Valeur à True pour le bouton qui l'a déjà assure l'aspect enfoncé (et évite la couleur verte avec un aspect non enfoncé... Je suppose que c'est une rémanence du 3e état bien que ce dernier ne soit pas autorisé).

Cordialement.
johann77860_togglebutton.xlsm
(20.91 Kio) Téléchargé 83 fois
J
Johann77860
Jeune membre
Jeune membre
Messages : 44
Inscrit le : 20 avril 2016
Version d'Excel : 2004

Message par Johann77860 » 29 décembre 2016, 03:30

Bonsoir MFerrand

Merci pour ta réponse. C'est exactement ce dont je recherchais. Ça marche nickel.
Tkt pour les Tgb je les renommerai de mon coté.

Merci à vous tous.
Répondre
  • Sujets similaires
    Réponses
    Vues
    Dernier message