Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA wenn x oder y dann wert z

Forumthread: VBA wenn x oder y dann wert z

VBA wenn x oder y dann wert z
19.04.2021 08:59:42
DanteMan
Guten Morgen Forum,
ich hätte da ein kleines Problem das ich gerne mit VBA lösen würde. Und zwar:
In Spalte B habe ich ein Dropdown mit vier Textwerten:
1. APK (XML-Format)
2. Base (XML-Format)
3. Client (txt-Format)
4. WebGUI(properties-Format)
In den Spalten C/D und E werden dann mit einem anderen Dropdown entsprechende Unterordner zur Auswahl angezeigt.
Das funktioniert auch. Die Auswahlmöglichkeiten txt-Format und properties-Format haben aber keine Unterordner.
Jetzt hätte ich gerne wenn in Spalte B in den Zellen txt oder properties-Format ausgewählt wird in den Spalten C/D und E in den Zellen daneben gleich direkt
"NO Subfolder" eingetragen wird. bei den beiden XML-Format einträgen soll nichts passieren da hier die funktionierenden Dropdowns weiter genutzt werden sollen.
Meine Frage ist nun:
Wie kann ich dies mit VBA realisieren? Kann mir da evtl einer weiterhelfen?
Ich stehe hier total auf dem Schlauch.
Ich hoffe das meine Beschreibung der Problematik klar und verständlich ist.
Danke schon mal im vorraus,
Gruß
Dante
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA wenn x oder y dann wert z
19.04.2021 11:39:07
Piet
Hallo
so könnte es klappen, der Code ist aber nicht getestet, weil ich deinen Tabellenaufbau nicht habe.
Den Code bitte ins Tabellenblatt kopieren wo sich die DropDowns befinden. Würde mich freuen wenn es klappt.
Hinweis: ich vermute in der DropDown Liste für Spalte C/D/E muss der Text "No Subfolder" vorkommen, sonst könnte es eine Fehlermeldung geben! Und Excel die Eingabe verweigern. Einfach ausprobieren ob es auch ohne geht?
mfg Piet
  • 
    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
    If Target.Value = "txt-Format" Or _
    Target.Value = "properties-Format" Then
    Target.Resize(1, 3) = "NO Subfolder"
    End If
    End If
    Fehler: MsgBox "Target Fehler - bitte wiederholen"
    End Sub
    

  • Anzeige
    AW: VBA wenn x oder y dann wert z
    19.04.2021 12:55:48
    DanteMan
    Hi Piet,
    danke für Deine Hilfe!
    Wie schon vermutet gibt es hier Probleme.
    Ich hab mal eine Tabelle hochgeladen:
    https://www.herber.de/bbs/user/145649.xlsm
    In der Spalte B wähle ich einen von 4 Hauptordner aus.
    Einer von den 4en hat noch 3 Unterordner, ein anderer noch einen und die beiden letzten (txt und properties) haben keinen Subfolder.
    Was ich jetzt gerne hätte ist:
    Sind die Hauptordner txt oder properties ausgewählt soll in den Zelen rechts daneben (Spalten C-E/Subfolder 1-3) direkt "No Subfolder" eingetragen werden.
    Bei Deinem Code wird auch in der Spalte Mainfolder dann "Subfolder" eingetragen.
    Kann man das lösen und wenn ja wie?
    Gruß
    Dante
    Anzeige
    AW: VBA wenn x oder y dann wert z
    19.04.2021 14:43:59
    Piet
    Hallo
    stimmt, dummer kleiner Flüchtigkeitsfehler von mir. Aendere den Code bitte mal so ab: (Offset verschiebt ihn um eine Spalte nach rechts)
    Target.Offset(0, 1).Resize(1, 3) = "NO Subfolder"
    mfg Piet
    AW: VBA wenn x oder y dann wert z
    19.04.2021 14:54:50
    DanteMan
    Hi Piet.
    Yepp, so trät er es richtig ein. Aber aus welchem Grund kommt das mit dem Fehler, und wie kann man den noch eliminieren?
    Gruß
    Dante
    Anzeige
    AW: VBA wenn x oder y dann wert z
    19.04.2021 15:52:20
    Piet
    Hallo
    so sollte er jetzt perfekt sein ... - Ohne Fehlermeldung
    mfg Piet
  • 
    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.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
    

  • Anzeige
    AW: VBA wenn x oder y dann wert z
    19.04.2021 16:15:39
    DanteMan
    Yes, Funktioniert tadellos!
    Vielen Dank Piet!
    ;

    Forumthreads zu verwandten Themen

    Anzeige
    Anzeige
    Anzeige
    Anzeige
    Entdecke relevante Threads

    Schau dir verwandte Threads basierend auf dem aktuellen Thema an

    Alle relevanten Threads mit Inhaltsvorschau entdecken
    Anzeige

    Infobox / Tutorial

    VBA für die bedingte Eingabe in Excel: Wenn x oder y, dann Wert z


    Schritt-für-Schritt-Anleitung

    1. Öffne Dein Excel-Dokument und navigiere zu dem Arbeitsblatt, in dem sich die Dropdown-Listen befinden.

    2. 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
    3. 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

    • Problem: "Target Fehler - bitte wiederholen" Meldung erscheint.

      • Lösung: Stelle sicher, dass die Dropdown-Listen in Spalte B korrekt eingerichtet sind. Überprüfe auch, ob das Blatt nicht im geschützten Modus ist.
    • Problem: "NO Subfolder" wird nicht eingetragen.

      • Lösung: Vergewissere Dich, dass die Dropdown-Werte exakt mit den im Code verwendeten Werten übereinstimmen (z.B. Groß- und Kleinschreibung beachten).

    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.

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Entdecke mehr
    Finde genau, was du suchst

    Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

    Suche nach den besten Antworten
    Unsere beliebtesten Threads

    Entdecke unsere meistgeklickten Beiträge in der Google Suche

    Top 100 Threads jetzt ansehen
    Anzeige