Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 09/03/2010, 21h58   #1
Candidat au titre de Membre du Club
 
Inscription : décembre 2007
Messages : 50
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 50
Points : 11
Points : 11
Par défaut Fonctionnement de progress bar

Bonsoir à tous les experts, une fois n'est pas coutume, je viens quémander votre aide pour comprendre le fonctionnement des progressbar. J'ai une macro relativement rapide (10 secondes à peine d'éxécution). Mais plutot que de voir le PC rien faire, je voudrais ajouter une progressbar d'avancement de la macro. Mais je sèche complètement sur son fonctionnement. J'ai essayé nombre de manipulation mais rien à y faire.

J'ai créer un UserForm avec ma progressbar et un bouton démarrer. Mais lorsque j'appel ma macro principal de traitement, il bloque (dépassement de capacité)

VOici le code de l'UserForm :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Private Sub CommandButton1_Click()
Label1.Caption = "Traitement en cours !"
ProgressBar1.Value = 0
 
Dim r As Integer
 
For r = 1 To ProgressBar1.Max
   Call test_import
   ProgressBar1.Value = i
Next
 
Label1.Caption = "Traitement terminé !"
 
End Sub
 
Private Sub Label1_Click()
 
End Sub
 
Private Sub ProgressBar1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal x As stdole.OLE_XPOS_PIXELS, ByVal y As stdole.OLE_YPOS_PIXELS)
 
End Sub

Pas fou, j'ai fait le test de mettre le call après la boucle de l'userform et là ca marche sans pb !! Mais sans grand intérêt non plus .

Merci de votre aide si précieuse...

Ps : je joins le code de ma macro principale au cas où...
Fichiers attachés
Type de fichier : txt Macroprincipal.txt (28,1 Ko, 5 affichages)
willyol3 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/03/2010, 22h33   #2
Membre actif
 
Avatar de Duddy
 
Homme Marc
Agent de maitrise
Inscription : novembre 2007
Messages : 237
Détails du profil
Informations personnelles :
Nom : Homme Marc
Âge : 45
Localisation : France

Informations professionnelles :
Activité : Agent de maitrise
Secteur : Service public

Informations forums :
Inscription : novembre 2007
Messages : 237
Points : 183
Points : 183
Bonsoir le forum,

Tu trouveras ton bonheur ici : http://silkyroad.developpez.com/VBA/...erForm/#LIII-K

Si je n'ai pas réussi à envoyer le lien comme il faut, vas dans les tutos excel, dans les contrôles d'un userform.

Sinon dans ton code, peut être faut-il aussi remplacer :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Private Sub CommandButton1_Click()
Label1.Caption = "Traitement en cours !"
ProgressBar1.Value = 0
 
Dim r As Integer
 
For r = 1 To ProgressBar1.Max
   Call test_import
   ProgressBar1.Value = i
Next
 
Label1.Caption = "Traitement terminé !"
 
End Sub
le "i" par "r" ce qui me semble plus logique.
__________________
Bon courage à toi.
Duddy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2010, 09h40   #3
Candidat au titre de Membre du Club
 
Inscription : décembre 2007
Messages : 50
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 50
Points : 11
Points : 11
Bonjour Duddy. Merci pour ta réponse. Merci également pour le lien, mais c'est exactement d'ici que vient le code pour ma progressbar.

J'ai essayé ce que tu disais sans plus de succès j'avais changé le i en r parce que dans mon code j'ai déjà un i je me disais que ca pouvait faire un conflit.

En fait, la macro de progress bar fonctionne sans problème quand elle est toute seule.

Ma macro de mise en forme fonctionne très bien quand elle est toute seule.

Mais je n'arrive pas à lier les deux... Je me retrouve avec des problèmes de dépassement de capacité ou de sélection range qui échoue... C'est assez surprenant... Pourtant je ne fais que appeler mon module.

Je suis bloqué.
willyol3 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2010, 16h04   #4
Expert Confirmé
 
Avatar de patricktoulon
 
patrick
Inscription : avril 2009
Messages : 1 595
Détails du profil
Informations personnelles :
Nom : patrick
Âge : 41
Localisation : France, Var (Provence Alpes Côte d'Azur)

Informations professionnelles :
Secteur : Bâtiment

Informations forums :
Inscription : avril 2009
Messages : 1 595
Points : 2 505
Points : 2 505
Envoyer un message via MSN à patricktoulon
Par défaut une idée

pour ta progressbar tu n'a pas besoin de faire une autre macro que celle qui fait le travail durant 10 secondes que tu a cité plus haut
ilte suffit de mettre en fin de boucle avant le "end if ou next "
Code :
1
2
3
4
5
 
 
 
 
userform1.progressbar1=(lettre qui te sert a faire taboucle)
en effet surtout ne pas oublier de mettre "userform1."devantprogressbar1" surtout si la macro ne se trouve pas dans le userform

voila
patricktoulon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2010, 18h13   #5
Membre actif
 
Avatar de Duddy
 
Homme Marc
Agent de maitrise
Inscription : novembre 2007
Messages : 237
Détails du profil
Informations personnelles :
Nom : Homme Marc
Âge : 45
Localisation : France

Informations professionnelles :
Activité : Agent de maitrise
Secteur : Service public

Informations forums :
Inscription : novembre 2007
Messages : 237
Points : 183
Points : 183
Bonsoir le forum,

Normalement, j'utilise la progressbar dans l'exécution d'un code qui regarde soit un fichier avec X lignes ou un nombre de fichier à traiter et donc cela me donne:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Sub test()
 
with tonForm.Progressbar1
.mini=0
.maxi=100
end with
 
x=2
while taFeuille.cells(x,1)<>""
 
msgbox "la ligne regardée est la ligne n° " & x
 
tonForm.Progressbar1.value=x
 
x=x+1
wend
end sub
C'est un exemple écrit de mémoire et à adapter à ta situation.
__________________
Bon courage à toi.
Duddy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/03/2010, 15h57   #6
Candidat au titre de Membre du Club
 
Inscription : décembre 2007
Messages : 50
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 50
Points : 11
Points : 11
Merci Duddy j'ai réussi à la faire fonctionner. Encore merci de ton aide.
willyol3 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 02h11.


 
 
 
 
Partenaires

Hébergement Web