Страницы: 1
RSS
Прогрес-бар неправильно отображает информацию процесса
 
Все привет,

Подскажите пожалуйста, что нужно дополнить в мой код, чтобы прогрес бар правильно отображал информацию процесса
Код
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
Изменено: vikttur - 07.06.2021 15:31:00
 
Попробуйте штатный Application.StatusBar (левый нижний угол)
Статья
Изменено: Jack Famous - 07.06.2021 16:13:56
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Цитата
excel-student написал:
чтобы прогрес бар правильно отображал информацию процесса
А что именно он должен отобразить? Какую информацию и для какого процесса? Для него цикл действий каких-то нужен, насколько я понимаю, а не слово "Progress"...
 
_Igor_61, Макрос, например, скачивает определённые данные и я хотел бы видеть сам процесс в прогрессбаре, У меня есть множество других макросов, которые выполняют 100 различных действий...также я хотел бы использовать в таких случаях прогресбар

Jack Famous, пробовал тоже, хотел бы сделать прогрессбар со своей формой
Изменено: vikttur - 08.06.2021 15:26:31
 
Цитата
excel-student написал:
У меня есть множество других макросов, которые выполняют 100 различных действий...также я хотел бы использовать в таких случаях прогресбар
excel-student, :)
Код
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
С отслеживанием объема скачиваемого из интернета не все так просто - наверное нужно привязываться к обозревателю...  
 
_Igor_61, сейчас попробую, спасибо в любом случае
Страницы: 1
Наверх