Gültigkeitsprüfung mit INDIRECT in Excel VBA
Schritt-für-Schritt-Anleitung
Um eine Gültigkeitsprüfung in Excel mit der INDIRECT-Funktion in VBA zu erstellen, folge diesen Schritten:
-
Öffne den VBA-Editor:
- Drücke
ALT + F11, um den VBA-Editor zu öffnen.
-
Füge ein Modul hinzu:
- Rechtsklicke auf "VBAProject (DeineDateiName)" im Projektfenster.
- Wähle
Einfügen > Modul.
-
Gib den folgenden Code ein:
Sub Gültigkeitsprüfung()
With Range("I11").Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:= _
"=IF(H11>0,INDEX(INDIRECT(A11),1,3),IF(G11>0,INDEX(INDIRECT(A11),1,2)))"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
End Sub
-
Anpassen der Formel:
- Stelle sicher, dass in Zelle
A11 der Name eines benannten Bereichs steht.
- Achte darauf, dass die Formel in der richtigen Schreibweise eingegeben wird (z. B. englisch).
-
Führe das Makro aus:
- Klicke im VBA-Editor auf
Run oder drücke F5, um das Makro auszuführen.
Häufige Fehler und Lösungen
-
Fehler 1004:
- Dieser Fehler tritt oft auf, wenn die Formel nicht korrekt formatiert ist. Achte darauf, dass du
, anstelle von ; verwendest, wenn du die Formel in englischer Sprache eingibst.
-
Ungültiger Zellbezug:
- Überprüfe, ob in den Zellen
G11 oder H11 ein Wert > 0 steht. Andernfalls kann die Formel keinen gültigen Zellbezug ermitteln.
Alternative Methoden
Falls du keine VBA-Lösung verwenden möchtest, kannst du die Gültigkeitsprüfung auch direkt über die Excel-Oberfläche einrichten:
- Wähle die Zelle aus (z. B.
I11).
- Gehe zu
Daten > Datengültigkeit.
- Wähle
Liste und gib die Formel in das Feld für die Quelle ein.
Alternativ kannst du auch die INDIREKT-Funktion in einer normalen Excel-Formel verwenden, um Werte dynamisch zu referenzieren.
Praktische Beispiele
Angenommen, du hast in Zelle A11 den benannten Bereich Produkte definiert:
- Wenn
G11 den Wert 1 und H11 den Wert 0 hat, würde die Gültigkeitsprüfung den Wert aus der zweiten Spalte des benannten Bereichs Produkte zurückgeben.
- Umgekehrt, wenn
H11 den Wert 5 hat, wird der Wert aus der dritten Spalte verwendet.
Tipps für Profis
- Verwende benannte Bereiche: Diese machen es einfacher, mit
INDIREKT zu arbeiten und die Übersichtlichkeit deiner Formeln zu verbessern.
- Fehlerbehandlung: Baue in deine VBA-Logik eine Fehlerbehandlung ein, um unerwartete Eingaben oder Fehler eleganter zu handhaben.
- Dokumentation: Kommentiere deinen Code, um die Wartbarkeit zu erhöhen und anderen Nutzern zu helfen, deine Logik zu verstehen.
FAQ: Häufige Fragen
1. Wie kann ich die Formel so anpassen, dass sie auch leere Zellen erlaubt?
Du kannst die Formel erweitern, um leere Zellen zu berücksichtigen, indem du zusätzliche Bedingungen hinzufügst.
2. Warum funktioniert die Gültigkeitsprüfung manchmal nicht?
Überprüfe immer die Zellbezüge und stelle sicher, dass die Eingabe in den Zellen G11 und H11 korrekt ist. Ein fehlerhafter Bezug kann zu Problemen führen.