1.3k Aufrufe
in Tabellenkalkulation von Mitglied (926 Punkte)
Guten Abend,
ein Makro, das in der Personal.xls in DieseArbeitsmappe steht, soll automatisch ausgeführen werden, wenn "Speichern unter.. " angeklickt wird.
Ich dachte der Makroname "Sub Workbook_SaveAs()" ?? würde das bewirken. Wie muss das richtig heissen?
mfg
Wolfgang

3 Antworten

0 Punkte
von hajo_zi Experte (9.1k Punkte)
Hallo Wolfgang,

das ist aufwendiger. Das geht nur über Klassen. Mein Archiv schreibt dazu.
Aktion auslagern z.B. Open
du solltest versuchen alle Routinen in dein Addin auszulagern. Für Workbook- oder Worksheet-Ereignisroutinen müsste da allerdings was über Klassenmodule gelöst werden.
' ***Klassenmodul Klasse1***
Option Explicit

Public WithEvents xlApp As Excel.Application

Private Sub xlApp_WorkbookOpen(ByVal Wb As Workbook)
MsgBox prompt:="Es wurde eine Arbeitsmappe geöffnet!" 'Code wird ausgeführt, wenn eine Mappe geöffnet wird
End Sub

' ***allg. Modul Modul1***

Option Explicit

Public ExcelNeu As New Klasse1

' ***Objektmodul DieseArbeitsmappe***

Option Explicit

Private Sub Workbook_Open()
Set ExcelNeu.xlApp = Application
End Sub
Von xr8k2


Gruß Hajo
0 Punkte
von Mitglied (926 Punkte)
Hallo Hajo,
ich hatte schon selbst herausgefunden, das es in Excel ein SaveAs-Ereignis (wie in meinem allerersten Word-Makro) nicht gibt. Und wenn du schon sagst:
das ist aufwendiger
dann wähle ich einen anderen Weg.
Ich suche gleich mal wo ich eine Anleitung finde wie ich das Menue-"Datei" ergänze.
mfg
Wolfgang
0 Punkte
von hajo_zi Experte (9.1k Punkte)
Hallo Wolfgang,

das Ereignis gibt es
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
und soweit mir bekannt ist SaveAsUI True bei speichern unter.

Gruß Hajo

Deine Antwort

Dein angezeigter Name (optional):
Datenschutz: Deine Email-Adresse benutzen wir ausschließlich, um dir Benachrichtigungen zu schicken. Es gilt unsere Datenschutzerklärung.
Anti-Spam-Captcha:
Bitte logge dich ein oder melde dich neu an, um das Anti-Spam-Captcha zu vermeiden.
...