Makros nur in einer bestimmten Arbeitsmappe ausführen
Schritt-für-Schritt-Anleitung
Um sicherzustellen, dass Deine Makros nur in der jeweiligen Arbeitsmappe ausgeführt werden, kannst Du die folgenden Schritte befolgen:
-
VBA-Editor öffnen: Drücke ALT + F11
, um den VBA-Editor zu öffnen.
-
Modul erstellen: Klicke mit der rechten Maustaste auf Deine Arbeitsmappe im Projektfenster und wähle Einfügen > Modul
.
-
Makros anpassen: Kopiere die untenstehenden Makros in das Modul. Achte darauf, dass Du Application.Quit
durch ThisWorkbook.Close
ersetzt, um die aktive Arbeitsmappe zu schließen, ohne Excel zu beenden.
Sub SortierenUndSpeichern()
Call SortiereSpalteAufsteigend
Call MappeSpeichern
End Sub
Sub SortiereSpalteAufsteigend()
Dim Sortierspalte As String
Dim Bereich As String
ActiveSheet.Unprotect Password:=""
Bereich = "A8:AG32"
Sortierspalte = "A"
ActiveSheet.Range(Bereich).Sort _
Key1:=Range(Sortierspalte & "1"), Order1:=xlAscending, _
Header:=xlGuess, MatchCase:=False, _
Orientation:=xlTopToBottom
ActiveSheet.Protect Password:=""
End Sub
Sub MappeSpeichern()
ThisWorkbook.Saved = True
If Application.Workbooks.Count = 1 Then
ThisWorkbook.Save
Application.Quit
Else
ThisWorkbook.Close (Not ThisWorkbook.ReadOnly)
End If
End Sub
-
Makros ausführen: Führe die Makros über einen Button oder direkt im VBA-Editor aus.
Häufige Fehler und Lösungen
-
Fehler: Excel schließt die Sammelmappe
Lösung: Stelle sicher, dass Du in den Makros ThisWorkbook
verwendest, um auf die aktuelle Arbeitsmappe zuzugreifen.
-
Fehler: "Dokument wiederherstellen" erscheint
Lösung: Vermeide, dass Du die Arbeitsmappe schließt, wenn noch andere Arbeitsmappen geöffnet sind. Verwende die Bedingung If Application.Workbooks.Count = 1 Then
.
Alternative Methoden
Ein alternativer Ansatz ist die Verwendung von Workbook-Events. Du kannst das Makro so anpassen, dass es nur bei bestimmten Aktionen in der Arbeitsmappe ausgeführt wird. Zum Beispiel kannst Du das Workbook_BeforeClose
-Ereignis nutzen, um sicherzustellen, dass die Arbeitsmappe nur unter bestimmten Bedingungen geschlossen wird.
Praktische Beispiele
Hier ist ein Beispiel, wie Du das Makro anpassen kannst, um eine spezifische Arbeitsmappe zu speichern, ohne die Sammelmappe zu beeinflussen:
Sub SpeichernUndSchließen()
Dim wb As Workbook
Set wb = ThisWorkbook
wb.Save
wb.Close
End Sub
Dieses Makro speichert und schließt nur die aktuelle Arbeitsmappe, ohne andere geöffnete Arbeitsmappen zu schließen.
Tipps für Profis
-
Verwendung von Application.DisplayAlerts = False
: Dies kann nützlich sein, um Benachrichtigungen zu unterdrücken, wenn Du Arbeitsmappen speicherst oder schließt.
-
Fehlerbehandlung einfügen: Nutze On Error Resume Next
, um Fehler im Makro zu ignorieren, und On Error GoTo 0
, um die Standardfehlerbehandlung wiederherzustellen.
FAQ: Häufige Fragen
1. Wie kann ich sicherstellen, dass meine Makros in Excel 2016 funktionieren?
Stelle sicher, dass Du die Makros als .xlsm
speicherst, um die Makros in Excel 2016 nutzen zu können.
2. Was kann ich tun, wenn Excel immer noch die Sammelmappe schließt?
Überprüfe, ob Du ThisWorkbook
korrekt verwendest und teste die Makros in einer Umgebung mit minimalen offenen Arbeitsmappen.