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

Makro ausführen beim speichern

Forumthread: Makro ausführen beim speichern

Makro ausführen beim speichern
14.10.2003 10:00:19
junny
Hallo Leute,
wwie kann ich ein MAkro starten lassen sobald die Tabelle gespeichert wird?
Jedoch müssen die Änderungen die das makro auslöst noch getätigt und mitgespeichert werden.

Danke Gruss volker
Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro ausführen beim speichern
14.10.2003 10:02:06
Andi_H
Hi Volker,

schreibe den Code in DieseArbeitsmappe im Ereignis BeforeSave


Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
'dein Code
End Sub


Gruß

ANdi
AW: Makro ausführen beim speichern
14.10.2003 10:52:58
junny
Hai ANdi,
hab die Zeile einkopiert, mein Code sieht jetzt so aus:


Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
' automatisches ausfüllen Materialcode Kantengrafik, Gesamtstückzahl
'Sub Test()
'Serie
Range("U6").Select
ActiveCell.Formula = "=IF((E6)>0,U5,"""")"
Selection.AutoFill Destination:=Range("U6:U319"), Type:=xlFillCopy
'Materialcode
Range("W5").Select
ActiveCell.Formula = "=CONCATENATE(I5,H5)"
Selection.AutoFill Destination:=Range("W5:W319"), Type:=xlFillDefault
'Kantengrafik
Range("AV5").Select
ActiveCell.Formula = "=O5"
Selection.AutoFill Destination:=Range("AV5:AV319"), Type:=xlFillDefault
Range("AW5").Select
ActiveCell.Formula = "=E5"
Selection.AutoFill Destination:=Range("AW5:AW319"), Type:=xlFillDefault
End Sub



Doch es tut sich nichts, wieso?

Gruss volker
Anzeige
AW: Makro ausführen beim speichern
14.10.2003 11:15:04
Andi_H
also bei mir funktioniert dein Code, wird ausgeführt bevor man speichert.
AW: Makro ausführen beim speichern
14.10.2003 11:53:45
junny
Hai Andi,
also so: und wenn ich dann auf das speichern Symbol (oder ähnl.) gehe sollte das makro starten, oder?
Bei mir läuft das nicht!
In dem Workbook ist noch ein auto_open sowie weitere makros die aber nur über Schaltflacje gehen.

Hä?? gruss volker


Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
'Serie
Range("U6").Select
ActiveCell.Formula = "=IF((E6)>0,U5,"""")"
Selection.AutoFill Destination:=Range("U6:U319"), Type:=xlFillCopy
'Materialcode
Range("W5").Select
ActiveCell.Formula = "=CONCATENATE(I5,H5)"
Selection.AutoFill Destination:=Range("W5:W319"), Type:=xlFillDefault
'Kantengrafik
Range("AV5").Select
ActiveCell.Formula = "=O5"
Selection.AutoFill Destination:=Range("AV5:AV319"), Type:=xlFillDefault
Range("AW5").Select
ActiveCell.Formula = "=E5"
Selection.AutoFill Destination:=Range("AW5:AW319"), Type:=xlFillDefault
End Sub

Anzeige
AW: Makro ausführen beim speichern
14.10.2003 12:17:31
junny
Hai Andi,
hab noch folgendes in einer neuen Mappe getestet,


Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
' automatisches ausfüllen Materialcode Kantengrafik, Gesamtstückzahl
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
End Sub


so sollte beim speichern ein Ausdruck rauskommen, oder?

Geht leider nicht!!
Gruss volker
Anzeige
AW: Makro ausführen beim speichern
14.10.2003 12:24:17
Andi_H
des ist ja seltsam, du hast den Code aber schon in DieseArbeitsmappe stehen.
Verstehe nicht warum dies bei dir nicht geht. Hast du schon mal einen Haltepunkt im Code gesetzt und geguckt ob er beim speichern das Makro überhaupt anspricht.
Kann mir das leider auch nicht erklären.
AW: Makro ausführen beim speichern
14.10.2003 12:34:28
junny
Andi, genau das wars!!
Ich hatte den Code als Modul unten angehängt und nicht in der Arbeitsmappe!!
(leider kapier ich das auch noch nicht wirklich worin da der Unterschied liegt)

Auf jeden Fall geht es jetzt, Danke!!
Gruss volker
Anzeige
Bitteschön
14.10.2003 12:46:05
Andi_H
Der Code muß immer da rein wo das ereignis stattfindet, speichern betrifft immer die ganze Mappe, also DieseArbeitsmappe, Ereignisse im Sheet immer in die Tabelle rein in der das Ereignis stattfindet (z.b. Zelländerung, Activieren des sheets)
Code in modulen müssen zu fast 100 % manuell gestartet werden (oder mit Call oder Run in einem Code) ( einzig mir bekannte Ausnahme: Sub Auto_open(), wird beim öffnen der Datei gestartet (wie Workbook_open), sollte aber nicht verwendet werden. Kann bei Makros älteren XLS-Versionen auftreten.)
Freut mich das es kappt!

Gruß

Andi
Anzeige
Danke, soll Dir im Kindersegen reinkommen
14.10.2003 14:31:38
junny
o.T.

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Makro beim Speichern in Excel ausführen


Schritt-für-Schritt-Anleitung

Um ein Excel-Makro beim Speichern der Datei auszuführen, musst Du den entsprechenden VBA-Code in das richtige Modul einfügen. Hier sind die Schritte:

  1. Öffne die Excel-Datei, in der Du das Makro beim Speichern ausführen möchtest.

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

  3. Finde "DieseArbeitsmappe" in der Projektansicht auf der linken Seite.

  4. Doppelklicke auf "DieseArbeitsmappe", um den Code-Editor für das Workbook zu öffnen.

  5. Füge den folgenden Code ein:

    Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
       ' Hier kommt dein Makro-Code
    End Sub
  6. Ersetze den Kommentar mit Deinem spezifischen Code, der beim Speichern ausgeführt werden soll.

  7. Schließe den VBA-Editor und speichere die Datei.

Jetzt wird das Makro ausgeführt, wenn Du die Datei speicherst.


Häufige Fehler und Lösungen

  • Fehler: Das Makro wird nicht ausgeführt

    • Lösung: Stelle sicher, dass Du den Code in das richtige Modul ("DieseArbeitsmappe") eingefügt hast und nicht in ein Standardmodul.
  • Fehler: Das Makro führt keine Änderungen durch

    • Lösung: Überprüfe den Code auf mögliche Fehler in der Logik oder Syntax. Setze Haltepunkte, um zu sehen, ob der Code ausgeführt wird.

Alternative Methoden

Wenn Du keine VBA-Makros verwenden möchtest, kannst Du auch die Funktion "Speichern unter" nutzen, um bestimmte Prozesse auszuführen. Eine weitere Möglichkeit ist die Verwendung von Excel-Add-Ins, die ähnliche Funktionen bieten, ohne dass Du den VBA-Code manuell schreiben musst.


Praktische Beispiele

Hier sind einige Beispiele für VBA-Makros, die Du beim Speichern ausführen kannst:

  1. Automatisches Ausfüllen von Zellen:

    Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
       Range("A1").Value = "Letzte Speicherung: " & Now
    End Sub
  2. Drucken des aktuellen Arbeitsblatts:

    Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
       ActiveSheet.PrintOut
    End Sub

Diese einfachen VBA-Skripte zeigen, wie Du beim Speichern einer Excel-Datei automatisch Aktionen ausführen kannst.


Tipps für Profis

  • Nutze die Workbook_AfterSave-Ereignisprozedur, um Aktionen nach dem Speichern auszuführen.
  • Halte Deinen VBA-Code modular, indem Du häufig verwendete Funktionen in separaten Modulen speicherst.
  • Verwende Fehlerbehandlungsroutinen, um unerwartete Abstürze zu vermeiden, insbesondere bei größeren Makros.

FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass mein Makro beim Speichern immer ausgeführt wird? Indem Du sicherstellst, dass der Code korrekt in "DieseArbeitsmappe" eingefügt wurde und keine Syntaxfehler aufweist.

2. Was muss ich tun, wenn ich eine Excel-Datei speichere und das Makro nicht funktioniert? Überprüfe, ob die Datei als Makro-aktivierte Datei (.xlsm) gespeichert ist und dass die Makros in den Excel-Optionen aktiviert sind.

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