OVH Cloud OVH Cloud

Utilisation macro complémentaire progressbar

2 réponses
Avatar
Leonard
Bonjour à tous,

J'ai déjà posté à propos d'une barre de progression mais jé n'ai pas réussit
à obtenir un résultat. Je reposte donc en espèrant obtenir un peu d'aide.

Je souhaiterais avoir une explication sur la macro complémentaire
Progressbar. J'ai créer une macro qui est assez longue à réliser et je
souhaiterais lancé un userform avec à l'interieur une barre de progression
mais je ne sais vraiment pas comment mi prendre. Merci pour votre aide.

2 réponses

Avatar
Michel Pierron
Bonsoir Léonard (remplace 10000 par la valeur qui te convient);
Un exemple:
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal
lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA"
(ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal
lpsz2 As String) As Long
Private Declare Function GetClientRect Lib "user32" (ByVal hWnd As Long,
lpRect As RECT) As Long
Private Declare Function CreateWindowEx Lib "user32" Alias "CreateWindowExA"
(ByVal dwExStyle As Long, ByVal lpClassName As String, ByVal lpWindowName As
String, ByVal dwStyle As Long, ByVal x As Long, ByVal y As Long, ByVal
nWidth As Long, ByVal nHeight As Long, ByVal hWndParent As Long, ByVal hMenu
As Long, ByVal hInstance As Long, lpParam As Any) As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA"
(ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As
Any) As Long
Private Declare Function DestroyWindow Lib "user32" (ByVal hWnd As Long) As
Long

Type RECT
cl As Long
ct As Long
cr As Long
cb As Long
End Type

Sub PBarTest()
ProgressBar 10000
End Sub

Private Sub ProgressBar(ByVal iVal&)
Dim BarState As Boolean, R As RECT, hWnd&
Dim pbhWnd&, pbH&, y&, i&, sbVal%
BarState = Application.DisplayStatusBar
Application.DisplayStatusBar = True
hWnd = FindWindow(vbNullString, Application.Caption)
hWnd = FindWindowEx(hWnd, ByVal 0&, "EXCEL4", vbNullString)
GetClientRect hWnd, R
pbH = (R.cb - R.ct) - 6: y = R.ct + 3
pbhWnd = CreateWindowEx(0, "msctls_progress32", "", &H10000000 _
Or &H40000000 Or 0&, 35, y, 185, pbH, hWnd, 0&, 0&, 0&)
For i = 1 To iVal
DoEvents
sbVal = Val(Format(i / iVal, "0%"))
Application.StatusBar = sbVal & "%"
SendMessage pbhWnd, &H402, sbVal, 0
Next i
DestroyWindow pbhWnd
Application.StatusBar = False
Application.DisplayStatusBar = BarState
End Sub

MP

"Leonard" a écrit dans le message de
news:bu950a$jg0$
Bonjour à tous,

J'ai déjà posté à propos d'une barre de progression mais jé n'ai pas
réussit

à obtenir un résultat. Je reposte donc en espèrant obtenir un peu d'aide.

Je souhaiterais avoir une explication sur la macro complémentaire
Progressbar. J'ai créer une macro qui est assez longue à réliser et je
souhaiterais lancé un userform avec à l'interieur une barre de progression
mais je ne sais vraiment pas comment mi prendre. Merci pour votre aide.




Avatar
Frédéric Sigonneau
Bonjour,

Pour varier les plaisirs :

http://perso.wanadoo.fr/frederic.sigonneau/code/ToutFait/BarresDeProgression.zip

(8 manières différentes de créer une barre de progression).

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


Bonjour à tous,

J'ai déjà posté à propos d'une barre de progression mais jé n'ai pas réussit
à obtenir un résultat. Je reposte donc en espèrant obtenir un peu d'aide.

Je souhaiterais avoir une explication sur la macro complémentaire
Progressbar. J'ai créer une macro qui est assez longue à réliser et je
souhaiterais lancé un userform avec à l'interieur une barre de progression
mais je ne sais vraiment pas comment mi prendre. Merci pour votre aide.