VBA für die bedingte Eingabe in Excel: Wenn x oder y, dann Wert z
Schritt-für-Schritt-Anleitung
-
Öffne Dein Excel-Dokument und navigiere zu dem Arbeitsblatt, in dem sich die Dropdown-Listen befinden.
-
Kopiere den folgenden VBA-Code in das entsprechende Tabellenblatt. Um das zu tun, klicke mit der rechten Maustaste auf das Tabellensymbol und wähle „Code anzeigen“:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Fehler
If InStr(Target.Address, ":") Then Exit Sub
If Not Intersect(Target, Range("B:B")) Is Nothing Then
Application.EnableEvents = False
If Target.Value = "txt-Format" Or _
Target.Value = "properties-Format" Then
Target.Offset(0, 1).Resize(1, 3) = "NO Subfolder"
End If
Application.EnableEvents = True
End If
Exit Sub
Fehler: Application.EnableEvents = True
MsgBox "Target Fehler - bitte wiederholen"
End Sub
-
Speichere die Änderungen und teste die Dropdown-Liste in Spalte B. Wenn Du „txt-Format“ oder „properties-Format“ auswählst, sollte automatisch „NO Subfolder“ in den Spalten C, D und E eingetragen werden.
Häufige Fehler und Lösungen
Alternative Methoden
Wenn Du keine VBA-Lösungen verwenden möchtest, kannst Du auch die Excel-Funktion WENN
in Kombination mit VERGLEICH
nutzen, um ähnliche Ergebnisse zu erzielen. Hier ein einfaches Beispiel:
=WENN(ODER(B1="txt-Format";B1="properties-Format");"NO Subfolder";"")
Diese Formel kannst Du in Zelle C1 einfügen und nach unten ziehen, um die anderen Zellen zu befüllen. Beachte, dass dies keine automatische Eingabe in den Spalten C, D und E ermöglicht, sondern nur in einer einzigen Zelle.
Praktische Beispiele
Angenommen, Du hast die folgenden Werte in Spalte B:
- B1: "txt-Format"
- B2: "APK (XML-Format)"
- B3: "properties-Format"
- B4: "Base (XML-Format)"
Nach der Auswahl in Spalte B, wird das Ergebnis in den Spalten C, D und E wie folgt aussehen:
- C1, D1, E1: "NO Subfolder"
- C2, D2, E2: (Bleibt leer)
- C3, D3, E3: "NO Subfolder"
- C4, D4, E4: (Bleibt leer)
Tipps für Profis
-
Verwende Application.EnableEvents = False
: Stelle sicher, dass Du diese Zeile im Code verwendest, um zu verhindern, dass die Worksheet_Change
-Ereignisse während der Codeausführung in eine Endlosschleife geraten.
-
Fehlerüberprüfung verbessern: Füge spezifischere Fehlermeldungen hinzu, um die Problembehebung zu erleichtern.
FAQ: Häufige Fragen
1. Kann ich den Code auch für andere Spalten verwenden?
Ja, Du kannst die Spaltenreferenzen im Code anpassen, um ihn für andere Spalten zu verwenden.
2. Was mache ich, wenn ich mehrere Dropdowns habe?
Du kannst den Code erweitern, um mehrere Dropdowns zu berücksichtigen, indem Du die If
-Bedingungen entsprechend anpasst.
3. Gibt es eine Möglichkeit, die Dropdown-Werte dynamisch zu aktualisieren?
Ja, Du kannst Datenüberprüfung und benannte Bereiche verwenden, um die Dropdown-Werte dynamisch zu gestalten.