Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: MsgBox an Anfang und Ende von Makro

MsgBox an Anfang und Ende von Makro
Makro
Hi,
habe ein Makro das aufgrund der Größe der Datei und enthaltenen Funktionen relativ lange läuft (ca. 1,5 min.), was evtl. auch an meinen rudimentären VBA-Kenntnissen liegt.
Wie ich eine Message Box erstelle, weiss ich - aber gibt es auch die Möglichkeit, diese so lange anzuzeigen, wie das Makro läuft, z.B. mit dem Text "Makro rechnet - bitte warten...!" o.ä. ?
VG u. vielen Dank im Voraus,
Mike
Anzeige
AW: MsgBox an Anfang und Ende von Makro
07.02.2011 13:16:27
Makro
Hi Hajo,
vielen Dank !
Bietet VBA auch die Möglichkeit, ein Zeitlimit anzugeben, um z.B. zu Beginn des Makros eine ganz normale MsgBox einzubauen, die dann nach 10 Sekunden verschwindet und am Ende noch einmal dasselbe ?
VG,
Mike
Anzeige
AW: MsgBox an Anfang und Ende von Makro
07.02.2011 13:18:54
Makro
Hallo Mike,
man kann eine MSG box für paar Sekunden einblenden. In der Zeit läuft das Makro aber nicht weiter.
Gruß Hajo
AW: MsgBox an Anfang und Ende von Makro
07.02.2011 13:26:41
Makro
Klasse, danke !
Kannst Du mir sagen, mit welchem Befehl ?
VG
Mike
Anzeige
AW: MsgBox an Anfang und Ende von Makro
07.02.2011 13:33:12
Makro
Hallo Mike,
welchen Vorteil hat das, Dein Programm braucht noch länger. Das unterstütze ich nicht.
Gruß Hajo
AW: MsgBox an Anfang und Ende von Makro
08.02.2011 13:33:50
Makro
Hi Hajo,
Du hast Recht - vielen Dank für die Info !
Kannst Du mir sagen, wie ich nur am Ende des Makros eine Msg Box für einige Sekunden anzeigen lassen kann ?
VG aus Dublin und vielen Dank im Voraus,
Mike
Anzeige
AW: MsgBox an Anfang und Ende von Makro
08.02.2011 13:38:27
Makro
Hallo Mike,
Option Explicit
Sub MsgZeit()
'   Blendet eine Msgbox nach 10 Sekunden automatisch wieder aus
'   von K.Rola
'   kein Verweis notwendig
Const bytZeit As Byte = 10
Dim objWSH As Object, intMSG As Integer
Set objWSH = CreateObject("WScript.Shell")
intMSG = objWSH.Popup("Ich bin in " & bytZeit & " Sekunden verschwunden!" & Space(10), _
bytZeit, "gebe bekannt...", vbOKCancel + vbQuestion)
Set objWSH = Nothing
End Sub
Gruß Hajo
Anzeige
AW: MsgBox an Anfang und Ende von Makro
08.02.2011 13:51:04
Makro
Klasse, Hajo, genau so wollte ich's - vielen Dank !
Welchen Befehl muss ich in meinem Makro eingeben, damit dieses Sub am Ende des Makros gestartet wird ?
VG,
Mike
AW: MsgBox an Anfang und Ende von Makro
08.02.2011 14:05:08
Makro
Hallo Mike,
nur msgboxZeit
Gruß Hajo
Anzeige
AW: MsgBox an Anfang und Ende von Makro
08.02.2011 14:14:03
Makro
Klappt, super - vielen Dank nochmal !
VG,
Mike
AW: MsgBox an Anfang und Ende von Makro
07.02.2011 13:02:24
Makro
Hallo Mike,
UF ist eine Möglichkeit.
Du kannst auch über ein Grafikprogramm ein Bild mit dem Text der Msgbox erstellen und einfügen.
Oder aus Steuerelementtoolbox ein Bezeichnungsfeld=label.
Äh, bei 2010 findet man das woanderster.
Diese kannste dann bei Workbook_Open ausblenden und anfangs des makros einblenden, am Ende ausblenden.
Einblenden geht mit
.Visible=True
oder
.Hidden=False
ich verwechlse das immer :-(
Gruß
Reinhard
Anzeige
AW: MsgBox an Anfang und Ende von Makro
07.02.2011 14:56:49
Makro
Super, damit werd ich's probieren - vielen Dank schon mal dafür !!
VG
Mike
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige

Infobox / Tutorial

MsgBox in VBA: So zeigst Du Meldungen während eines Makros an


Schritt-für-Schritt-Anleitung

Um eine MsgBox in VBA zu erstellen, die während der Ausführung eines Makros angezeigt wird, kannst Du folgende Schritte befolgen:

  1. Öffne den VBA-Editor in Excel mit ALT + F11.

  2. Erstelle ein neues Modul: Rechtsklick auf "VBAProject (DeineDatei.xlsx)" > Einfügen > Modul.

  3. Füge den folgenden Code ein:

    Option Explicit
    
    Sub MeinMakro()
       ' MsgBox anzeigen
       MsgBox "Makro rechnet - bitte warten...", vbInformation
    
       ' Hier kommt Dein Makro Code
       Application.Wait (Now + TimeValue("0:00:05")) ' Beispielwartezeit von 5 Sekunden
    
       ' MsgBox am Ende anzeigen
       MsgBox "Makro abgeschlossen!", vbInformation
    End Sub
  4. Starte das Makro: Drücke F5, während Du im Modul bist oder gehe zurück zu Excel und führe das Makro über die Entwickler-Tools aus.


Häufige Fehler und Lösungen

  • Fehler: MsgBox bleibt zu lange offen und stoppt das Makro.

    • Lösung: Verwende die Application.Wait Methode, um das Makro für eine bestimmte Zeit zu pausieren, während die MsgBox angezeigt wird.
  • Fehler: MsgBox erscheint nicht oder verschwindet sofort.

    • Lösung: Stelle sicher, dass Dein Makro nicht vorzeitig beendet wird. Achte darauf, dass nach dem Anzeigen der MsgBox genügend Code folgt, der die Ausführung fortsetzt.

Alternative Methoden

  1. UserForms: Eine benutzerdefinierte Infobox kann erstellt werden, die während des Makros angezeigt wird. Dies ermöglicht mehr Kontrolle über das Design und die Anzeige.

    • Um eine UserForm zu erstellen, gehe zu "Einfügen" > "UserForm" im VBA-Editor.
  2. Popup-Fenster mit WScript: Du kannst auch ein einfaches Popup-Fenster erstellen, das nach einer bestimmten Zeit automatisch verschwindet:

    Sub MsgZeit()
       Const bytZeit As Byte = 10
       Dim objWSH As Object
       Set objWSH = CreateObject("WScript.Shell")
       objWSH.Popup "Ich bin in " & bytZeit & " Sekunden verschwunden!", bytZeit, "Information", vbOKCancel + vbQuestion
       Set objWSH = Nothing
    End Sub

Praktische Beispiele

  • Beispiel für eine einfache MsgBox:

    Sub BeispielMsgBox()
       Dim Antwort As VbMsgBoxResult
       Antwort = MsgBox("Möchtest Du fortfahren?", vbYesNo + vbQuestion, "Fortfahren?")
       If Antwort = vbYes Then
           MsgBox "Du hast Ja gewählt."
       Else
           MsgBox "Du hast Nein gewählt."
       End If
    End Sub
  • Wartezeit in MsgBox: Wenn Du eine MsgBox erstellen möchtest, die nach einer bestimmten Zeit verschwindet, könntest Du den WScript.Shell verwenden, wie im vorherigen Abschnitt beschrieben.


Tipps für Profis

  • Verwende die vbInformation, vbExclamation, oder vbCritical Konstanten, um den Typ der Info in der MsgBox zu bestimmen.
  • Wenn Du eine VBA Yes No Message Box verwenden möchtest, nutze den vbYesNo Parameter, um den Benutzer um eine Entscheidung zu bitten.
  • Teste Deine UserForms gründlich, um sicherzustellen, dass sie auf verschiedenen Bildschirmgrößen funktionieren.

FAQ: Häufige Fragen

1. Wie kann ich eine MsgBox mit einem Zeitlimit erstellen? Du kannst die WScript.Shell.Popup Methode verwenden, um eine MsgBox anzuzeigen, die nach einer bestimmten Zeit automatisch verschwindet.

2. Welche Excel-Version benötige ich für UserForms? UserForms sind in allen Versionen von Excel verfügbar, die VBA unterstützen, einschließlich Excel 2007, 2010, 2013 und späteren Versionen.

3. Kann ich eine MsgBox während des gesamten Makros anzeigen? Eine standardmäßige MsgBox bleibt nicht während der Ausführung des Makros sichtbar. Du musst entweder eine UserForm verwenden oder eine separate Anwendung (z.B. ein Bild oder ein Label) erstellen, um Informationen anzuzeigen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige