Makros nur in der aktiven Excel-Datei ausführen
Schritt-für-Schritt-Anleitung
Um sicherzustellen, dass nur das richtige Makro für die jeweilige Excel-Datei ausgeführt wird, kannst du den folgenden VBA-Code verwenden. Dieser Code prüft, welche Spalten in deiner Tabelle vorhanden sind und schützt die entsprechenden Zellen.
- Öffne den VBA-Editor in Excel mit
Alt + F11
.
- Füge ein neues Modul hinzu (Rechtsklick auf "VBAProject" > Einfügen > Modul).
- Kopiere den folgenden Code in das Modul:
Sub Schutzmakro()
' Tastenkombination: Strg+m
Dim LR As Long, SP As Long, LS As Long, Text As String
With ActiveWorkbook.ActiveSheet
Select Case .Cells(3, .Columns.Count).End(xlToLeft).Column
Case 7 ' Wenn letzte Spalte G
SP = 2
LS = 7
Text = "FN-Nr."
Case 13 ' Wenn letzte Spalte M
SP = 7
LS = 13
Text = "FFR"
End Select
LR = .Cells(Rows.Count, SP).End(xlUp).Row ' Letzte Zeile der Spalte B oder G
' Prüfung Vollständigkeit
If WorksheetFunction.CountBlank(.Range(.Cells(5, SP), .Cells(LR, SP))) > 0 Then
MsgBox "Lücken entdeckt in " & Text & "!" & vbNewLine & "Bearbeitung abgebrochen!", vbOKOnly + vbCritical, "Fehler"
Exit Sub
End If
.Unprotect
.Range(.Cells(5, 2), .Cells(LR, LS)).Locked = True ' Zellen schützen
.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End With
ActiveWorkbook.Save
End Sub
- Schließe den VBA-Editor und teste das Makro mit
Strg + M
.
Häufige Fehler und Lösungen
-
Falsches Makro wird ausgeführt: Stelle sicher, dass der Code in der richtigen Datei gespeichert ist. Wenn du mehrere Dateien geöffnet hast, kann es zu Verwirrung kommen.
-
Zellen werden nicht geschützt: Überprüfe, ob die Spalten in deiner Tabelle korrekt benannt sind und ob die richtigen Daten in den Spalten vorhanden sind.
-
Makro läuft nicht: Achte darauf, dass Makros in deinen Excel-Einstellungen aktiviert sind. Du kannst dies unter Datei > Optionen > Trust Center > Einstellungen für das Trust Center > Makroeinstellungen
überprüfen.
Alternative Methoden
Wenn du die Verwendung von Makros vermeiden möchtest, kannst du auch die Funktion "Datenüberprüfung" in Excel nutzen, um sicherzustellen, dass in bestimmten Zellen Werte eingegeben werden. Allerdings bietet dies nicht den gleichen Schutz wie ein Makro.
Praktische Beispiele
Hier ist ein Beispiel, wie du das Makro anpassen kannst, um die letzte Zeile in einer beliebigen Spalte zu finden:
LR = .Cells.SpecialCells(xlCellTypeLastCell).Row ' Letzte Zeile des gesamten Blattes
Diese Zeile ersetzt die bestehende LR
-Zuweisung und sucht nach der letzten ausgefüllten Zeile in der gesamten Tabelle.
Tipps für Profis
-
Personal.xlsb nutzen: Du kannst das Makro in der PERSONAL.XLSB
speichern, um es in jeder Excel-Datei ohne erneutes Kopieren verwenden zu können. Beachte jedoch, dass dies nur auf deinem lokalen Rechner funktioniert.
-
Tastenkombination anpassen: Du kannst die Tastenkombination für das Makro ändern, um Konflikte mit anderen Makros zu vermeiden. Dies kannst du im VBA-Editor unter Extras > Makros > Makros...
tun.
FAQ: Häufige Fragen
1. Wie kann ich das Makro in mehreren Dateien nutzen?
Du kannst das Makro in PERSONAL.XLSB
ablegen, um es in allen Excel-Dateien verfügbar zu machen.
2. Was passiert, wenn ich eine Datei schließe?
Das Makro wird nicht gespeichert, es sei denn, du hast es in der Datei gespeichert oder in PERSONAL.XLSB
.
3. Kann ich die Zellen auch ohne Makro schützen?
Ja, du kannst den Blattschutz manuell aktivieren, aber das ist weniger flexibel als die Automatisierung mit einem Makro.