Plusieurs procédures événementielles indép. dans même formulaire
Emilie
-
Zoul67 Messages postés 1959 Date d'inscription Statut Membre Dernière intervention -
Zoul67 Messages postés 1959 Date d'inscription Statut Membre Dernière intervention -
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:
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
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
A voir également:
- Plusieurs procédures événementielles indép. dans même formulaire
- Whatsapp formulaire opposition - Guide
- Formulaire de réclamation facebook - Guide
- Formulaire de reclamation instagram - Guide
- Formulaire de contact le bon coin introuvable ✓ - Forum Réseaux sociaux
- Confirmer le nouvel envoi du formulaire err_cache_miss - Forum Google Chrome
1 réponse
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+
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+