Kann ich in Excel aus einer 'Private Sub Workbook_Open()' mit 'Call Private Sub Workbook_SheetBeforeRightClick' starten?

Antwort

In Excel VBA ist es nicht möglich, ein **Worksheet-Ereignis** wie `Workbook_SheetBeforeRightClick` direkt mit `Call` aus einer anderen Prozedur (z.B. `Workbook_Open`) zu starten. Ereignisprozeduren wie `Workbook_SheetBeforeRightClick` werden **automatisch** von Excel ausgelöst, wenn das entsprechende Ereignis eintritt (hier: Rechtsklick auf ein Arbeitsblatt). Du kannst aber den Code, der in `Workbook_SheetBeforeRightClick` steht, in eine **normale, öffentliche Sub** auslagern und diese Sub dann sowohl im Ereignis als auch in `Workbook_Open` aufrufen. Beispiel: ```vba ' Im Modul "DieseArbeitsmappe" Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean) Call MeineRoutine(Sh, Target) End Sub Private Sub Workbook_Open() ' Beispiel: Aufruf für das aktive Blatt und Zelle A1 Call MeineRoutine(ActiveSheet, ActiveSheet.Range("A1")) End Sub ' In einem allgemeinen Modul (z.B. Modul1) Public Sub MeineRoutine(ByVal Sh As Object, ByVal Target As Range) ' Dein Code hier MsgBox "Routine wurde aufgerufen für " & Sh.Name & "!" & vbCrLf & "Zelle: " & Target.Address End Sub ``` **Fazit:** Du kannst das Ereignis nicht direkt mit `Call` auslösen, aber du kannst den Code in eine eigene Sub auslagern und diese dann von beiden Stellen aus aufrufen. Weitere Infos: - [Microsoft Docs: Worksheet Events](https://learn.microsoft.com/en-us/office/vba/api/excel.worksheet_events) - [Microsoft Docs: Workbook Events](https://learn.microsoft.com/en-us/office/vba/api/excel.workbook_events)

Kategorie: Excel Tags: Excel VBA Makro
KI fragen

Verwandte Fragen

Wie greift man in einem Excel-Makro auf eine Zelle mit dem Namen "neu" in einem anderen Blatt zu?

Um in einem Excel-Makro (VBA) auf eine Zelle mit dem Namen „neu“ zuzugreifen, die sich in einem anderen Blatt befindet, verwendest du den Namen direkt, da benannte Bereiche (Names) arbeits... [mehr]

Wie kann man per Makro prüfen, ob ein Zellinhalt in Excel eingerückt ist, und diesen bei Bedarf einrücken?

Um mit einem Makro in Excel zu prüfen, ob der Inhalt einer Zelle eingerückt ist, und falls nicht, diesen einzurücken, kannst du die Eigenschaft `.IndentLevel` verwenden. Diese gibt an,... [mehr]

Wie kann ich per Makro in Excel die Werte aus K2, L5 und M5 als neuen Eintrag in eine intelligente Tabelle übertragen?

Um Werte aus den Zellen K2, L5 und M5 als neuen Eintrag in eine intelligente Tabelle (auch als "Excel-Tabelle" oder "ListObject" bezeichnet) zu übertragen, kannst du folgenden... [mehr]

Wie kann der VBA-Code angepasst werden, damit in 'Personen einzelnd drucken' der Name in Spalte C9-C66 gesucht und mit dem Wert im Arbeitsplan verglichen wird?

Um die Schleife so umzubauen, dass **in "Personen einzelnd drucken"** in den Zellen **C9:C66** nach dem Namen gesucht und mit der Spalte B im "Arbeitsplan" verglichen wird, muss di... [mehr]

Wie lege ich Drucktitel in Excel VBA fest?

Um in Excel VBA Drucktitel festzulegen, kannst du den folgenden Code verwenden. Dieser Code setzt die Drucktitel für die Zeilen und Spalten, die auf jeder gedruckten Seite wiederholt werden solle... [mehr]

Excel-Blätter in einer großen Tabelle zusammenführen mit VBA

Um fünf Excel-Blätter in einer großen Tabelle zusammenzuführen, kannst du ein VBA-Makro verwenden. Hier ist ein einfaches Beispiel, wie du das machen kannst: 1. Öffne Excel... [mehr]

Excel-Blatt in VBA nach Inhalt in Zeile 4 aufteilen und alle Zeilen in neues Blatt einfügen.

Um ein Excel-Blatt in VBA nach dem Inhalt in Zeile 4 aufzuteilen und alle Zeilen in ein neues Blatt einzufügen, kannst du den folgenden VBA-Code verwenden. Dieser Code erstellt ein neues Blatt un... [mehr]

Excel-Blatt in VBA nach Inhalt in Zeile 4 aufteilen und Spalten in neues Blatt einfügen.

Um ein Excel-Blatt in VBA nach dem Inhalt in Zeile 4 aufzuteilen und alle Spalten in ein neues Blatt einzufügen, kannst du den folgenden VBA-Code verwenden. Dieser Code geht davon aus, dass die D... [mehr]

Excel VBA Code zum Kopieren von B17 bis B46 einer anderen Datei nach K19 bis BH9 der aktiven Datei.

Um die Zellen B17 bis B46 aus einer anderen Excel-Datei in die Zellen K19 bis BH9 der aktiven Excel-Datei zu kopieren, kannst du den folgenden VBA-Code verwenden: ```vba Sub CopyCells() Dim sourc... [mehr]

Wie lade ich mit VBA Informationen aus zwei Spalten in ein Listenfeld mit 'AddItem' in Excel?

Um in Excel mit VBA Informationen aus zwei Spalten in ein Listenfeld zu laden, kannst du die Methode `AddItem` verwenden. Hier ist ein einfaches Beispiel, wie du dies umsetzen kannst: 1. Öffne d... [mehr]