Microsoft 365 Plusieurs actions différentes en fonction d'une message box

Elsa.b4

XLDnaute Nouveau
Bonjour,

Je souhaiterai pouvoir passer d'une page à l'autre de mon excel en cliquant sur un bouton, et en plus de cela, j'aimerais que le code VBA vérifie que plusieurs conditions ont été remplies.
Pour simplifier je vais prendre un exemple :
Condition 1 Engagements doit être supérieur à 5
Condition 2 Il doit y avoir au moins une case de la catégorie MP cochée

J'aimerais d'abord vérifier la condition 1
If Engagements < 5 Then result = MsgBox(msgAct, vbAbortRetryIgnore, vbExclamation)
Si l'utilisateur clique sur cancel ou retry, la sub s'arrête et il retrouve sa feuille excel comme il l'a laissée avant de cliquer sur le bouton (j'ai essayé end sub et exit sub mais ça ne fonctionne pas)
Si l'utilisateur clique sur ignore (If result = vbIgnore Then), on vérifie la condition 2
If Mp< 1 Then result = MsgBox(msgMP, vbAbortRetryIgnore)
Si l'utilisateur clique sur cancel ou retry, la sub s'arrête et il retrouve sa feuille excel comme il l'a laissée avant de cliquer sur le bouton (j'ai essayé end sub et exit sub mais ça ne fonctionne pas)
Si l'utilisateur clique sur ignore (If result = vbIgnore Then), on passe à la feuille excel suivante
Sheets("Hiérarchisation et évaluation").Visible = True
Sheets("Hiérarchisation et évaluation").Select

Pour finir on ferme la sub pour de bon !

J'ai en tout 8 conditions à vérifier et je me perds avec les fonctions if qui s'enchainent
Je vous remercie pour votre aide !

Elsa
 
Solution
En l'absence de réponse de ta part j'ai considéré que les contrôles sont non-bloquants.
S'ils sont bloquants (tous ou seulement certains à préciser) il n'y a pas grand chose à corriger.
J'ai aussi un peu retravaillé le code ;)
A voir si cela te convient.

Pour info ton fichier contient une liaison qu'il serait peut-être bon de supprimer.
(Onglet Données / Modifier les liaisons / Rompre la liaison)
1627043821723.png

Dudu2

XLDnaute Barbatruc
Bonjour @Elsa.b4,
Alors tu nous lâches au-dessus d'une fosse océanique ou bien sur un tombant plein de jolis coraux et de poissons colorés ?
Cette métaphore pour te dire que sans fichier on est dans le bleu complet. Alors pas d'aide possible.
Mais attention, pas de données personnelles et/ou confidentielles.
 

Elsa.b4

XLDnaute Nouveau
Bonjour Dudu2 !

Belle métaphore !
Je te laisse trouver ci-joint un fichier excel avec 2 sub :
- le sub passage_hierarchisation qui ne me convient pas avec plein de if
- le sub reset_hierarchisation qui permet de revenir à zéro (celui là fonctionne!)

J'aimerais qu'il y ait 3 options :
- si aucune message box ne s'affiche, on passe à la feuille hierarchisation et évaluation
- si une message box s'affiche et qu'on clique oui, la sub se termine et on reste sur la feuille checklist
- si une message box s'affiche et qu'on clique non, on continue la vérification et affiche autant de message box que les conditions de passages à la feuille suivante ne sont pas respectées

Le fichier excel est sur mon drive :
Fichier HELP

Voilà ! J'espère que la fosse océanique est devenue petite flaque :)
Bonne journée !
Elsa
 

Dudu2

XLDnaute Barbatruc
Est-ce que tous les contrôles que tu fais sont bloquants ou juste informatifs ?

S'ils sont bloquants la seule option à proposer sur le MsgBox est vbOKOnly.
Exemple:
Msgbox("Attention, vous devez vous engager sur 5 actions au minimum ! Faites la correction nécessaire", vbOkOnly)
Et on quitte le Sub en attendant que l'utilisateur fasse le nécessaire pour remplir les conditions de contrôles.

S'ils sont juste informatifs, l'option à proposer sur le MsgBox est vbYesNo.
Exemple:
Msgbox("Attention, vous devez vous engager sur 5 actions au minimum ! Souhaitez-vous faire la correction nécessaire", vbYesNo)
Et on quitte le Sub si la réponse est vbYes en attendant que l'utilisateur fasse le nécessaire pour remplir les conditions de contrôles.
 
Dernière édition:

Dudu2

XLDnaute Barbatruc
En l'absence de réponse de ta part j'ai considéré que les contrôles sont non-bloquants.
S'ils sont bloquants (tous ou seulement certains à préciser) il n'y a pas grand chose à corriger.
J'ai aussi un peu retravaillé le code ;)
A voir si cela te convient.

Pour info ton fichier contient une liaison qu'il serait peut-être bon de supprimer.
(Onglet Données / Modifier les liaisons / Rompre la liaison)
1627043821723.png
 

Pièces jointes

  • Blocage Checkbox.xlsm
    115.6 KB · Affichages: 7

Discussions similaires

Statistiques des forums

Discussions
312 100
Messages
2 085 293
Membres
102 853
dernier inscrit
jetstream69