VBA MsgBox qui s'affiche trop tôt

Le
Adrien Delcour
Bonjour tous.
Je voudrais faire une macro qui crit dans un nouveau
document une certaine chane de caractres (qui ne
tiendrait pas dans un MsgBox) et qui envoie ensuite un
MsgBox de type yes-no qui invite l'utilisateur donner
telle ou telle instruction au vu de la chane crite dans
le nouveau document. Le problme est que, souvent avec ce
genre de macros, le MsgBox s'affiche avant que la chane
de caractres n'ait t crite. Je suppose que c'est une
question de synchronisation de flux et que la chane de
caractres qui doit tre crite dans le document est
tamponise alors que le MsgBox ne l'est pas. Certains
langages permettent de forcer la sortie d'un flux sans
tamponisation, mais je ne trouve rien de tel dans la
documentation du VBA. Quelqu'un peut-il m'aider ? Merci
d'avance. Adrien.
"Ne se voyant jamais, ils s'aimrent toujours." Anne
Acoluthe.
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Anacoluthe
Le #900125
Bonjour !

'Adrien Delcour' nous a écrit ...
Je voudrais faire une macro qui écrit dans un nouveau
document une certaine chaîne de caractères (qui ne
tiendrait pas dans un MsgBox) et qui envoie ensuite un
MsgBox de type yes-no qui invite l'utilisateur à donner
telle ou telle instruction au vu de la chaîne écrite dans
le nouveau document. Le problème est que, souvent avec ce
genre de macros, le MsgBox s'affiche avant que la chaîne
de caractères n'ait été écrite.


Curieux. Car le comportement non modal de MsgBox ne va
généralement pas dans ce sens. Quelle version vba ?
Essayez de forcer un rafraîchissement avant la msgbox
Application.ScreenRefresh

"Ne se voyant jamais, ils s'aimèrent toujours."
Anne Acoluthe.


:-D ))))

Anacoluthe
« On ne voit bien qu'avec le coeur »
- Antoine de SAINT-EXUPÉRY

Adrien
Le #901988
Merci Anacoluthe.
Je trouve votre réponse en rentrant de week-end.
Votre solution est bonne : en
mettant "Application.ScreenRefresh" juste avant la
commande MsgBox, on empêche le MsgBox de s'afficher trop
tôt.
J'ai essayé de construire un exemple minimal mettant le
problème en évidence, mais il ne se reproduit pas à
volonté. De toute façon, la macro où il se posait à chaque
exécution est maintenant guérie. Encore merci.

-----Message d'origine-----
Bonjour !


Curieux. Car le comportement non modal de MsgBox ne va
généralement pas dans ce sens. Quelle version vba ?
Essayez de forcer un rafraîchissement avant la msgbox
Application.ScreenRefresh



Publicité
Poster une réponse
Anonyme