Meldung wenn makro fertig ist

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: Meldung wenn makro fertig ist
von: Thomas
Geschrieben am: 19.08.2015 15:27:25

Hallo excelfreunde,
ich starte in einer UF die abfolge bestimmter Makros. Ich möchte gern
während der Laufzeit die meldung "Makro läuft, bitte warten...." erhalten.
mit mein untenstehenden Versuch klappt es leider nicht. Hat jemand eine andere Idee?
liebe grüsse thomas

Private Sub CommandButton1_Click()
Application.StatusBar = "Makro läuft, bitte warten...."
Sheets("Filtereinstellungen").Range("B18").Value = CDate(TextBox1.Text)
Sheets("Filtereinstellungen").Range("B19").Value = CDate(TextBox2.Text)
Call Daten_holen
Call Tabelle_ordnen_Modul
Call leerzeilen_loeschen
Unload Me
Application.StatusBar = "fertig"
 
End Sub

Bild

Betrifft: AW: Meldung wenn makro fertig ist
von: Matthias
Geschrieben am: 19.08.2015 15:41:35
Hallo Thomas,
normal sollte es so funktionieren. Selbst mit ScreenUpdating ausgestellt, wird die Statusleiste in meinem kurzen Test aktualisiert während die Userform andere Dinge erledigt.
Ansonsten mal DoEvents probieren, hilft wenn die Statusleiste einfriert bei längeren Makros. Da dein Befehl an zweiter Stelle steht sollte das aber eigentlich nicht notwendig sein.
lg Matthias

Bild

Betrifft: AW: Meldung wenn makro fertig ist
von: Thomas
Geschrieben am: 19.08.2015 16:51:35
hallo Matthias,
ich bekomme es leider nicht hin,
kannst du mir mal dein kleinen selbsttest schicken? Dann könnte ich es mal mit meiner UF vergleichen. Und nachbauen.
Was meinst Du mit mal DoEvents.
vielen dank erst mal noch für dein interesse.
liebe grüsse thomas

Bild

Betrifft: AW: Meldung wenn makro fertig ist
von: Matthias
Geschrieben am: 19.08.2015 17:04:23
Hallo Thomas,
Du hast bestimmt schon festgestellt, dass während das Makro läuft du keine anderen Sachen in Excel machen kannst.
"DoEvents" ist ein Befehl mit dem der PC zunächst alle anderen anstehen Aufgaben erledigt (z.B Klick auf einen weiteren Schalter, Tastenanschläge, etc.) bevor er mit der nächsten Zeile des Makros weitermacht. Für die genaue Definition frag aber lieber mal Google. DoEvents ist in dem Fall in die nächste Zeile nach "Application.Statusbar = ..." einzufügen.
Mein kleiner Selbstest bestand einfach nur aus einer Userform mit einem Schalter und folgendem Code:


Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
Application.StatusBar = "Läuft"
'DoEvents
Application.Wait Now + TimeValue("00:00:05")
Application.StatusBar = "Bereit"
Application.ScreenUpdating = True
End Sub

Also vergleichbar mit deinem. Was dazwischen steht ist ja irrelevant, da der Befehl StatusBar zuerst ausgeführt wird.
lg Matthias

Bild

Betrifft: AW: Meldung wenn makro fertig ist
von: Thomas
Geschrieben am: 19.08.2015 22:16:42
Hallo Matthias,
es funktioniert jetzt. ich musste dies Application.StatusBar = "Läuft" vor jedes call ...
schreiben und nun zeigt er es an.
vielen dank für die Tipps.
und sorry das ich erst jetzt schreibe ich hatte ein internet problem.
hab vielen dank für die hilfe.
liebe grüsse thomas

Bild

Betrifft: AW: Meldung wenn makro fertig ist
von: Daniel
Geschrieben am: 19.08.2015 17:04:45
Hi
wenn bei einer Userform mache ist das so:
1. ich erstelle auf der Userform eine Mulitpage mit zwei Seiten und blende die Reiter aus (dann kann der Anwender nicht umschalten, sondern nur ich per Code)
auf der ersten Seite liegen die Steuerelemente, auf der zweiten Seite der Hinweistext "bitte warten" und wenn möglich auch ein Progressbar-Steuerelement
2. bevor die eigentlichen zeitauswendigen Makros loslaufen, wechsle ich dann auf die Multipageseite mit dem Hinweistext (Multipage1.Value = 1) und wenn die Makros durchgelaufen sind wieder zurück
ggf richte ich auch noch eine dritte Seite ein, auf welcher dann die Fertigmeldung steht.
(insbesondere dann, wenns so Infos benötigt werden wie "123456 Zeilen bearbeitet, davon 123 fehlerhaft".)
wenn man keine Userform hat, kann man sich auch ein zusätzlichen Tabellenblatt anlegen, in welchen dann in grossen freundlichen Buchstaben das "bitte Warten" steht und das gleiche Spiel mit dem Blatt betreiben.
Gruß Daniel

