Plusieurs procédures événementielles indép. dans même formulaire

Fermé
Emilie - 19 sept. 2013 à 17:32
Zoul67 Messages postés 1959 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 - 19 sept. 2013 à 18:00
Bonjour,

débutante en VBA je code actuellement un formulaire d'une dizaine de questions.
j'essaye de trouver un code qui fonctionne pour créer dans le même onglet deux procédures indépendantes:

- Question 1: lorsqu'on sélectionne le choix "Non" à partir de la liste déroulante en cellule E16, alors une Msgbox apparait: "passer directement à la question 5"
- Question 9: lorsqu'on sélectionne le choix "Non" à partir de la liste déroulante en cellule E45, alors une Msgbox apparait: "passer directement à la question 11"

J'ai écrit le code suivant:


Private Sub Worksheet_Change(ByVal Target As Range)
If Range("E16") = "Non" Then
MsgBox "blabla1"
End If

If Range("E45") = "Non" Then
MsgBox "blabla2"
End If
End Sub

Or, avec ce code la macro continue à tourner à partir du moment où E16 a la valeur "Non". De ce fait, si je réponds "Non" en E16, par la suite pour toute action que j'effectue, la Msgbox "passer directement à la question 5" réapparaît.
De même si je réponds "Non" en E45, par la suite pour toute action que j'effectue, la Msgbox "passer directement à la question 1" réapparaît.
Et si on a répondu "Non" dans les deux cellules, ce sont alors les deux Msgbox qui s'enchainent pour toute action que j'effectue...

Qqn pourrait-il m'aider sur ce point? (Sachant que je dois conserver les valeurs des cellules E16 et E45 jusqu'à la fin du questionnaire, car les données sont exportées à la fin).

Merci par avance

Emilie

1 réponse

Zoul67 Messages postés 1959 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 149
19 sept. 2013 à 18:00
Bonjour,

Je pense que ce n'est pas propre d'utiliser les valeurs des cellules...
S'il n'y a que des questions appelant Oui/Non comme réponses, pourquoi ne pas utiliser des boutons radio ?
De plus, j'utiliserais un UserForm.

Sinon, si on ne peut pas revenir en arrière dans les réponses, tu peux définir la cellule dans laquelle tu dois répondre à la question suivante avec la macro Worksheet_Change.

A+
0