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

Forumthread: Tabelle bearbeiten während Makro läuft

Tabelle bearbeiten während Makro läuft
22.06.2004 12:38:59
Marcl
Hallo Excelperten,
ich habe ein Makro mit Schleife gebastelt.
...
If .... GoTo next
...
next:
Call Makroname
...
Jetzt läuft mein Makro bis zu einem bestimmten Ereigniss immer von vorne.
Kann man während das Makro im Hintergrund läuft, irgendwie in der Tabelle weiter arbeiten oder ist das generell nicht möglich?
Gruß
Marcel
Anzeige
AW: Tabelle bearbeiten während Makro läuft
Ulf
Mal stark vereinfacht gesagt, solange ein Makro läuft, kann in Excel nicht
weitergearbeitet werden.
Ulf
AW: Tabelle bearbeiten während Makro läuft
Andreas
Nein. Es ist nicht möglich, währenddessen dass ein Makro läuft, das man weiter arbeiten kann. Es ist möglich, glaube ich, dass ein Makro regelmäßig läuft. Beschreib bitte was Du genau veruchste zu machen.
ABER. Das was du schon gemacht hast... Tja...
Ist es Dir klar, dass Dein Makro sich selbst aufruft.
Du wirst mehr und mehr und mehr Speicher brauchen und
Du musst genauso oft aus der Subroutine rausgehen müssen, wie Du reingegangen bist, um je zu ein Ende zu kommen.
Wenn schon, dann
sub Makroname()
...
start:
...
If .... GoTo start
...
...
Aber ob das gut ist...?
Anzeige
AW: Tabelle bearbeiten während Makro läuft
Marcel
Also in dem Makro befindet sich ein Zeitvergleich
Zelle A1 Datum, Zelle A2 Uhrzeit
dat = A1, tim = A2

Sub zeit()
If Now < Dat & time then Goto Next
Application Quit
Exit Sub
next:
Call Makroname
End Sub

Das Makro ruft sich selbst so lange auf, wie die aktuelle Rechnerzeit kleiner ist, als die von mir angegebene.
Sonst schließt Excel sich.
Anzeige
AW: Tabelle bearbeiten während Makro läuft
Andreas
Anders ausgedruckt:
Du willst ein "Feierabend" Makro
So bald eine bestimmte Uhrzeit erreicht wurde, sollte Excel schliessen?
Bist Du ein Beamte? (Spass muss sein)
Weiss ich nicht, aber versuch bei Google folgende Suchbegriffe
site:www.herber.de makro automatisch uhrzeit start
Habe, glaube ich, ähnliche Fragen schon gelesen.
Anzeige
AW: Tabelle bearbeiten während Makro läuft
Marcel
Danke,
Beamter bin ich leider nicht. Arbeite im Statistikbereich. Benötige Tabelle, die nur bis zu einem bestimmten Tag verändert werden dürfen. Danach wird ausgewertet.
Deshalb muss auch das Makro immer laufen. Denn wenn Eingabefrist abgelaufen ist um 12.00 Uhr, dann ist Ende mit Eingaben.
So hatte ich das gedacht.
Gruß
Marcel
Anzeige
AW: Tabelle bearbeiten während Makro läuft
Andreas
SO kuck mal in Google, wie vorhin beschrieben.
Aber anderer Ansatz
Es gibt die Möglichkeit irgendwie mit Worksheet_Change (oder sowas - kenn ich mich nicht aus)das Ereignis abzufangen, wenn der Anwender etwas in einer Zelle ändern möchte. Da könntest Du auch eine Überprüfung der Zhrzeit reinbringen und ab 12:00 jegliche Änderung mit einer Meldung ignorieren
Anzeige
Danke o.T.
Marcel
;
Anzeige
Anzeige

Infobox / Tutorial

Tabelle bearbeiten während Makro läuft


