Clever-Excel-Forum

Normale Version: Fortschrittsanzeige graphisch oder in %
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Tag zusammen,

Habe ein Excel Sheet, welches mittels Abfragen mehrere hundert Datensatze aus verschiedenen anderen Tabellen importiert und  danach in Power Query Berrechnungen damit macht.
Der Import und die Berrechnung dauern ca. 10 Minuten. Aktuell sehe ich nur am Mauszeiger, dass das Makro noch am laufen ist.

Gibt es eine Möglichkeit einer Fortschrittsanzeige, graphisch oder in %. Irgend etwas wo der Anwender den Fortschritt sieht oder wie lange es ca. noch dauert bis das Makro abgeschlossen ist?
Aktuell denkt der Anwender jedesmal Excel sei abgestürzt, weil es so lange dauert.

Grüsse Pean
Moin!
Das liegt an Zeile 42 Deines Makros!
Ansonsten:
Was hat VBA, das PQ nicht könnte?
(ist bis dato eine rein akademische Frage)

Gruß Ralf

und P.S.:
Eine Fortschrittsanzeige muss ja auch berechnet werden, verlangsamt die Kiste zusätzlich.
Hallo Ralf,


Zitat:Das liegt an Zeile 42 Deines Makros!



vermute ich auch. 

@ Pean: zeige doch mal deinen Quelltext, oder am besten eine Beispieldatei, dann könnte man versuchen die Sache zu optimieren.
Tach Zusammen,



Ja habe euren Hinweis verstanden. Könnte schon gut sein, das Makrozeile 42 nicht optimal ist Smile

Bin ja kein Spezi, aber die Optimierung des Makros scheint mir eher schwierig zu sein. Das Makro macht nichts anderes als 10 Datenabbfragen auf andere Tabellen zu aktualisieren, welche total gegen 3000 Zeilen beinhalten. Nach erfolgter Aktualisierung dauert es nochmals ewig, bis das Datenmodell geladen ist für die Berrechnungen. Die Einbettung einer Fortschrittsanzeige ist vermutlich eher schwierig.

Ich verfolge nun einen anderen Ansatz. Wenn ich ja weiss, dass der gesamte Prozess 10 Minuten dauert, könnte ich ja parallel ein entsprechender Countdown in einer Userform laufen lassen.



Habe dazu einen tollen BeispielCode gefunden, welcher in einer .xls Version prima funktioniert. Wenn ich das ganze in mein .xlsm Dokument kopiere, gibts eine Fehlermeldung bei rot

Die Frage ist nur wieso, da habe ich keine Ahnung. Eine Idee?



in Userform



Option Explicit

   

    Private Sub UserForm_Activate()

    DoEvents

    Call tt

    End Sub

   

    Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)

    If CloseMode = 0 Then

      MsgBox "Hinweisfenster nicht schliessen!", vbCritical

      Cancel = 1

    End If

    End Sub

   

    Private Sub UserForm_Initialize()

    Me.Label1.Left = 0

    Me.Label1.Height = Me.Height

    Me.Label1.Width = 0

    Me.Label1.Top = 0

    UserForm1.Repaint

    End Sub





in Modul



Option Explicit

   

    Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

   

    Sub tt()

   
   Dim N

    UserForm2.Show 0

    For N = 0 To 150

      Call MeinBalken(150, N)

      Sleep 100  'Millisekunden

      DoEvents

    Next N

    DoEvents

    Sleep 300

    Unload UserForm1

    DoEvents

    End Sub

   

    Sub MeinBalken(ByVal Anzahl As Long, ByVal N As Long)

    Dim Breite As Single

    Breite = UserForm1.Width / Anzahl * N

    With UserForm1

      .Label1.Width = Breite

      .Caption = "Verlauf " & Format(N / Anzahl, "0.0 %")

      .Caption = .Caption & " " & N & " / " & Anzahl

      .Repaint

    End With

    End Sub







Grüsse

Pean

Das einzige was ich noch ändern müsste, damit es auf meinem Notebook lief


Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Hallo Pean,

(16.04.2020, 21:44)Pean schrieb: [ -> ]Habe dazu einen tollen BeispielCode gefunden, welcher in einer .xls Version prima funktioniert. Wenn ich das ganze in mein .xlsm Dokument kopiere, gibts eine Fehlermeldung bei rot

Die Frage ist nur wieso, da habe ich keine Ahnung. Eine Idee?

vielleicht, wenn Du uns auch die *xlsm zeigst. Wink

Gruß Uwe
Hallo Pean,

der eigentliche Quelltest wäre interessanter gewesen als der von der Fortschrittanzeige.
Hallöchen,

Zitat:Wenn ich das ganze in mein .xlsm Dokument kopiere, gibts eine Fehlermeldung
speichere die xls mal als xlsm, dann klappt's auch mit dem Nachbarn Smile