Comment creer une ProgressBar

Résolu
cco86260
Messages postés
166
Date d'inscription
dimanche 22 janvier 2012
Statut
Membre
Dernière intervention
30 juillet 2015
- 15 mai 2014 à 12:26
jordane45
Messages postés
35833
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
7 juillet 2022
- 16 mai 2014 à 11:43
Bonjour à tous,

Donc je post un nouveau sujet en lien avec:
http://codes-sources.commentcamarche.net/forum/affich-10027846-modifier-a-nouveau-un-code-de-convertion-en-pdf

En faite j'ai commenté la ligne "MsgBox" a la fin du module "ToPdf", que je vous présente ci-dessous ainsi que sa boucle :

7 réponses

jordane45
Messages postés
35833
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
7 juillet 2022
358
15 mai 2014 à 14:58
Bonjour,

1- Créer un USERFORM
2 - Y ajouter un objet : ProgressBar
3 - Coder pour adapter à tes besoins..

Tu as des exemples sur le net :
http://lmgtfy.com/?q=VBA+Excel+progressbar


0
cco86260
Messages postés
166
Date d'inscription
dimanche 22 janvier 2012
Statut
Membre
Dernière intervention
30 juillet 2015
2
15 mai 2014 à 15:08
Salut Jordane45,

Donc merci pour le liens, j'y étais déjà allé... puis je sais me servir de google... merci...mdr (je dis ça pour la demo affichée), tout en rigolant biensure car tu as raison....

Je m'y colle ce soir...

En fait, peut être que je me pose trop de question, mais pour la barre de progression, elle agit uniquement en fonction d'une boucle ?

Christian

--
0
jordane45
Messages postés
35833
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
7 juillet 2022
358
15 mai 2014 à 15:34
Bonjour,

elle agit uniquement en fonction d'une boucle ?
Oui en effet.

Il faut que tu ajoutes, dans ta boucle qui lance les conversion en PDF, l'incrémentation de ta progressbar.

Un truc du genre :
Sub exemple()


UserForm1.ProgressBar1.Max = 100
UserForm1.Show


nbToGo = 25 
For i = 1 To nbToGo
ValP = Int((i / nbToGo) * 100)
  UserForm1.ProgressBar1.Value = ValP
Next


End Sub


0
cco86260
Messages postés
166
Date d'inscription
dimanche 22 janvier 2012
Statut
Membre
Dernière intervention
30 juillet 2015
2
Modifié par cco86260 le 15/05/2014 à 19:36
Re, enfin bonsoir maintenant,

J'ai essayer le code pour la progressBar mais je dois mal m'y prendre,

c'est par ce code que j'appel mon module de convertion, j'essayer de placer le progressBar dedans mais rien...

Private Sub Cmd_PDF_Click()
Dim i As Byte
'boucle sur les éléments de la ListBox
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) = True Then
feuil = ListBox1.List(i) 'nom de la feuille
Sheets(feuil).Select

ToPdf
End If
Next i

End Sub


Je cherche... on verra..

Merci a toi, bonne soirée

--
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cco86260
Messages postés
166
Date d'inscription
dimanche 22 janvier 2012
Statut
Membre
Dernière intervention
30 juillet 2015
2
16 mai 2014 à 09:19
Bonjour Jordane45,

Donc voici ce que j'ai essayer... mais evidemment ça ne marche pas...grrr


Private Sub Cmd_PDF_Click()
Dim i As Byte
Dim j As Integer
'boucle sur les éléments de la ListBox
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) = True Then
feuil = ListBox1.List(i) 'nom de la feuille
Sheets(feuil).Select
ToPdf
End If
ProgressBar.ProgressBar1.Max = 100
ProgressBar.Show
nbToGo = 25
For j = 1 To nbToGo
ValP = Int((j / nbToGo) * 100)
ProgressBar.ProgressBar1.Value = ValP

Next j
Next i

End Sub


