Подскажите пожалуйста, что нужно дополнить в мой код, чтобы прогрес бар правильно отображал информацию процесса
Код
Sub download()
Application.DisplayAlerts = False
Dim csvURL As String
csvURL = "http://haendlerportal.sit-moebel.de/csv/verfuegbarkeit.csv"
DownloadBinaryFile csvURL, ThisWorkbook.Path & "\BL - Lieferanten\Bestand - SIT.csv", True
csvURL = "http://haendlerportal.moebilia.de/csv/verfuegbarkeit.csv"
DownloadBinaryFile csvURL, ThisWorkbook.Path & "\BL - Lieferanten\Bestand - Mцbilia.csv", True
csvURL = "http://skyport.myapix.de/export/exportListing.php?id=8236646963963"
DownloadBinaryFile csvURL, ThisWorkbook.Path & "\BL - Lieferanten\Bestand - Skyport.csv", True
If i Mod Int(iLoopCount * 0.02) = 0 Then Call UpdateProgress(i / iLoopCount)
If bCancel Then
MsgBox "Процесс прерван пользователем !", vbExclamation
Exit Sub
End If
ProgressForm.Hide
MsgBox "Процесс успешно завершен !", vbInformation
End Sub
Private Sub UpdateProgress(Pct As Double)
With ProgressForm
.FrameProgress.Caption = Format(Pct, "0%")
.LabelProgress.Width = Pct * (.FrameProgress.Width - 10)
.Repaint
End With
End Sub
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
excel-student написал: чтобы прогрес бар правильно отображал информацию процесса
А что именно он должен отобразить? Какую информацию и для какого процесса? Для него цикл действий каких-то нужен, насколько я понимаю, а не слово "Progress"...
_Igor_61, Макрос, например, скачивает определённые данные и я хотел бы видеть сам процесс в прогрессбаре, У меня есть множество других макросов, которые выполняют 100 различных действий...также я хотел бы использовать в таких случаях прогресбар
Jack Famous, пробовал тоже, хотел бы сделать прогрессбар со своей формой
excel-student написал: У меня есть множество других макросов, которые выполняют 100 различных действий...также я хотел бы использовать в таких случаях прогресбар
Sub Все_макросы()
Макрос_1
Макрос_2
End Sub
Sub Макрос_1()
Application.StatusBar = "Макрос_1"
MsgBox "Начался Макрос_1"
Application.StatusBar = "Макрос_1 Действие_1"
MsgBox "Макрос_1 Действие_1"
Application.StatusBar = "Макрос_1 Действие_2"
MsgBox "Макрос_1 Действие_2"
Application.StatusBar = False
MsgBox "Выполнен Макрос_1"
End Sub
Sub Макрос_2()
Application.StatusBar = "Макрос_2"
'MsgBox "Начался Макрос_2"
Application.StatusBar = "Макрос_2 Действие_1"
'MsgBox "Макрос_2 Действие_1"
Application.StatusBar = "Макрос_2 Действие_2"
'MsgBox "Макрос_2 Действие_2"
Application.StatusBar = False
MsgBox "Выполнен Макрос_2"
End Sub
Если действия недолго длятся, успеете ли прочитать что пишется в статус-баре? Со "своей формой" принцип такой же - выводите не в статус бар, а например в Label или в TextBox С отслеживанием объема скачиваемого из интернета не все так просто - наверное нужно привязываться к обозревателю...