Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

workbook_beforeSave - funktioniert nicht

Forumthread: workbook_beforeSave - funktioniert nicht

workbook_beforeSave - funktioniert nicht
11.03.2009 15:41:10
Snoopyine
hallo zusammen,
habe winzig kleines Makro, aber es funktioniert nicht.
Ich will das in einem Dokument in einer bestimmten Zelle steht "Stand: 11.03.2009" und zwar dann, wenn ich die Datei neu abspeichere.
Wenn ich das makro ausführe ohne workbook_beforesave funktioniert es, wenn ich aber speichere passiert nichts !
Kann mir jemand weiterhelfen?
hier mein Code:

Private Sub Workbook_BeforeSave(ByVal SaveAsui As Boolean, Cancel As Boolean)
ThisWorkbook.Worksheets(1).Activate
Cells(6, 1) = "Stand: " & Date
End Sub


Vielen Dank für eure Hilfe

Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: workbook_beforeSave - funktioniert nicht
11.03.2009 15:50:46
Renee
Hi Snoopyine,
Das Makro müsste in DieserArbeitsmappe stehen, woanders wird es nicht aktiviert!
Und es würde genügen:

Private Sub Workbook_BeforeSave(ByVal SaveAsui As Boolean, Cancel As Boolean)
ThisWorkbook.Worksheets(1).Cells(6, 1) = "Stand: " & Date
End Sub