Schritt-für-Schritt-Anleitung

  1. Makro erstellen: Öffne Excel und erstelle ein neues Makro, das eine bestimmte Aufgabe erfüllt. Stelle sicher, dass es eine Schleife enthält.

    Sub Makroname()
       ' Deine Code-Logik hier
    End Sub
  2. Ereignis abfangen: Um Änderungen an der Tabelle zu überwachen, kannst du das Worksheet_Change-Ereignis verwenden. Füge den folgenden Code in das entsprechende Arbeitsblattmodul ein:

    Private Sub Worksheet_Change(ByVal Target As Range)
       If Now >= #12:00:00 PM# Then
           Application.EnableEvents = False
           MsgBox "Eingaben sind nach 12:00 Uhr nicht mehr möglich!"
           Application.Undo
           Application.EnableEvents = True
       End If
    End Sub
  3. Makro ausführen: Starte das Makro. Während es läuft, kannst du in der Excel-Tabelle weiterhin arbeiten, jedoch werden nach 12:00 Uhr keine Eingaben mehr akzeptiert.


Häufige Fehler und Lösungen

  • Makro läuft nicht: Überprüfe, ob das Makro in der richtigen Arbeitsmappe ausgeführt wird. Achte darauf, dass die Makros aktiviert sind.

  • Eingaben werden nicht blockiert: Stelle sicher, dass das Worksheet_Change-Ereignis korrekt implementiert ist. Es muss im richtigen Arbeitsblattmodul stehen.

  • Excel schließt sich unerwartet: Achte darauf, dass dein Makro nicht in eine Endlosschleife gerät. Verwende Exit Sub an geeigneten Stellen.


Alternative Methoden

  • Timer verwenden: Anstelle eines ständig laufenden Makros kannst du einen Timer in VBA verwenden, der regelmäßig überprüft, ob die Eingabefrist abgelaufen ist.

    Sub StartTimer()
       Application.OnTime Now + TimeValue("00:01:00"), "CheckTime"
    End Sub
    
    Sub CheckTime()
       If Now >= #12:00:00 PM# Then
           MsgBox "Eingaben sind nicht mehr möglich!"
       Else
           StartTimer
       End If
    End Sub
  • Nutzerformular: Erstelle ein Formular, das es dem Nutzer ermöglicht, Eingaben zu tätigen, und überprüfe die Uhrzeit vor der Verarbeitung.


Praktische Beispiele

  • Beispiel für eine Eingabeüberprüfung: Wenn ein Nutzer versucht, eine Zelle nach 12:00 Uhr zu ändern, wird eine Meldung angezeigt und die Änderung rückgängig gemacht.

  • Automatisierung des Schließens von Excel:

    Sub zeit()
       If Now < Range("A1").Value + Range("A2").Value Then
           Call Makroname
       Else
           Application.Quit
       End If
    End Sub

Tipps für Profis

  • Fehlerbehandlung: Implementiere eine Fehlerbehandlung in deinem Makro, um unerwartete Probleme zu vermeiden. Verwende On Error Resume Next und On Error GoTo 0 zur Fehlerkontrolle.

  • Leistungsoptimierung: Verwende Application.ScreenUpdating = False am Anfang deines Makros und setze es am Ende wieder auf True, um die Leistung zu verbessern.

  • Dokumentation: Kommentiere deinen Code gut, damit andere (oder du selbst) ihn später besser verstehen können.


FAQ: Häufige Fragen

1. Kann ich während eines Makros in Excel arbeiten? Nein, während ein Makro läuft, kannst du in der Regel nicht in Excel arbeiten. Du kannst jedoch das Worksheet_Change-Ereignis nutzen, um Änderungen zu überwachen.

2. Was passiert, wenn mein Makro eine Endlosschleife verursacht? Excel könnte sich aufhängen oder unerwartet schließen. Achte darauf, Bedingungen einzubauen, die das Makro ordnungsgemäß beenden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige