[VBA] Gérer des controles à partir d'un Bouton

Bonsoir,

Mes excuses pour ce titre de sujet qui reflète pas forcément très bien ce que je cherche à faire.

Savez-vous s'il est possible de gérer des "contrôles" (ToggleButton, CheckBoxes, Listes déroulantes) à l'aide d'un code que l'on activerait en cliquant sur un bouton ?

Mon but serait de parvenir à modifier des ToggleButton (Passer les "ON" en "OFF" par exemple), les CheckBoxes (décocher toutes les Checkboxes présentes dans différents UserForms) et les Listes déroulantes (Sélectionner "Aucun" dans la liste déroulante) en cliquant sur 1 bouton.

J'ai un petit document Excel à vous proposer pour y voir plus clair.

Je ne sais pas comment accéder aux différentes entités présentes dans le document et dans les UserForms à partir de la feuille de code correspondant à mon bouton...

J'espère que aurez une idée !

Merci de votre attention.

Bonne soirée !

Hello,

A titre de point de départ ...

Ci-joint ton fichier

Bonjour,

Merci pour la réponse. En l'état j'ai l'impression que ce que vous proposez ne fait qu'inverser les toggleButton (oui devenant non, non devenant oui), non ?

J'ai un peu avancé sur la question. Et pour simplifier, j'ai demandé à ce que le bouton inscrive une valeur (en A1) et ouvre l'UserForm.

Dans le code de l'UserForm, je précise que si la valeur en A1 est = à 1 alors il effectue la tâche demandée.

Ensuite, si la valeur n'a pas changé, il ferme l'UserForm et change la valeur par 0 pour éviter de relancer le code si on ouvre l'UF d'une autre manière.

Sauf que visiblement, si je demande à ouvrir l'UF et que dans le code de l'UF il y a une ligne qui demande à fermer l'UF, alors ça donne un mesage d'erreur que je ne parviens pas à faire partir.

Par ailleurs, je ne sais pas encore comment traiter la liste déroulante.

Voici le code du bouton qui actionne l'opération

Private Sub CommandButton1_Click()

If ToggleButton1 = True Then ToggleButton1 = False
If ToggleButton1 = False Then ToggleButton1 = False
If ToggleButton2 = True Then ToggleButton2 = False
If ToggleButton2 = False Then ToggleButton2 = False
Cells(1, 1) = 1
UserForm1.Show
'Unload UserForm1
Cells(1, 1) = 0
End Sub

Et le code de l'UserForm 1

Private Sub CheckBox1_Click()
If CheckBox1.Value = True Then Cells(7, 10).Value = "Réfrigérateur"
If CheckBox1.Value = False Then Cells(7, 10).Value = "-"
End Sub

Private Sub CheckBox2_Click()
If CheckBox2.Value = True Then Cells(8, 10).Value = "Chausse-pied"
If CheckBox2.Value = False Then Cells(8, 10).Value = "-"
End Sub

Private Sub CheckBox3_Click()
If CheckBox3.Value = True Then Cells(6, 10).Value = "Moissonneuse batteuse"
If CheckBox3.Value = False Then Cells(6, 10).Value = "-"
End Sub

Private Sub CommandButton1_Click()
Unload UserForm1
End Sub

Private Sub UserForm_Initialize()
CheckBox1.Value = IIf(Cells(7, 10).Value = "Réfrigérateur", True, False)
CheckBox2.Value = IIf(Cells(8, 10).Value = "Chausse-pied", True, False)
CheckBox3.Value = IIf(Cells(6, 10).Value = "Moissonneuse batteuse", True, False)

If Cells(1, 1) = 1 Then CheckBox1.Value = False
If Cells(1, 1) = 1 Then CheckBox2.Value = False
If Cells(1, 1) = 1 Then CheckBox3.Value = False
'If Cells(1, 1) = 1 Then Unload UserForm1 'Celui-ci entraine une erreur
If Cells(1, 1) = 1 Then UserForm1.Hide 'Celui-ci ne retire pas l'UserForm
End Sub

Bonne journée !

Bonjour,

Pas sûr de bien tout comprendre ...

En ouvrant ton nouveau fichier ... pas d'erreur ...

Quel est ton premier problème à résoudre ?

Re,

Pour ce qui concerne ta deuxième question que j'ai pu comprendre ...

Pour intervenir sur ta liste déroulante ... cette instruction devrait t'aider :

ActiveSheet.Shapes("Drop Down 5").ControlFormat.ListIndex = 1

Dis moi si cela te convient ...

Bonjour,

Pour avoir l'erreur, il suffit d'utiliser

If Cells(1, 1) = 1 Then Unload UserForm1 au lieu de If Cells(1, 1) = 1 Then UserForm1.Hide

pour fermer l'UserForm.

Je ne veux pas avoir un UserForm qui s'ouvre quand j'utilise le bouton 1 ; il doit automatiquement se refermer après avoir fait les opérations demandées. Mais demander à UserForm de s'ouvrir et de se refermer conduit à une erreur...

Merci pour la seconde réponse, je vais regarder ça !

Voici le document avec le second choix de code qui conduit à l'erreur.

Re,

Ci-joint une modif ....

En espèrant que cela corresponde à ton attente ...

Ah oui voilà ça marche très bien ! Merci !

Et puis le code est clairement plus simple en plus

Bon après-midi !

Ah oui voilà ça marche très bien ! Merci !

Et puis le code est clairement plus simple en plus

Bon après-midi !

Content que cela corresponde à ton attente ...

Rechercher des sujets similaires à "vba gerer controles partir bouton"