VbExcel compteur de ligne pdt exécution macro

Résolu/Fermé
necro27 Messages postés 160 Date d'inscription jeudi 28 mai 2009 Statut Membre Dernière intervention 11 février 2011 - 12 juin 2009 à 14:56
necro27 Messages postés 160 Date d'inscription jeudi 28 mai 2009 Statut Membre Dernière intervention 11 février 2011 - 12 juin 2009 à 16:25
Bonjour,

Je recentre ma question posée précédemment sous un titre plus significatif :

Comment puis-je faire pour, lors de l'exécution d'une macro sous excel, qui en faite traite un nombre de lignes variant suivant les fichiers, afficher le traitement en temps réel sur la 'barre grisée' située juste en dessous de la dénomination des feuilles excel.

En faite, je voudrai un texte du genre suivant :

' pour le traitement en ligne 1 :
Traitement en cours : ligne 1 / 5 550.

' pour le traitement en ligne 3 000 :
Traitement en cours : ligne 3 000 / 5 550.

Clairement le texte doit se mettre à jour à chaque nouvelle ligne.

Cela permet par exemple de suivre l'état du traitement et surtout de savoir si le programme a planté ou pas.
En effet actuellement un traitement de 5 000 lignes prend environ 10 minutes, ainsi comment savoir avant 20 minutes si le programme a planté ou s'il est en cours de traitement ..

J'espère avoir été compréhensible parce que je n'arrive pas à trouver une seul chose en raport avec ce que je cherche sur internet, et encore moins dans l'aide vb.

Si vous avez besoin de clartée, je suis à votre écoute

Merci d'avance

Necro27

1 réponse

necro27 Messages postés 160 Date d'inscription jeudi 28 mai 2009 Statut Membre Dernière intervention 11 février 2011 8
12 juin 2009 à 16:25
C'est bon j'ai trouvé !!

Pour ceux qui on le même problème, il suffit d'utiliser juste avant la fin de la boucle :

Application.statusbar="Traitement de la ligne" & ligne & " sur " &nb_lig & " lignes"

Exemple :

dim nb_lig as integer, ligne as integer

nb_lig = 1
ligne = 2

'Calcul du nombre de lignes totales
while range ("A1") <> Empty
[..code..]
nb_lig = nb_lig +1
activecell.offset(0,1).activate
wend


'Traitement
while range ("A1")
[..code..]
ligne = ligne + 1
Application.statusbar="Traitement de la ligne" & ligne & " sur " &nb_lig & " lignes"
wend


Et en fin de macro :

Application.statusbar=false
End sub


Voila l'essentiel y est, si vous avez des questions n'hésitez pas je développerais...

Bonne fin de journée à tous

Necro27
0