Bild

Betrifft: AW: Meldung wenn makro fertig ist
von: Thomas
Geschrieben am: 19.08.2015 23:40:05
Hallo Daniel,
erstmal vielen dank für das interesse. ich habe mal versucht von deinen ideen etwas umzusetzten,
nun ja siehe status VBA. Aber ich würde mir dies gern anschauen.
ich habe schon mal ein beispiel vorbereitet. kannst du mal ein beispiel einbauen?
! das test macro läuft auf mein PC ca. 120
sekunden. Man kann es aber mit esc beenden ( es werden nur leere zellen gelöscht)
https://www.herber.de/bbs/user/99691.xlsm
liebe grüsse thomas

Bild

Betrifft: AW: Meldung wenn makro fertig ist
von: Daniel
Geschrieben am: 20.08.2015 00:09:04
Hi
was soll ich einbauen
lerne erstmal, wie man zeilen schnell und effektiv löscht.
bei Excel-gut solltest du die Funktion "Duplikate entfernen" kennen und diese zum löschen von Zeilen verwenden.
hierzu kennzeichnest du die Zeilen, die gelöscht werden sollen in einer Hilfsspalte mit einer Formel mit dem WErt 0 und die Zeilen die stehen bleiben sollen, mit der aktuellen Zeilennummer.
dann wendest du die Funktion DATEN - DATENTTOOLS - DUPLIKATE ENTFERNEN an, mit der Hilsfspalte als kriterium.
Gruss Daniel

Bild

Betrifft: ups kleines missverständnis
von: Thomas
Geschrieben am: 20.08.2015 03:32:22
Hallo Daniel,
ich glaub du hast etwas falsch verstanden. Dies ist doch nur ein Test Macro es sollte eine längere Laufzeit haben um die Statusleiste (bzw. Progressbar-Steuerelement) während der arbeit des makros zu testen.Damit hatte ich genug zeit um test durchzuführen ohne meine Hauptdatei zu zerstören.
Und ich habe auch nicht gesagt das Du es einbauen sollst. Es war eine frage ob du mir mal deine Idee zeigen könntest. Denn ich habe versucht es nachzubauen aber es gelang leider nicht.
Mir ist nur dies auf die schnelle eingefallen ansonsten hatte ich keine Idee eine längere Laufzeit zu produzieren.
liebe grüsse thomas


Bild

Betrifft: AW: ups kleines missverständnis
von: Daniel
Geschrieben am: 20.08.2015 11:44:22
Hi
im Prinizp so.
die Reiter der Multipage solltest du über die Eigenschaftsliste noch ausblenden.
ich lasse die vorab aber noch sichtbar, weils die sonst auch im Edtior nicht sichtbar sind und es dann etwas aufwendig ist, die einzelnen Seiten zu bearbeiten.
https://www.herber.de/bbs/user/99702.xlsm
Gruß Daniel

Bild

Betrifft: vielen dank
von: Thomas
Geschrieben am: 20.08.2015 14:12:59
hallo daniel,
vielen dank dies kann ich nachbauen. Und ist genau das was ich gebrauchen kann. Macht es viel arbeit wenn du diese Meldung noch mit einbaust?
(wenns so Infos benötigt werden wie "123456 Zeilen bearbeitet, davon 123 fehlerhaft")
PS. dein beispiel mit dem testmacro ist deutlich besser als meine idee.
liebe grüsse thomas

Bild

Betrifft: AW: vielen dank
von: Daniel
Geschrieben am: 20.08.2015 15:53:31
Hi
naja, für solche meldungen braucht man ja ein konkretes Fallbeispiel.
da kann ich dir jetzt auch nicht weiterhelfen.
oder muss ich dir erklären, wie man per Makro die Beschriftung eines Userform-Labels ändert?
naja gut.
verwende den Code: Userform1.Label1.Caption = "123456 Zeilen bearbeitet, davon 123 fehlerhaft"
und platziere in im Berechnungsmakro und das Label auf der Seite 3 der Multipage.
Gruß Daniel

Bild

Betrifft: AW: vielen dank an Daniel
von: Thomas
Geschrieben am: 21.08.2015 10:48:11
Hallo Daniel,
sorry das ich mich erst heut melde. Ich hatte gestern wieder ne Leitungs Störung.
Hab vielen dank für deine tipps. Ich werde damit ein wenig experimentieren.
vielen dank dank
thomas

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Meldung wenn makro fertig ist"