Comment creer une ProgressBar [Résolu]

cco86260 166 Messages postés dimanche 22 janvier 2012Date d'inscription 30 juillet 2015 Dernière intervention - 15 mai 2014 à 12:26 - Dernière réponse : jordane45 20644 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 26 avril 2018 Dernière intervention
- 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 :
Afficher la suite 

15 réponses

Répondre au sujet
jordane45 20644 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 26 avril 2018 Dernière intervention - 15 mai 2014 à 14:58
0
Utile
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


Commenter la réponse de jordane45
cco86260 166 Messages postés dimanche 22 janvier 2012Date d'inscription 30 juillet 2015 Dernière intervention - 15 mai 2014 à 15:08
0
Utile
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

--
Commenter la réponse de cco86260
jordane45 20644 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 26 avril 2018 Dernière intervention - 15 mai 2014 à 15:34
0
Utile
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


Commenter la réponse de jordane45
cco86260 166 Messages postés dimanche 22 janvier 2012Date d'inscription 30 juillet 2015 Dernière intervention - Modifié par cco86260 le 15/05/2014 à 19:36
0
Utile
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

--
Commenter la réponse de cco86260
cco86260 166 Messages postés dimanche 22 janvier 2012Date d'inscription 30 juillet 2015 Dernière intervention - 16 mai 2014 à 09:19
0
Utile
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
--
Commenter la réponse de cco86260
jordane45 20644 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 26 avril 2018 Dernière intervention - 16 mai 2014 à 09:57
0
Utile
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

Commenter la réponse de jordane45
cco86260 166 Messages postés dimanche 22 janvier 2012Date d'inscription 30 juillet 2015 Dernière intervention - 16 mai 2014 à 10:02
0
Utile
8
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

--
cco86260 166 Messages postés dimanche 22 janvier 2012Date d'inscription 30 juillet 2015 Dernière intervention - 16 mai 2014 à 10:34
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 ?
cco86260 166 Messages postés dimanche 22 janvier 2012Date d'inscription 30 juillet 2015 Dernière intervention - 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
jordane45 20644 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 26 avril 2018 Dernière intervention - 16 mai 2014 à 11:35
Y'a pas de quoi.
Par contre;.. si ton souci est traité...penses à mettre le sujet en résolu ( lien "Marquer comme résolu" qui se situe sous le titre de ta question)
cco86260 166 Messages postés dimanche 22 janvier 2012Date d'inscription 30 juillet 2015 Dernière intervention - 16 mai 2014 à 11:37
C'est fait :)

A bientôt sur le forum...

Bon we

Christian
jordane45 20644 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 26 avril 2018 Dernière intervention - 16 mai 2014 à 11:43
Merci.
Bon Week-End également.
Commenter la réponse de cco86260

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.