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.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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.
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" <anonymous@elvis.fr> a écrit dans le message de
news:bu950a$jg0$1@news.tiscali.fr...
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.
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.
(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.
(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.
(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.