Zudem darf nirgends Code stehen, der die Ereignissteuerung ausschaltet (Application.EnableEvents = False) und vergisst wieder einzuschalten!
GreetZ Renée
Anzeige
AW: workbook_beforeSave - funktioniert nicht
12.03.2009 14:21:46
Snoopyine
Hallo Renee,
ich habe nirgends Application.EnableEvents = False gesetzt.
ich habe das Mini-Makro auch in einer anderen Datei getestet, die genau nur diesen 3Zeiler einthält,
habe auch alles unter Thisworkbook eingegeben.
Aber es funktioniert nicht :-(
AW: workbook_beforeSave - funktioniert nicht
12.03.2009 14:27:30
Renee
Hi Snoopyine,
Mit einer Message "Aber es funktioniert nicht :-(" kann ich leider nichts anfangen.
Kommt eine Fehlermeldung?
Hast du mal einen Breakpoint auf die Zeile ThisWorkbook.Worksheets(1)...gesetzt?
Wird der Code überhaupt aktiviert, bzw. stoppt der Debugger beim Breakpoint?
Lade deine Beispielmappe in der nur diese Codezeilen liegen hoch.
GreetZ Renée
Anzeige
AW: workbook_beforeSave - funktioniert nicht
12.03.2009 16:13:47
Snoopyine
Hallo Renee,
nein eine Fehler Meldung kommt keine.
Ich habe den BreakPoint gesetzt, ja er hält dort an und wenn ich dann mit F8 weitergehe , dann aktualisiert er auch das Datum in der Zelle, aber leider nur dann.
Kann dir leider keine bessere Fehlerbeschreibung geben.
Gruß
AW: workbook_beforeSave - funktioniert nicht
12.03.2009 16:28:30
Renee
Hi Snoopyine,
Jetzt versteh ich die Welt nicht mehr. Also es funktioniert!
Wenn du anschliessend die Datei sicherst, steht doch das in der Zelle was du wolltest?
...oder was soll Zitat : "..., aber leider nur dann. denn heissen?
GreetZ Renée
Anzeige
AW: workbook_beforeSave - funktioniert nicht
13.03.2009 10:19:11
snoopyine
Moin,
wenn ich die Arbeitsmappe speichere wird das Datum nicht geändert. Setze ich aber einen Haltepunkt und setze das makro üner F8 fort, dann wird das Datum geändert.
Gruß
AW: workbook_beforeSave - funktioniert nicht
11.03.2009 15:52:36
selli
hallo Snoopyine,
hast du vielleicht irgendwo in einem anderen code die ereignisse deaktiviert?
gruß selli
Anzeige
AW: workbook_beforeSave - funktioniert nicht
12.03.2009 14:22:36
Snoopyine
Hallo selli,
erst mal Danke.
ich habe nirgends Application.EnableEvents = False gesetzt.
Aber es funktioniert nicht :-(
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

workbook_beforeSave richtig nutzen in Excel


Schritt-für-Schritt-Anleitung

Um das Workbook_BeforeSave-Ereignis richtig zu nutzen, folge diesen Schritten:

  1. Öffne die Excel-Datei, in der Du das Makro implementieren möchtest.

  2. Drücke Alt + F11, um den VBA-Editor zu öffnen.

  3. Suche im Projekt-Explorer nach DieserArbeitsmappe.

  4. Füge den folgenden Code in das Modul von DieserArbeitsmappe ein:

    Private Sub Workbook_BeforeSave(ByVal SaveAsui As Boolean, Cancel As Boolean)
        ThisWorkbook.Worksheets(1).Cells(6, 1) = "Stand: " & Date
    End Sub
  5. Schließe den VBA-Editor und speichere die Arbeitsmappe.

  6. Teste das Makro, indem Du die Arbeitsmappe speicherst. Das Datum in der Zelle A6 sollte nun aktualisiert werden.


Häufige Fehler und Lösungen

Hier sind einige häufige Probleme, die auftreten können, und deren Lösungen:

  • Makro funktioniert nicht: Stelle sicher, dass der Code im Modul DieserArbeitsmappe steht. Wenn der Code in einem anderen Modul ist, wird das Ereignis nicht ausgelöst.

  • Keine Aktualisierung beim Speichern: Überprüfe, ob irgendwo im Code Application.EnableEvents = False gesetzt ist. Dies kann verhindern, dass Ereignisse wie Workbook_BeforeSave ausgelöst werden.

  • Debugger stoppt nicht: Wenn Du einen Breakpoint gesetzt hast, aber der Code nicht ausgelöst wird, könnte es daran liegen, dass das Ereignis nicht aktiviert ist oder die Datei nicht im richtigen Modus gespeichert wird.


Alternative Methoden

Falls Du mit dem Workbook_BeforeSave-Ereignis nicht zufrieden bist, kannst Du auch andere Methoden in Betracht ziehen:

  • Manuelles Update: Aktualisiere das Datum manuell in der gewünschten Zelle, bevor Du die Datei speicherst.

  • Andere Ereignisse nutzen: Du könntest auch das Workbook_Open-Ereignis nutzen, um beim Öffnen der Datei das Datum zu aktualisieren:

    Private Sub Workbook_Open()
        ThisWorkbook.Worksheets(1).Cells(6, 1) = "Stand: " & Date
    End Sub

Praktische Beispiele

Hier sind einige praktische Beispiele, wie Du das Workbook_BeforeSave-Ereignis effektiv nutzen kannst:

  1. Automatische Datumsaktualisierung: Verwende die obigen Codeschnipsel, um das Datum in einer bestimmten Zelle bei jedem Speichern zu aktualisieren.

  2. Benachrichtigung bei Änderungen: Erweitere den Code, um eine Benachrichtigung anzuzeigen, wenn das Datum aktualisiert wird:

    Private Sub Workbook_BeforeSave(ByVal SaveAsui As Boolean, Cancel As Boolean)
        ThisWorkbook.Worksheets(1).Cells(6, 1) = "Stand: " & Date
        MsgBox "Das Datum wurde aktualisiert!", vbInformation
    End Sub

Tipps für Profis

  • Verwende Kommentare: Kommentiere Deinen Code, um ihn für Dich und andere leichter verständlich zu machen.

  • Debugging: Nutze die Debugging-Tools im VBA-Editor, um schnell Fehler zu finden. Setze Breakpoints, um den Fluss des Codes zu überprüfen.

  • Ereignissteuerung: Achte darauf, dass Du Application.EnableEvents nur dann deaktivierst, wenn es unbedingt notwendig ist, und schalte es danach wieder ein.


FAQ: Häufige Fragen

1. Warum funktioniert mein Makro nicht?
Das Makro muss im Modul DieserArbeitsmappe stehen. Überprüfe auch, ob die Ereignisse aktiviert sind.

2. Kann ich das Datum in einer anderen Zelle aktualisieren?
Ja, ändere einfach die Zeilen Cells(6, 1) auf die gewünschte Zelle, z.B. Cells(5, 2) für Zelle B5.

3. Was sind die Vorteile von Workbook_BeforeSave?
Es ermöglicht Dir, Aktionen automatisch auszuführen, bevor die Arbeitsmappe gespeichert wird, was Zeit sparen und Fehler vermeiden kann.

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