Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1496to1500
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Speicherbutton umleiten

Speicherbutton umleiten
09.06.2016 14:05:25
Rookie
Hallo zusammen,
und wiedermal brauche ich eure Hilfe! Ich möchte gerne den Speicherbutton (Diskettensymbol) umprogrammieren. Beim speichern soll ein Makro aufgerufen werden.
Ich hab mal was versucht, aber es funktioniert leider nicht so richtig. Vielleicht könnt ihr mir dabei helfen:
Unter "Diese Arbeitsmappe":

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Call Zwischenspeichern
Cancel = True
End Sub

Unter "Modul1":
Sub Zwischenspeichern()
Dim User As Object
Dim KSt As String
Set User = CreateObject("wscript.network")
KSt = ThisWorkbook.Worksheets("Maßnahmenplan").Cells(8, 22).Value & "_" & Format(Range("H5"), "000000")
ChDir "C:\Users\" & User.UserName & "\Desktop"
ActiveWorkbook.SaveAs Filename:= _
"C:\Users\" & User.UserName & "\Desktop\Audit" & " " & KSt & " " & "in Arbeit.xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
End Sub

Ich bin dankbar für jede Hilfe!
Mit besten Grüßen
Stefan

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Speicherbutton umleiten
09.06.2016 14:13:12
Daniel
Hi
"funktioniert nicht richtig" ist natürlich eine etwas doch sehr vage Beschreibung, quasi vergleichbar mit der Antwort: "wenns nicht funktioniert, dann mach was anderes".
ich vermute mal, dass ein Problem der automatische Aufruf des BeforeSave-makros.
wenn das Makro die Datei speichern will, darf natürlich das BeforeSave-Makro nicht nochmal gestartet werden, sonst verfängst du dich in einer Endlosschleife.
daher:
Application.EnabelEvents = False
ActiveWorkbook.SaveAs FileName:=....
Application.EnableEvents = True
das Application.EnabelEvents = False verhindert, dass die Eventmakros starten.
Diese Einstellung muss vor Makroende zurückgenommen werden, denn die letzte Einstellung bleibt nach Makroende erhalten.
Gruß Daniel

Anzeige
AW: Speicherbutton umleiten
09.06.2016 14:20:46
UweD
Hallo
der Teil im Modul scheint ok zu sein.
in DieseArbeitsmappe

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
On Error GoTo Fehler
Cancel = True
Application.EnableEvents = False
Call Zwischenspeichern
Fehler:
If Err.Number  0 Then MsgBox "Fehler: " & _
Err.Number & vbLf & Err.Description: Err.Clear
Application.EnableEvents = False
End Sub

durch Application.EnableEvents = False wird verhindert, dass du immer wieder in eine Speichern-Schleife kommst.
Die Fehlerbehandlung ist wichtig, dass das Event wieder eingeschaltet wird, auch wenn mal ein Fehler auftritt.
Gruß UweD

Anzeige
AW: Speicherbutton umleiten
10.06.2016 08:03:19
Rookie
Hallo ihr beiden,
vielen Dank für eure Unterstützung! Ich habe es jetzt folgendermaßen gelöst:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Application.EnableEvents = False
Cancel = True
Dim User As Object
Dim KSt As String
Set User = CreateObject("wscript.network")
KSt = ThisWorkbook.Worksheets("Maßnahmenplan").Cells(8, 22).Value & "_" & ThisWorkbook. _
Worksheets("Maßnahmenplan").Cells(5, 8).Value
ChDir "C:\Users\" & User.UserName & "\Desktop"
ActiveWorkbook.SaveAs Filename:= _
"C:\Users\" & User.UserName & "\Desktop\Audit" & " " & KSt & " " & "in Arbeit.xlsm",  _
FileFormat:= _
xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
Application.EnableEvents = True
MsgBox "Bericht wurde auf dem Desktop gespeichert!"
End Sub
Eine Frage hätte ich aber nocht: Wenn ich mein Makro über Call aufrufen möchte, erscheint die Fehlermeldung "Fehler beim Kompilieren: Variable oder Prozedur anstelle eines Moduls erwartet".
Darf der Code nicht in einem Modul stehen?
Vielen Dank nochmal
Mit besten Grüßen
Stefan

Anzeige
AW: Speicherbutton umleiten
10.06.2016 08:20:42
UweD
Hallo
&GT&GT Darf der Code nicht in einem Modul stehen?
Doch, versuch mal ohne Call, einfach nur Zwischenspeichern.
Gruß UweD

AW: Speicherbutton umleiten
10.06.2016 08:39:21
Rookie
Hallo Uwe,
nö - funktioniert leider auch nicht.
Gruß
Stefan

AW: Speicherbutton umleiten
10.06.2016 09:30:43
UweD
Hallo nochmal
kommt der Fehler denn auch, wenn du direkt das Makro im Modul ausführst.
Mach mal Einzelschritt. Welche Zeile ist angemeckert

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige