Afficher sans stopper la macro

Messages postés
7
Date d'inscription
jeudi 18 juillet 2002
Statut
Membre
Dernière intervention
23 août 2002
-
Messages postés
36
Date d'inscription
dimanche 22 octobre 2000
Statut
Membre
Dernière intervention
4 avril 2003
-
PetitGognol
Bonjour à tous,

Je bosse sur VBA Excel et aimerait afficher des messages pendant que ma macro tourne. Si j'utilise une form, elle stoppe la macro, et je n'ai pas la propriété Shownomodal disponible. J'ai essayé avec un timer, mais rien à faire, si l'utilisateur ne ferme pas la form, la macro ne continue pas à s'exécuter. Que puis-je faire ?

Merci de votre aide

3 réponses

Messages postés
110
Date d'inscription
jeudi 9 mai 2002
Statut
Membre
Dernière intervention
11 mars 2010
1
pourquoi tu ne roule pas ta macro en trace mode avec le débuggeur... tu n'As qu'A faire F8 pour allé a la ligne suivante ou ctrl+f8 pour allé a la position de la souris!!!

Tu sépares tes 2 fenetre (débug & excel) de maniere a voir les 2 a l'écran et tu y vas de cette facon!
Messages postés
1471
Date d'inscription
mardi 5 février 2002
Statut
Membre
Dernière intervention
20 octobre 2014
12
tu peux pas tout simplement ecrire ton message dans une cellule ?
Messages postés
36
Date d'inscription
dimanche 22 octobre 2000
Statut
Membre
Dernière intervention
4 avril 2003

Salut,

Bah, puisque t'as pas cette fichue propriété ShowModal, je vois pas comment tu pourrais utiliser une UserForm... :sad)

Mais ce que tu peux faire, c'est ajouter une feuille nommée Information par exemple, et tu fais afficher à l'écran cette feuille pendant que ta macro tourne...

Pour ton code, ça donnerait un truc du genre:

Application.ScreenUpdating = False

' ton code

Sheets("Information").Select
Application.ScreenUpdating = True
Range("A1").Value = "Etape 1 blablabla..."
Application.ScreenUpdating = False

' ton code

Sheets("Information").Select
Application.ScreenUpdating = True
Range("A2").Value = "Etape 2 blablabla..."
Application.ScreenUpdating = False

' ton code

Sheets("Information").Select
Application.ScreenUpdating = True
Range("A3").Value = "Etape 3 blablabla..."
Application.ScreenUpdating = False

etc...

C'est moins esthétique qu'une boite de dialogue, mais je vois rien d'autre. Si jamais tu trouves pas ton bonheur ailleurs, t'auras qu'à faire ça. :big)

Bye.