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

worksheet calculate funktioniert nicht

Forumthread: worksheet calculate funktioniert nicht

worksheet calculate funktioniert nicht
03.03.2009 17:17:39
Stefan
Hallo Excel-Profis,
ich habe folgendes Problem: Ich möchte beim Setzen eines Autofilters ein Makro auslösen. Dafür hab ich mein Programm unter Private Sub Worksheet_Calculate() geschrieben und in mein Tabellenblatt in einer beliebigen Zelle =jetzt() eingetragen, um das Ereignis auszulösen.
Nun ist es kurioserweise so, dass diese Datei einige Stunden lang problemlos funktioniert hat und jetzt plötzlich nicht mehr. Die Uhrzeit in dem jetzt-Feld wird beim klicken auf den Autofilter aktualisiert, das Makro aber nicht ausgeführt.
Hat jemand Erfahrung mit diesem Phänomen?
Gruß Stefan
Anzeige

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

Betreff
Datum
Anwender
Anzeige
ist EnableEvents True ?
03.03.2009 17:28:19
Matthias
Hallo
was gibt denn:
Msgbox Application.EnableEvents
zurück.
Wenn Falsch schalt es wieder ein.
Gruß Matthias
AW: ist EnableEvents True ?
03.03.2009 17:35:17
Stefan
Hallo Matthias,
das scheint tatsächlich die Lösung zu sein. Ich habe am Anfang meines Programms
Application.EnableEvents = False
und am Ende
Application.EnableEvents = True
stehen.
Der Knackpunkt war dann wohl der, dass das Programm in der Mitte mal hängengeblieben ist. Das kommt davon, wenn man zu lange am PC hängt. Irgendwann wird man betriebsblind...
Vielen Dank für die Hilfe!
Gruß Stefan
Anzeige
AW: ist EnableEvents True ?
03.03.2009 17:44:06
UweD
Hallo
genau deshalb bau ich meine Makros in ein solches Grundgerüst ein.
Im Falle eins Fehlers wird wenigstens alles wieder eingeschaltet.


Sub AA()
    On Error GoTo Fehler
    'dein Code
    '
    '
    '
    'Ende dein Code
    Err.Clear
Fehler:
    If Err.Number <> 0 Then MsgBox "Fehler: " & Err.Number & vbLf & Err.Description: Err.Clear
    Application.EnableEvents = True
    Application.DisplayAlerts = True
End Sub


Gruß UweD
Anzeige
;
Anzeige

Infobox / Tutorial

Worksheet Calculate: Probleme und Lösungen in Excel


Schritt-für-Schritt-Anleitung

  1. Öffne dein Excel-Dokument und gehe zu dem Arbeitsblatt, in dem du die Berechnung automatisieren möchtest.

  2. Öffne den VBA-Editor: Drücke ALT + F11, um den Editor zu öffnen.

  3. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf "VBAProject (deinDateiname)" > Einfügen > Modul.

  4. Schreibe deinen Code für das Worksheet_Calculate Event:

    Private Sub Worksheet_Calculate()
       ' Dein Code hier
       MsgBox "Das Arbeitsblatt wurde neu berechnet."
    End Sub
  5. Verwende die Funktion =JETZT() in einer Zelle, um die Berechnung auszulösen. Diese Zelle sollte im selben Arbeitsblatt sein.

  6. Teste die Funktion: Ändere einen Filter oder eine Zelle, die die Berechnung auslöst, um zu sehen, ob das Makro funktioniert.


Häufige Fehler und Lösungen

  • EnableEvents ist deaktiviert: Überprüfe den Status von Application.EnableEvents. Wenn es auf False gesetzt ist, wird das Worksheet_Calculate Event nicht ausgelöst. Setze es am Anfang deines Codes wie folgt:

    Application.EnableEvents = True
  • Code wird nicht ausgeführt: Achte darauf, dass dein Code im Private Sub Worksheet_Calculate() korrekt eingegeben ist. Ein typischer Fehler ist, dass der Code nicht im richtigen Modul steht.

  • Makro führt nicht aus: Stelle sicher, dass keine anderen Makros oder Funktionen das Event stören. Teste dein Makro in einer neuen Datei, um Konflikte auszuschließen.


Alternative Methoden

Falls das Worksheet_Calculate Event nicht funktioniert, kannst du alternative Ansätze ausprobieren:

  • Verwendung von Excel VBA Target.Calculate: Statt das gesamte Arbeitsblatt zu berechnen, kannst du gezielt Zellen oder Bereiche berechnen. Beispiel:

    Target.Calculate
  • Ereignisbindung: Nutze das Worksheet_Change Event, um auf Änderungen in Zellen zu reagieren, anstatt auf die gesamte Berechnung.


Praktische Beispiele

Hier sind einige praktische Beispiele, wie du das Worksheet_Calculate Event nutzen kannst:

  1. Daten aktualisieren: Wenn eine Zelle mit einer Berechnung aktualisiert wird, könntest du automatisch andere Zellen neu berechnen oder aktualisieren:

    Private Sub Worksheet_Calculate()
       Range("B1").Value = Range("A1").Value * 2
    End Sub
  2. Benachrichtigung bei Änderungen: Informiere den Benutzer, wenn das Arbeitsblatt neu berechnet wurde:

    Private Sub Worksheet_Calculate()
       MsgBox "Das Arbeitsblatt wurde aktualisiert."
    End Sub

Tipps für Profis

  • Fehlerbehandlung einbauen: Verwende On Error GoTo in deinem VBA-Code, um sicherzustellen, dass dein Makro auch bei Fehlern weiterläuft und Application.EnableEvents wieder aktiviert wird.

    On Error GoTo Fehler
    ' Dein Code
    Exit Sub
    Fehler:
      Application.EnableEvents = True
  • Debugging: Nutze Debug.Print, um Informationen in das Direktfenster auszugeben und den Ablauf deines Codes zu verfolgen.


FAQ: Häufige Fragen

1. Warum wird mein Worksheet_Calculate Event nicht ausgelöst?
Das kann daran liegen, dass Application.EnableEvents auf False gesetzt ist. Stelle sicher, dass es auf True gesetzt ist, bevor das Event ausgeführt wird.

2. Wie kann ich sicherstellen, dass mein Makro auch nach einem Fehler ausgeführt wird?
Baue eine Fehlerbehandlung in deinen Code ein, um sicherzustellen, dass alle notwendigen Einstellungen wie EnableEvents und DisplayAlerts zurückgesetzt werden, selbst wenn ein Fehler auftritt.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige