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

Prüfen, ob irgendein Macro läuft

Forumthread: Prüfen, ob irgendein Macro läuft

Prüfen, ob irgendein Macro läuft
16.05.2003 19:43:53
Josef Bouchi
Hallo,

wie ist der VBA Befehl, um zu prüfen, ob gerade irgendein Macro läuft?

Also, kein bestimmtes, sondern nur allgemein. Ich möchte nämlich, falls eins läuft dieses stoppen. Das Problem ist nämlich, das ich ca. 26 verschiedene Makros habe, die evtl. laufen könnten. Hat jemand eine Idee?

Ich benutze übrigens eine englische Version!

Danke schön

Josef

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Prüfen, ob irgendein Macro läuft
16.05.2003 20:01:48
willi

Hallo Josef,

also soweit ich weis erkennt man einen die meisten Makro´s an der Sanduhr ( Cursor ) , solange das Makro läuft.

zum anderen, solltest du Makro´s haben, die zum Beispiel ( Countdown oder Uhr )im Hintergrund laufen; bei denen zittert meistens kurz dass Bild wenn wieder ne Sekunde vorbei geht.

Zum anderen kann man Makro´s mit der Escape taste deiner Tastatur unterbrechen,

hoffe das hilft dir schon mal,
Gruss willi

Anzeige
Re: Prüfen, ob irgendein Macro läuft
16.05.2003 20:20:51
ChrisL

Hallo Josef

Spontan fällt mir ein, dass du zu Beginn eines jeden Makros eine Variable auf True und am Ende auf False setzen könntest. Wenn True einen SendKeys Esc senden.

Denke aber es müsste noch eine elegantere Lösung geben. Vielleicht wirst du in der Recherche noch fündig.

Gruss
Chris

Anzeige
Re: Prüfen, ob irgendein Macro läuft
16.05.2003 20:51:53
Josef Bouchi

Danke,

aber das ist es nicht. Ich versuche es mal genauer zu erklären.

Als Ansatz habe ich mal folgendes versucht:
-Application.OnTime NextTime1, "CommandButton1_Click", , False
Aber das klappt nur mit einem Macro und ist zu statisch.

Ich will aber, dass geprüft wird, ob gerade irgendein Macro ausgeführt wird (egal welches), dann soll es gestoppt werden und danach soll folgendes passieren:

-Me.Hide
-Range("A2").Select
-Selection.Copy
-Range("A3").Select
-Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
-False, Transpose:=False
-UserForm1.CommandButton2.Caption = "Weiter"
-UserForm1.CommandButton1.Visible = False
-UserForm1.CommandButton3.Visible = False
-Sheets("Telephone_Time&Motion").Select
-Load UserForm2
-UserForm2.Show

So, und wenn gerade kein Macro läuft, dann soll nur folgendes gemacht werden:
-Me.Hide
-Sheets("Telephone_Time&Motion").Select
-Load UserForm2
-UserForm2.Show

Geht das irgendwie? Vielleicht auch anders?

Hoffe es hat jemand eine Idee.

Danke

Josef





Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Macro-Überprüfung in Excel: So prüfst du, ob ein Macro läuft


Schritt-für-Schritt-Anleitung

Um zu prüfen, ob ein Macro in Excel gerade läuft, kannst du eine einfache Methode in VBA verwenden. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Öffne den VBA-Editor:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu:

    • Klicke mit der rechten Maustaste auf "VBAProject (deine Datei)" und wähle Einfügen > Modul.
  3. Füge den folgenden Code ein:

    Dim MacroRunning As Boolean
    
    Sub CheckIfMacroRunning()
       If MacroRunning Then
           MsgBox "Ein Macro läuft bereits!"
           Exit Sub
       End If
    
       MacroRunning = True
    
       ' Dein Macro-Code hier
    
       MacroRunning = False
    End Sub
  4. Verwende den Code in deinen Makros:

    • Setze MacroRunning am Anfang deiner Makros auf True und am Ende auf False, um zu kennzeichnen, ob ein Macro aktiv ist.

Häufige Fehler und Lösungen

Fehler: Macro wird nicht gestoppt

  • Lösung: Stelle sicher, dass du die Variable MacroRunning in jedem Macro entsprechend setzt. Wenn das Macro nicht gestoppt wird, könnte ein anderer Prozess den Zugriff blockieren.

Fehler: Sanduhr wird nicht angezeigt

  • Lösung: Überprüfe, ob dein Macro schnell genug ist. Wenn es zu schnell läuft, könnte die Sanduhr nicht angezeigt werden. Du könntest eine Pause mit Application.Wait einfügen, um dies zu testen.

Alternative Methoden

Eine alternative Methode, um zu überprüfen, ob ein Macro läuft, ist die Verwendung der Application.OnTime-Methode. Hier ist ein Beispiel:

Dim NextTime As Double
Dim MacroRunning As Boolean

Sub StartMacro()
    If MacroRunning Then Exit Sub
    MacroRunning = True
    NextTime = Now + TimeValue("00:00:01")
    Application.OnTime NextTime, "YourMacro"
End Sub

Sub YourMacro()
    ' Dein Macro-Code hier
    MacroRunning = False
End Sub

Diese Methode ermöglicht es dir, einen Timer zu setzen, um das Macro in regelmäßigen Abständen zu überprüfen.


Praktische Beispiele

Hier ist ein praktisches Beispiel, wie du das Macro in einer UserForm verwenden kannst:

Private Sub CommandButton1_Click()
    If MacroRunning Then
        MsgBox "Ein anderer Prozess läuft bereits."
        Exit Sub
    End If

    MacroRunning = True
    ' Weitere Aktionen hier
    MacroRunning = False
End Sub

Verwende diese Technik in deinen UserForms, um Benutzern Rückmeldungen zu geben, wenn sie versuchen, mehrere Prozesse gleichzeitig auszuführen.


Tipps für Profis

  • Verwende DoEvents: Wenn du sicherstellen möchtest, dass Excel während eines langen Prozesses weiterhin reagiert, füge DoEvents in deinem Macro ein. Dadurch kann Excel andere Aufgaben während der Ausführung deines Macros verarbeiten.

  • Error-Handling einbauen: Implementiere eine Fehlerbehandlung, um sicherzustellen, dass die Variable MacroRunning immer zurückgesetzt wird, auch wenn ein Fehler auftritt.

On Error GoTo ErrorHandler

' Dein Code hier

Exit Sub

ErrorHandler:
    MacroRunning = False
    MsgBox "Ein Fehler ist aufgetreten: " & Err.Description
End Sub

FAQ: Häufige Fragen

1. Frage: Wie kann ich ein laufendes Macro stoppen? Antwort: Du kannst ein laufendes Macro in der Regel mit der ESC-Taste stoppen. Alternativ kannst du in deinem VBA-Code Logik einbauen, die ein Macro unterbricht, wenn ein bestimmtes Ereignis eintritt.

2. Frage: Funktioniert das auch in der deutschen Version von Excel? Antwort: Ja, der VBA-Code funktioniert unabhängig von der Sprachversion. Achte jedoch darauf, dass alle Funktionen korrekt benannt sind, je nach Spracheinstellung in deinem Excel.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige