Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

message pendant exécution d'une macro

7 réponses
Avatar
PB
bonjour,
comment afficher un message pendant l'exécution d'une macro
pour donner des indications sur le déroulement du processus à l'utilisateur

7 réponses

Avatar
Jacquouille
Bonjour
Peut-être:
Msgbox MaVar
où MaVar est une variable (!) de ta macro. Comme tu sais où tu as mis ce
texte, lorsque le msg s'affichera, tu sauras que tu es arrivé à tel endroit
de la macro et, en plus, tu connaitras la valeur de ta var.
Il y a aussi le bouton espion à placer dans la marge.

Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"PB" a écrit dans le message de groupe de discussion :
imnmqf$175q$

bonjour,
comment afficher un message pendant l'exécution d'une macro
pour donner des indications sur le déroulement du processus à l'utilisateur
Avatar
Jean-Claude
Bonjour,

s'il s'agit d'afficher une information sans pour autant stopper la macro,
utiliser :
Application.StatusBar = "mon message"
qui affiche le message dans la barre d'état, en bas de la fenêtre, et permet
donc de suivre le déroulement de la macro.

Jean-Claude
Avatar
PB
En effet je ne veux pas arrêter la macro.
En fait je rempli un tableau de résultats et je veux faire patienter
l'utilisateur car cela prends jusqu'à une mn
Avatar
Jean-Claude
"PB" a écrit dans le message de news:
imnsih$19u0$
En effet je ne veux pas arrêter la macro.
En fait je rempli un tableau de résultats et je veux faire patienter
l'utilisateur car cela prends jusqu'à une mn



Dans ce cas, Application.StatusBar est une solution, avec un message du
style
"xx lignes traitées sur yy"
ainsi la personne sait à quoi s'attendre.
Mais à noter que cela ralenti très légèrement la macro, à causede
l'affichage.

Jean-Claude
Avatar
Jacky
Bonsoir,

Tu peux t'inspirer de ceci
'--------------
Sub msg()
Dim sh As Worksheet, x As String
x = ActiveSheet.Name
UserForm1.Show
For Each sh In Worksheets
UserForm1.Label1.Caption = sh.Index & "- Traitement de " & sh.Name & " en cours"
DoEvents
sh.Select 'a supprimer aprés test
sh.Columns(1).Clear ' a supprimer aprés test
For i = 1 To 10: sh.Cells(i, 1) = i ' a supprimer aprés test
For j = 1 To 7000000: Next ' a supprimer aprés test
Next ' a supprimer aprés test
'code actuel
'--------
'---------
Next
Unload UserForm1
Sheets(x).Select
End Sub
'----------------------
Voir ici
http://www.cijoint.fr/cjlink.php?file=cj201103/cijY33Kd5d.xls

--
Salutations
JJ


"PB" a écrit dans le message de news: imnmqf$175q$
bonjour,
comment afficher un message pendant l'exécution d'une macro
pour donner des indications sur le déroulement du processus à l'utilisateur
Avatar
Baton Rouge
On Sun, 27 Mar 2011 20:14:11 +0200, "Jean-Claude"
wrote:


"PB" a écrit dans le message de news:
imnsih$19u0$
En effet je ne veux pas arrêter la macro.
En fait je rempli un tableau de résultats et je veux faire patienter
l'utilisateur car cela prends jusqu'à une mn



Dans ce cas, Application.StatusBar est une solution, avec un message du
style
"xx lignes traitées sur yy"
ainsi la personne sait à quoi s'attendre.
Mais à noter que cela ralenti très légèrement la macro, à causede
l'affichage.

Jean-Claude




Un modulo xxx dans la boucle fera l'affaire

--
Travailler plus pour gagner plus pour quoi faire ?
Pour finir par divorcer parce qu'on est pas souvent à la maison ou faire un malaise vagal et creuser le trou de la sécu ?
Avatar
PB
Merci à tous pour avoir éclairé ma lanterne et à jacky pour l'exemple joint.