Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

ProgressBar

8 réponses
Avatar
RomainCHY
Bonjour à tous,
En cliquant sur un bouton CommandButton1 d'un userform, on déclenche une
série de procédure. C'est assez long et pour améliorer l'aspect visuel du
programme, je voudrais qu'une barre de progression reflète l'avancement des
prodécures.
Il n'y a pas de macro, simplement un nombre important d'éléments qui
s'exécutent.

Quelqu'un peut-il m'aider?
Merci d'avance.

8 réponses

Avatar
JB
Bonjour,

Onglet Barre Attente:

http://boisgontierjacques.free.fr/fichiers/jb-formulaire.zip

Cordialement JB

On 4 mai, 09:22, RomainCHY <romain.charny@@gmail.com> wrote:
Bonjour à tous,
En cliquant sur un bouton CommandButton1 d'un userform, on déclenche une
série de procédure. C'est assez long et pour améliorer l'aspect vis uel du
programme, je voudrais qu'une barre de progression reflète l'avancement des
prodécures.
Il n'y a pas de macro, simplement un nombre important d'éléments qui
s'exécutent.

Quelqu'un peut-il m'aider?
Merci d'avance.


Avatar
RomainCHY
JB, je pense que ton formulaire peut répondre à ma question, mais étant
débutant, je ne comprend pas vraiment ce que je dois faire avec...
Je dois le placer dans un nouvel userform?
J'ai essayé en le mettant dans ma liste de procédures... mais ça ne marche
pas.. normal! ;)
Avatar
RomainCHY
Quelqu'un pourrait-il plus développer comment faire une barre de progression
pour montrer l'évolution de la procédure?

Merci d'avance aux teachers..
Avatar
lSteph
Bonjour,

Voici un exemple artisanal(avec une frame et un label dans un
userform),
inspiré si mes souvenirs sont bons de JWalk, si c'est en autre qu'il
me pardonne et en soit tout aussi remercié.

http://cjoint.com/?ferOccfCSu

LSteph

''''''dans module standard'''''''''''
Option Explicit

Sub Main()
' Inserts random numbers on the active worksheet
Dim Counter As Long
Dim RowMax As Long, ColMax As Byte
Dim r As Long, c As Long
Dim PctDone As Single

If TypeName(ActiveSheet) <> "Worksheet" Then Exit Sub
Cells.Clear
Application.ScreenUpdating = False
Counter = 1
RowMax = 10000
ColMax = 25
For r = 1 To RowMax
For c = 1 To ColMax
Cells(r, c) = Int(Rnd * 1000)
Counter = Counter + 1
Next c
PctDone = Counter / (RowMax * ColMax)
With UserForm1
If r Mod 5 = 0 Then .Frame1progress.Caption = "Exécuté: "
& Format(PctDone, "0.00%")
.Labelprogress.Width = PctDone * (.Frame1progress.Width -
10)
End With
' The DoEvents statement is responsible for the form updating
DoEvents
Next r
Unload UserForm1

End Sub
''''''''''''''''''''''''''''''''''
''''''''''''''''''''''''''dans
userform''''''''''''''''''''''''''''''''''''
Private Sub UserForm_activate()
Call Main
End Sub






On 4 mai, 09:22, RomainCHY <romain.charny@@gmail.com> wrote:
Bonjour à tous,
En cliquant sur un bouton CommandButton1 d'un userform, on déclenche une
série de procédure. C'est assez long et pour améliorer l'aspect vis uel du
programme, je voudrais qu'une barre de progression reflète l'avancement des
prodécures.
Il n'y a pas de macro, simplement un nombre important d'éléments qui
s'exécutent.

Quelqu'un peut-il m'aider?
Merci d'avance.


Avatar
Misange
tu trouveras plusieurs explications avec exemples à télécharger sur
cette page :
http://www.excelabo.net/excel/tempoprogression.php
bonne pioche !

Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

Quelqu'un pourrait-il plus développer comment faire une barre de progression
pour montrer l'évolution de la procédure?

Merci d'avance aux teachers..


Avatar
Modeste
Bonsour® RomainCHY avec ferveur ;o))) vous nous disiez :

Bonjour à tous,
En cliquant sur un bouton CommandButton1 d'un userform, on déclenche une
série de procédure. C'est assez long et pour améliorer l'aspect visuel du
programme, je voudrais qu'une barre de progression reflète l'avancement des
prodécures.
Il n'y a pas de macro, simplement un nombre important d'éléments qui
s'exécutent.

Quelqu'un peut-il m'aider?
Merci d'avance.


voir
http://www.excelabo.net/excel/tempoprogression.php#progressbarexcel
http://www.bmsltd.ie/DLCount/DLCount.asp?file=WksPrgrs.zip
http://www.andypope.info/vba/pmeter.htm
dans le cas de processus enchainés voir aussi :
http://www.dailydoseofexcel.com/archives/2007/02/10/yet-another-progress-bar/


--
--
@+
;o)))

Avatar
JB
Bonjour,

Exemple avec Shape:

http://boisgontierjacques.free.fr/fichiers/Images/ShapeAttente.xls

ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, 10, 10,
70, 12).Select
Selection.Name = "cadre"
ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, 10, 10,
20, 12).Select
Selection.ShapeRange.Fill.ForeColor.SchemeColor = 13
Selection.Name = "attente"
ActiveSheet.Shapes("attente").TextFrame.Characters.Text = "0%"
DoEvents
'-- Ton 1er Traitement
ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, 10, 10,
70, 12).Select
Selection.Name = "cadre"
ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, 10, 10,
20, 12).Select
Selection.ShapeRange.Fill.ForeColor.SchemeColor = 13
Selection.Name = "attente"
ActiveSheet.Shapes("attente").TextFrame.Characters.Text = "0%"
DoEvents
'-- traitement1
For a = 1 To 100000000: Next a ' simulation traitement
ActiveSheet.Shapes("attente").TextFrame.Characters.Text = "20%"
ActiveSheet.Shapes("attente").Width = 30
DoEvents
'-- traitement2
For a = 1 To 100000000: Next a 'simulation traitement
ActiveSheet.Shapes("attente").TextFrame.Characters.Text = "40%"
ActiveSheet.Shapes("attente").Width = 40
DoEvents
......
......

JB

On 4 mai, 10:17, RomainCHY <romain.charny@@gmail.com> wrote:
JB, je pense que ton formulaire peut répondre à ma question, mais é tant
débutant, je ne comprend pas vraiment ce que je dois faire avec...
Je dois le placer dans un nouvel userform?
J'ai essayé en le mettant dans ma liste de procédures... mais ça ne marche
pas.. normal! ;)


Avatar
RomainCHY
C'est sympa à vous tous d'avoir répondu à mon appel... mais je pense être
trop débutant pour faire ça.. une prochaine fois sans doute.
Mais copier/coller des trucs sans les comprendre, ça me tente pas et ça
marche pas ;)

Merci encore à tous