Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Problème avec MsgBox

  • Initiateur de la discussion Initiateur de la discussion Piaf79
  • 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 !

Piaf79

XLDnaute Junior
Bonsoir à tous,

J'ai un code qui doit ouvrir un MsgBox si les conditions ne sont pas respectées :

Code:
Sub MesPerso3(Art, Col)
        MsgBox "Veuillez renseigner l'intégralité des champs avant de débuter la saisie des données.", vbExclamation, "Module de gestion"
        ActiveCell.ClearContents
End Sub

Mon soucis est que la MsgBox s'affiche et la cellule active se vide mais ensuite impossible de fermer la MsgBox après avoir cliqué sur "OK".

Quelqu'un à t il une idée, une solution à me proposer ?

Bonne fin de soirée.

Piaf 79
 
Re : Problème avec MsgBox

Bonsoir,

essais avec
Code:
Sub MesPerso3(Art, Col)
        If MsgBox("Veuillez renseigner l'intégralité des champs avant de débuter la saisie des données.", vbExclamation, "Module de gestion") = vbOK Then
        activecell.ClearContents
End Sub

Cordialement,

Leakim
 
Re : Problème avec MsgBox

Bonsoir Piaf79,

N'ayant pas de fichier exemple, il est difficile de se prononcer. Un cas qui me vient à l'esprit est celui où votre procédure MesPers3 serait appelée via une procédure évènementielle de feuille de type Worksheet_Change(ByVal Target As Range).

Dans ce cas:
  • la procédure MesPerso3 affiche la boite de dialogue MsgBox
  • un clique sur le bouton referme la boîte de dialogue Msgbox
  • on efface ensuite la cellule ActiveCell
  • ce faisant, Excel détecte une modification de la cellule ActiveCell
  • Excel relance donc la procédure évènementielle Worksheet_Change(...) qui elle-même relance MesPerso3
  • la procédure MesPerso3 affiche la boite de dialogue MsgBox
  • un clique sur le bouton referme la boîte de dialogue Msgbox
  • on efface ensuite la cellule ActiveCell
  • ce faisant, Excel détecte une modification de la cellule ActiveCell
  • Excel relance donc la procédure évènementielle Worksheet_Change(...) qui elle-même relance MesPerso3
  • la procédure MesPerso3 affiche la boite de dialogue MsgBox
  • un clique sur le bouton referme la boîte de dialogue Msgbox
  • on efface ensuite la cellule ActiveCell
  • ce faisant, Excel détecte une modification de la cellule ActiveCell
  • Excel relance donc la procédure évènementielle Worksheet_Change(...) qui elle-même relance MesPerso3
  • la procédure MesPerso3 affiche la boite de dialogue MsgBox
  • etc.
  • et ainsi de suite, jusqu'à la fin des temps... (et c'est loin la fin des temps!)
    • à moins d'appuyer sur Ctrl+Pause

Pour éviter cela, il faut empêcher la détection des évènements par Excel avant d'effacer la cellule ActiveCell et la rétablir après l'effacement.

On remplace :
Code:
ActiveCell.ClearContents
par :
Code:
Application.EnableEvents = False
  ActiveCell.ClearContents
  Application.EnableEvents = True
Mais toute cette prose n'est que conjecture oiseuse puisqu' aucun fichier n'a été fourni...🙁
 
Dernière édition:
Re : Problème avec MsgBox

Bonjour à tous les deux, le forum,

- Leakim : j'avais déjà essayé cette solution mais cela ne fonctionnait pas non plus.
- Mapomme : vous avez bien cerné la chose et la modification de mon code par le votre résout parfaitement mon problème.

Merci pour vos deux réponses et m'avoir permis d'avancer sur mon fichier.

Bon dimanche.
Piaf79
 
- 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

L
Réponses
1
Affichages
1 K
Lucien31
L
O
  • Question Question
Réponses
2
Affichages
918
olivier147
O
L
Réponses
8
Affichages
3 K
L
C
Réponses
2
Affichages
463
chewwe1602
C
M
Réponses
0
Affichages
1 K
M
E
Réponses
2
Affichages
2 K
C
Réponses
10
Affichages
1 K
C
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…