Zwei Makros gleichzeitig ausführen in Excel
Schritt-für-Schritt-Anleitung
Um zwei Makros gleichzeitig auszuführen, musst du den Code in einer einzigen Workbook_Open()
-Prozedur kombinieren. Hier ist eine Schritt-für-Schritt-Anleitung:
-
Öffne den Visual Basic for Applications (VBA) Editor:
- Drücke
ALT + F11
, um den VBA-Editor zu öffnen.
-
Füge den folgenden Code in das ThisWorkbook
-Modul ein:
Option Explicit
Const QUELLE = "C:\xxxxxxx\xxxx\xxxxx\Mappe1.xls"
Private Sub Workbook_Open()
Dim Ws As Worksheet
Dim objWB As Workbook
Application.ScreenUpdating = False
Application.ShowWindowsInTaskbar = False
' Combobox befüllen
With Worksheets("Angebot").List
.Clear
For Each Ws In Worksheets
.AddItem Ws.Name
Next
.ListIndex = 0
End With
' Zweite Mappe öffnen
Set objWB = Workbooks.Open(QUELLE, , True)
objWB.Windows(1).Visible = False
Me.Saved = True
Application.ShowWindowsInTaskbar = True
Application.ScreenUpdating = True
End Sub
-
Speichere die Arbeitsmappe und schließe den VBA-Editor.
-
Teste das Makro, indem du die Excel-Datei öffnest.
Häufige Fehler und Lösungen
-
Fehler: "Das Makro konnte nicht gefunden werden"
Lösung: Stelle sicher, dass der Code im richtigen Modul (ThisWorkbook
) eingefügt wurde.
-
Fehler: Die zweite Mappe öffnet sich nicht
Lösung: Überprüfe den Pfad der Datei in der Const QUELLE
-Zeile. Stelle sicher, dass der Pfad korrekt ist und die Datei existiert.
Alternative Methoden
Eine alternative Methode, um zwei Makros gleichzeitig auszuführen, ist die Verwendung eines zusätzlichen Makros, das die beiden Makros nacheinander aufruft. Hier ein Beispiel:
Sub RunBothMacros()
Call Macro1
Call Macro2
End Sub
Du kannst die bestehenden Makros Macro1
und Macro2
durch den Code für die Combobox und das Öffnen der zweiten Mappe ersetzen.
Praktische Beispiele
Angenommen, du hast eine Excel-Datei mit verschiedenen Tabellenblättern. Der folgende Code befüllt eine Combobox in einem Blatt namens "Angebot" und öffnet eine Vorlage im Hintergrund:
Private Sub Workbook_Open()
' Code zum Befüllen der Combobox
' Code zum Öffnen einer zweiten Mappe
End Sub
Du kannst auch die Combobox auf jedem Tabellenblatt einfügen und denselben Code verwenden, um sie zu befüllen.
Tipps für Profis
- Verwende Fehlerbehandlungsroutinen: Füge
On Error GoTo ErrHandler
hinzu, um Fehler elegant zu behandeln.
- Optimierung: Setze
Application.ScreenUpdating = False
, um das Flackern des Bildschirms zu vermeiden, während die Makros ausgeführt werden.
- Code modularisieren: Halte den Code sauber und modular, indem du verschiedene Funktionen für verschiedene Aufgaben verwendest.
FAQ: Häufige Fragen
1. Wie kann ich die Combobox auf jedem Blatt anzeigen?
Du musst auf jedem Blatt eine Combobox einfügen und den gleichen Code verwenden, um sie zu befüllen.
2. Was mache ich, wenn die externe Datei nicht geöffnet wird?
Überprüfe den Pfad zur Datei in der Const QUELLE
-Zeile und stelle sicher, dass die Datei vorhanden ist.
3. Kann ich die Makros anpassen, um zusätzliche Funktionalitäten einzufügen?
Ja, du kannst den VBA-Code anpassen und zusätzliche Funktionen hinzufügen, um deine spezifischen Anforderungen zu erfüllen.