Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Etat d'avancement d'une macro VBA

696 views
Skip to first unread message

Kizman

unread,
Jul 22, 2002, 1:39:59 PM7/22/02
to
Bonjour,

J'aimerais faire afficher l'état d'avancement d'une macro, sans utiliser une
"progress bar" mais plutôt une fenêtre qui indique les différentes tâches
que la macro réalise (définies au préalable).

Exemple:

Soit une macro devant réaliser 3 tâches (Tâche1, Tâche2, Tâche3).
Au moment où il effectue la 1ère tâche, il indique Tâche1 en cours, puis
Tâche2, etc...


Ou bien, encore plus marrant:
Il affiche les noms des 3 tâches et à côté, on a une case à cocher qui se
coche à chaque fois qu'une tâche est complétée...


Merci...

Kizman


yvan

unread,
Jul 22, 2002, 3:15:13 PM7/22/02
to
Bonsoir Kizman,

Tu peux utiliser la barre d'état comme ceci :
Sub general()
call macro1
call macro2
call macro3
application.StatusBar = false 'supprime le dernier affichage contenu dans la
barre d'état, sans quoi il reste permanent
msgbox "Voilà le tour est joué"
End sub

private sub macro1()
for i =1 to 5000 'enclenche une boucle à 5000 flops (si tu mets moins, tu ne
verra même pas s'afficher la barre d'état:-)
application.StatusBar = "Première macro actionnée"&i
next i
End sub

private sub macro2()
for i =1 to 5000 'enclenche une boucle à 5000 flops (si tu mets moins, tu ne
verra même pas s'afficher la barre d'état:-)
application.StatusBar = "Seconde macro actionnée"&i
next i
End sub

private sub macro3()
for i =1 to 5000 'enclenche une boucle à 5000 flops (si tu mets moins, tu ne
verra même pas s'afficher la barre d'état:-)
application.StatusBar = "Troisième macro actionnée"&i
next i
End sub

Salutations
Yvan

popi

unread,
Jul 23, 2002, 6:21:28 AM7/23/02
to
Salut yvan, tu permet que je m'inspire de ta macro pour la compléter comme
le souhaite Kizman ?

Kizman, avec un userform, 3CheckBox et un CommanButton :

Private Sub CommandButton1_Click()
macro1
macro2
macro3
MsgBox "Voilà le tour est joué", vbExclamation, "yvan & popi"
End Sub

Private Sub macro1()
CheckBox1.Caption = "Première macro actionnée..."
Me.Repaint
For i = 6000 To 0 Step -1
Me.Caption = i
Next i
CheckBox1 = 1
CheckBox1.Caption = "Première macro terminée"
End Sub

Private Sub macro2()
CheckBox2.Caption = "Seconde macro actionnée..."
Me.Repaint
For i = 6000 To 0 Step -1
Me.Caption = i
Next i
CheckBox2 = 1
CheckBox2.Caption = "Seconde macro terminée"
End Sub

Private Sub macro3()
CheckBox3.Caption = "Troisième macro actionnée..."
Me.Repaint
For i = 6000 To 0 Step -1
Me.Caption = i
Next i
CheckBox3 = 1
CheckBox3.Caption = "Troisième macro terminée"
Me.Caption = "Traitement global terminé"
End Sub


--
@+ popi
"Quadra ressoudeur"
W2000Pro - OfficeXP - VB6 - OE6
http://popiweb.chez.tiscali.fr
.
"yvan" <fixe...@hotmail.com> a écrit dans le message de news:
#mUP8PbMCHA.944@tkmsftngp10...

Kizman

unread,
Jul 23, 2002, 11:39:05 AM7/23/02
to
Merci aux 2.

Juste un dernier petit détail: comment lancer l'application à partir de
Excel même, sans passer par VBA?

Merci...

Kizman


"popi" <po...@infonie.fr> a écrit dans le message de news:
#cymrIjMCHA.1620@tkmsftngp10...

yvan

unread,
Jul 23, 2002, 1:35:47 PM7/23/02
to
Salut Popi,

C'est si gentiment demandé que l'on ne peut pas refuser ;)

Salutations
Yvan


0 new messages