Biensure il me manque encore des notions en VBA... juste des explications sur pourquoi ça veut pas... pour que je comprenne et ne refasse pas la même erreur.

Merci bonne journée

Christian
--
0
jordane45
Messages postés
35833
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
7 juillet 2022
358
16 mai 2014 à 09:57
Hello,

Ce que je t'ai donné... c'est juste un exemple de fonctionnement.... pas le code tel quel à utilser..

Private Sub Cmd_PDF_Click()
    Dim i As Byte
    Dim j As Integer
    DIm nbToGo as integer
    
    nbToGo = ListBox1.ListCount - 1
    ProgressBar.ProgressBar1.Max = 100
    ProgressBar.Show

    'boucle sur les éléments de la ListBox
     For i = 0 To ListBox1.ListCount - 1
        If ListBox1.Selected(i) = True Then
          feuil = ListBox1.List(i) 'nom de la feuille
          Sheets(feuil).Select
          ' Maj ProgressBar
          ValP = Int((i / nbToGo) * 100)
          ProgressBar.ProgressBar1.Value = ValP
          ToPdf
       End If
    Next 
    
End Sub

0
cco86260
Messages postés
166
Date d'inscription
dimanche 22 janvier 2012
Statut
Membre
Dernière intervention
30 juillet 2015
2
16 mai 2014 à 10:02
Re,

Je me doutais, mais j'ai quand même essayé, mon erreur était la boucle For J... elle ne servait à rien alors... je vais aller reviser moi... c'est pas évident... j'ai commencé à assimiler quelque truc... il faut quand même savoir que c'est grace à vous le forum que j'ai débuté dans le VBA... et merci...

Mais je suis pas au top...

Peut tu m'expliquer un peu le fonctionnement de cette boucle (qui fait quoi a quel moment)...

c'est pour ma connaissance... enfin... tu m'as compris...lol

Un grand merci...

Christian

--
0
cco86260
Messages postés
166
Date d'inscription
dimanche 22 janvier 2012
Statut
Membre
Dernière intervention
30 juillet 2015
2
16 mai 2014 à 10:10
Je viens d'essayer le code... alors, lorsque je clique sur mon bouton "cmd_pdf", il m'affiche bien ma progressBar, parcontre, pas d'avancement et il faut que je la ferme pour que la conversion commence...

Mais c'est déjà un début... tu m'à donné la base, à moi de chercher un peu maintenant...

Bonne journée,
0
cco86260
Messages postés
166
Date d'inscription
dimanche 22 janvier 2012
Statut
Membre
Dernière intervention
30 juillet 2015
2
16 mai 2014 à 10:20
Juste une info peut être utile...lorsque je converti les rapport en PDF, il m'affiche un message "impression de..." pour chaque PDF, ne serait ce pas ça qui bloquerait la progressBar ?
0
jordane45
Messages postés
35833
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
7 juillet 2022
358
16 mai 2014 à 10:21
Il faut que ta Userform soit en modal.
0
cco86260
Messages postés
166
Date d'inscription
dimanche 22 janvier 2012
Statut
Membre
Dernière intervention
30 juillet 2015
2
Modifié par cco86260 le 16/05/2014 à 10:46
Les USF suivant sont ShowModal = False (après reflection et correction)

To_PDF (ne pas confondre avec le module de convertion "ToPdf")
ProgressBar

ça fonctionne, je vais essayer de la personnaliser maintenant...

Il faut également que je trouve comment eviter ce message : "impression de ...." dans le module "ToPdf", surement une ligne à commenter je pense ?
0
cco86260
Messages postés
166
Date d'inscription
dimanche 22 janvier 2012
Statut
Membre
Dernière intervention
30 juillet 2015
2
16 mai 2014 à 10:47
Merci pour ton aide, c'est super sympas... c'est même plus qu'une aide, tu as fait le boulot !!

Mais c'est super sympas de ta part...

Amicalement

Christian
0