VBA – Workbook_Open (ein Makro beim Starten von Excel ausführen)
In this Article
Müssen Sie beim Start von Excel ein Makro ausführen? Sie haben dazu zwei Möglichkeiten:
1. Eine Sub namens Workbook_Open() innerhalb von „ThisWorkbook“ erstellen.
2. Eine Sub namens Auto_Open() in einem beliebigen Modul platzieren.
Das Ereignis Workbook_Open
Eine Sub mit dem Titel „Workbook_Open“ innerhalb von ‚ThisWorkbook‘ erstellen
Workbook_Open()
MsgBox "Dieser Code wurde beim Start von Excel ausgeführt!"
End Sub
Auto_Open
Die zweite Methode verwenden: Einfach eine Sub mit dem Namen Auto_Open erstellen und den Code darin platzieren, oder von dort aus eine andere Sub aufrufen. Ihr Code wird automatisch ausgeführt, wenn Excel startet.
Private Sub Auto_Open()
MsgBox "Dieser Code wurde beim Start von Excel ausgeführt!"
End Sub
Jedes Mal, wenn Excel geöffnet wird, ein neues Arbeitsblatt erstellen und benennen
Der folgende Code funktioniert beim Öffnen einer Arbeitsmappe. Er fügt ein neues Blatt automatisch hinzu und benennt es mit dem Datum. Er prüft auch, ob das Blatt nicht bereits existiert, um die Möglichkeit zu berücksichtigen, dass es mehr als einmal am Tag geöffnet wird.
Dieser Code nutzt das Ereignis „Workbook_Open“ und muss im Arbeitsmappenmodul unter „Workbook_Open“ platziert werden. Die Funktion Blatt_Existiert muss in einem Modul platziert werden und prüft, ob das Blatt existiert oder nicht:
Private Sub Workbook_Open()
Dim Neuer_BlattName As String
Neuer_BlattName = Format(Now(), "dd-mm-yy")
If Blatt_Existiert(Neuer_BlattName) = False Then
With Workbook
Worksheets.Add().Name = Neuer_BlattName
End With
End If
Save
End Sub
Function Blatt_Existiert(BlattName As String) As Boolean
Dim ArbeitsBlatt As Worksheet
Blatt_Existiert = False
For Each ArbeitsBlatt In ThisWorkbook.Worksheets
If ArbeitsBlatt.Name = BlattName Then
Blatt_Existiert = True
End If
Next
End Function
Um die .XLSM-Datei für dieses Tutorial herunterzuladen, klicken Sie hier
Festlegen des Standardblatts beim Öffnen der Arbeitsmappe
Möchten Sie sicherstellen, dass ein Blatt immer zuerst angezeigt wird, wenn eine Arbeitsmappe geöffnet wird? Wenn Sie zum Beispiel eine Arbeitsmappe öffnen, ist Blatt3 immer das aktive Blatt. So geht’s.
Sie können ein Blatt in VBA über den Programmnamen (z. B. Blatt3) oder über den Namen der Registerkarte (z. B. JanData) ansprechen. Es ist am besten, den Programmnamen zu verwenden, denn Ihr VBA-Code, der sich auf einen Registerkartennamen bezieht, funktioniert nicht mehr, wenn sich der Name der Registerkarte ändert. Wenn Sie jedoch den Programmnamen verwenden, kann ein Benutzer den Registerkartennamen mehrmals ändern und Ihr Makro funktioniert trotzdem.
Um sicherzustellen, dass ein bestimmtes Blatt immer aktiviert wird, wenn eine Arbeitsmappe geöffnet wird, fügen Sie einfach den Code sheet.activate in die Sub Workbook_Open ein. In diesem Beispiel wird Blatt3 durch Verwendung des Programmnamens jedes Mal aktiviert, wenn eine Arbeitsmappe geöffnet wird.
Private Sub Workbook_Open()
Blatt3.Activate
End Sub
Und hier wird der Name der Registerkarte verwendet:
Private Sub Workbook_Open()
Sheets("meinRegisterkartenName").Activate
End Sub
Nebenbemerkung: Sie müssen Excel speichern und neu starten, damit dies funktioniert.
Nebenbemerkung: Dies funktioniert nur, wenn Makros aktiviert sind.
Nebenbemerkung: Fügen Sie diesen Code in das Codefenster für das ThisWorkbook-Objekt im VBE ein.
Formular bei jedem Öffnen der Arbeitsmappe laden
Wenn Sie ein Formular laden oder einen VBA-Code ausführen möchten, wenn Sie eine Excel-Arbeitsmappe öffnen, platzieren Sie Ihren Code im Codefenster ThisWorkbook und in der Sub Workbook_Open.
Von Ihrer Tabellenkalkulation aus:
1. Drücken Sie ALT und F11, um den VB-Editor zu öffnen
2. Doppelklicken Sie auf das Wort ThisWorkbook, um das Codefenster zu öffnen
3. Geben Sie den folgenden Code in das ThisWorkbook-Codefenster ein
Private Sub Workbook_Open()
UserForm1.Show
End Sub
Nebenbemerkung: Ersetzen Sie Benutzerformular1 durch Ihren Formularnamen
4. Schließen Sie Excel und öffnen Sie es erneut.
VBA-Codierung leicht gemacht
Suchen Sie nicht länger online nach VBA-Code. Erfahren Sie mehr über AutoMacro – einen VBA Code Builder, der es Anfängern ermöglicht, Prozeduren von Grund auf mit minimalen Programmierkenntnissen und mit vielen zeitsparenden Funktionen für alle Benutzer zu codieren!
<<Zurück zu den VBA-Beispielen
VBA Coding Made Easy
Stop searching for VBA code online. Learn more about AutoMacro - A VBA Code Builder that allows beginners to code procedures from scratch with minimal coding knowledge and with many time-saving features for all users!Learn More!