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 !