Boucle après une MsgBox

  • Initiateur de la discussion Initiateur de la discussion Michou9
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Michou9

XLDnaute Occasionnel
Bonjour

J’utilise cette macro avec des MsgBox « Oui/Non »
Je souhaiterais changer la valeur de 4 en 3 de la MsgBox, afin de rajouter « Annuler »

De manière à ce que si je clique sur « Annuler »
Je sorts de la MsgBox et je retourne au début de la macro

Soit : Ne pas sortir de la ComboBox afin de pouvoir faire une autre sélection à l’intérieur de celle-ci

Si je clique sur "Non", rien ne change, je sorts de la macro.

Il me faudrait donc sans doute une boucle que je ne sais pas écrire

Merci si quelqu’un peut me venir en aide


Code:
Private Sub ComboBox1_Change()
  Dim lig As Variant
  lig = Application.Match(ComboBox1, [Macro_Liste], 0)
  If IsError(lig) Then Exit Sub
  If MsgBox([Macro_Liste].Cells(lig, 2) & "", 4) = 7 Then Exit Sub
  Select Case ComboBox1
  ………………………………………….
     End Select
 End Sub
 
Re : Boucle après une MsgBox

Bonjour Michou,
Peut être comme ceci.
Bruno
Code:
Dim lig As Long
deb:
   lig = Application.Match(ComboBox1, [Macro_Liste], 0)
   If IsError(lig) Then Exit Sub
   rep = MsgBox([Macro_Liste].Cells(lig, 2) & "", 3) ' = 7 Then Exit Sub
   If rep = 2 Then GoTo deb
   If rep = 6 Or rep = 7 Then Exit Sub

End Sub
 
Re : Boucle après une MsgBox

Bonjour

Merci pour ton aide

Mais ce n'est pas cela

Si je clique sur "Annuler" je reste sur la MasgBox (qui se repositionne sur "Oui") et je sorts de la ComboBox

Alors que je dois sortir de la MsgBox et resté dans la ComboBox ouvert.

A+
 
Dernière édition:
Re : Boucle après une MsgBox

Bonjour Michou9, Bruno,

Code:
Private Sub ComboBox1_Change()
  Dim lig As Variant, rep As Byte
  lig = Application.Match(ComboBox1, [Macro_Liste], 0)
  If IsError(lig) Then Exit Sub
  rep = MsgBox([Macro_Liste].Cells(lig, 2), 3)
  If rep = 7 Then Exit Sub
  If rep = 2 Then SendKeys "%{UP}": Exit Sub
  Select Case ComboBox1
  '-----
  End Select
End Sub
A+
 
Re : Boucle après une MsgBox

Re,

Sans doute faut-il aussi effacer la zone de restitution :

Code:
Private Sub ComboBox1_Change()
  Dim lig As Variant, rep As Byte
  lig = Application.Match(ComboBox1, [Macro_Liste], 0)
  If IsError(lig) Then Exit Sub
  rep = MsgBox([Macro_Liste].Cells(lig, 2), 3)
  If rep = 7 Then Exit Sub
  If rep = 2 Then ComboBox1 = "": SendKeys "%{UP}": Exit Sub
  Select Case ComboBox1
  '-----
  End Select
End Sub
A+
 
Re : Boucle après une MsgBox

Re,

Je n'avais pas fait attention qu'il y avait 2 solutions

La 2ème n'est pas bonne
Car si je clique sur "Annuler" la ComboBox disparait
La MasgBox, elle reste affichée

Par contre si je reclique une nouvelle fois sur "Annuler"
La MasgBox disparait et la ComboBox réaparait

Il faut donc que je fasse l'opération 2 fois

Avantage, elle corrige une lacune
Je peux en admettant que j'ai cliqué par mégarde sur "Annuler"
alors que ma sélection était bien bonne
Je peux là reseltionner à nouveau
Alors que cela est impossible avec la solution 1
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
9
Affichages
202
Réponses
2
Affichages
169
  • Question Question
Microsoft 365 Problème de date
Réponses
5
Affichages
166
Réponses
72
Affichages
1 K
Réponses
4
Affichages
227
Réponses
3
Affichages
197
Retour