Muss ich bei Sub workbook_BeforeSave() noch was in die
Klammern oder so rein setzen?
Hallo W3lcome,
das schreibe ich nie hin. Glaub andere auch nie.
Das gilt jetzt für Module DieseArbeitsmappe und Tabelle1 usw. gleichermaßen.
Gehe mit Alt+F11 in den Editor, doppelklicke auf das Modul wohin du willst.
Dort hast du oben in der Mitte eine Auswahl (Pfeil daneben)
Klicke darauf dann wählst du je nachdem wo du grad bist Workbook oder Worksheet.
Daraufhin bringt dir der Editor gleich eine der möglichen Ereigniscode-Rümpfe.
Rechtsoben ist auch so ein Feld, klicke darauf, dann siehst du alle anderen Ereignisse, da wählst du BeforeSave aus, das war’s.
Der Prozedur-Rumpf sieht folgendermaßen aus (Vorgabe in Excel-VBA):
Private Sub Workbook\_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
End Sub
Wofür SaveAsUI ist, kann ich nicht genau sagen; das hab’ ich noch nie benutzt, aber wahrscheinlich wird der Dialog „Speichern unter“ angezeigt, wenn man den Wert auf True setzt.
Wenn Du Cancel auf True setzt, dann wird das Speichern abgebrochen.
Der Prozedur-Rumpf sieht folgendermaßen aus (Vorgabe in
Excel-VBA):
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean,
Cancel As Boolean)
End Sub
Ahh, ich dachte, das im UP wäre aus Excel kopiert …
Danke!
Wofür SaveAsUI ist, kann ich nicht genau sagen; das hab’ ich
noch nie benutzt, aber wahrscheinlich wird der Dialog
„Speichern unter“ angezeigt, wenn man den Wert auf True setzt.
Sieht so aus.
Wenn Du Cancel auf True setzt, dann wird das Speichern
abgebrochen.
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean,
Cancel As Boolean)
Ahh, ich dachte, das im UP wäre aus Excel kopiert …
Hallo Rainer, Carsten,
ohne Manipulation sehen alle Ereignisprozeduren in Excel so aus wie oben. Die allermeisten haben parameter/argumente einige wenige halt auch nicht.
Das SaveASUI ist nur True/False, das abhängig davon ob man in Excel ausgewählt hat "Speichern " oder „Speichern als…“.
Und da die Module DieseArbeitsmappe und alle Module Tabelle1 usw. schlichtweg nur Klassenmodule sind, also ich könnte das nur durch Tests rausfinden, kann jeder Klassenmodulauskenner sicher sagen inwieweit man den Ereigniscodeaufruf
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean,Cancel As Boolean)
„verstümmeln“ also Private weglassen, eher harmlos, parameter umbenennen usw. und sie trotzdem noch auf Ereignisse reagieren.
Was m.E. eisern fest ist ist „Workbook_BeforeSave“, Sub ist notwendig, Private unwichtig, die parameteranzahl auch, deren namen nicht *denk*
Wenn es dann noch klappt, den datentyp Boolean umzutaufen und man alles macht wirds verdammt schwierig noch zu erkennen daß dies mal
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean,Cancel As Boolean)
war