Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Dropdown-Menü über VBA aktualisieren

Dropdown-Menü über VBA aktualisieren
15.06.2016 16:03:50
Andy
Heyho Forum,
ich bin wiedermal an meine Grenzen gestoßen. Ich hoffe ihr könnt mir mal wieder helfen :)
Ich habe mit Excel eine Checkliste erstellt, in dieser befinden sich mehrere von einander abhängige Dropdown-Menüs. Nun kommt die Problemstellung. Wenn ich beim ersten Ausfüllen der Checkliste durchgehe klappt alles, jedoch wenn ich dann das erste Dropdown-Menü verändere, aktualiseren sich wohl die Dropdown-Menüs jedoch nicht der Zelleninhalt.
Zur Verdeutlichung.
Im ersten Dropdown-Menü gibt es die Wahlmöglichkeit A & B
Das zweite Dropdown-Menü ist abhängig vom ersten, wenn A dann kann AB & AC ausgewählt werden, bei B kann zwischen BD & BE ausgewählt werden.
Das Problem wenn ich beim ersten mal A und AB ausgwählt ist noch alles gut, jedoch ändere ich von A auf B steht in der Zelle immer noch AB erst wenn ich die Zelle erneut auswähle kann ich den Wert auf BD bzw. BE ändern.
Gibt es eine Möglichkeit das sich der Zellenwert mit aktualisiert, wenn im ersten Dropdown-Menü etwas geändert wird ? Die Verknüpfung der zwei Dropdown-Menüs habe ich mit =indirect(Name) realisiert.
Ich hoffe, dass ich euch mein Problem erklären konnte :)
Mit freundlichen Grüßen
Hopeless

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Dropdown-Menü über VBA aktualisieren
15.06.2016 16:33:08
Michael
Hallo!
Nein, das geht so nicht (ohne VBA-Einsatz). Ein "Dropdown-Menü", ich gehe davon aus, dass Du damit eine Liste aus der Datenüberprüfung meinst, bietet Werte an, die in die Zelle gesetzt werden können - der Zellwert ist aber, sobald er gesetzt wurde, nicht verknüpft mit dem Quell-Bereich der Liste. Ein ähnliches Problem stellt sich, wenn Du in eine Zelle mit Datenüberprüfungs-Liste einfach Werte einfügst (über ReMaustaste - Einfügen), anstatt eine Eingabe über die Liste vorzunehmen.
Du kannst maximal in einer nebenstehenden Zelle eine weitere Prüfung auf den Zellwert ausführen, und dann eine Meldung ausgeben, dass hier etwas nicht zusammenpasst bzw. der Wert nochmal aus der Liste gesetzt werden soll.
LG
Michael

Anzeige
AW: Dropdown-Menü über VBA aktualisieren
16.06.2016 07:47:08
Andy
Erstmal vielen Dank für die Antwort :)
Wie wäre den der erste Ansatz in VBA ? Dann könnte ich mich schonmal daran probieren. :)
Die Idee mit einer zusätzlichen Überprüfung finde ich auch gut :) Danke :)

AW: Dropdown-Menü über VBA aktualisieren
16.06.2016 09:28:15
Andy
So hier kommt die Lösung XD
habe es mit diesem Code gelöst, hierdurch wird das Feld nach jeder Änderung als Leer angezeigt und der Benutzer ist gezwungen etwas neues auszuwählen XD Nicht die feine englische Art aber effektiv :)
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("D1")) _
Is Nothing Then Range("E1") = ""
Anzeige
;

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Dropdown-Menü in Excel über VBA aktualisieren


Schritt-für-Schritt-Anleitung

Um ein Dropdown-Menü in Excel automatisch zu aktualisieren, wenn eine Auswahl geändert wird, kannst Du folgenden VBA-Code verwenden:

  1. Öffne das Excel-Dokument, in dem Du die Dropdown-Listen hast.

  2. Drücke ALT + F11, um den VBA-Editor zu öffnen.

  3. Wähle im Projektfenster das entsprechende Arbeitsblatt aus (z. B. "Tabelle1").

  4. Füge den folgenden Code in das Codefenster ein:

    Private Sub Worksheet_Change(ByVal Target As Range)
       If Not Application.Intersect(Target, Range("D1")) Is Nothing Then
           Range("E1") = ""
       End If
    End Sub
  5. Schließe den VBA-Editor und kehre zurück zu Excel.

  6. Teste das Dropdown-Menü, indem Du eine Auswahl in Zelle D1 triffst. Nach der Änderung sollte die Zelle E1 automatisch zurückgesetzt werden.

Durch diesen Code wird sichergestellt, dass der Zelleninhalt in E1 gelöscht wird, wenn sich der Wert in D1 ändert. Dies zwingt den Benutzer, eine neue Auswahl zu treffen, was hilft, die Dropdown-Liste korrekt zu aktualisieren.


Häufige Fehler und Lösungen

  • Problem: Dropdown-Menü aktualisiert sich nicht.

    • Lösung: Stelle sicher, dass der VBA-Code korrekt eingefügt und das Makro aktiviert ist. Überprüfe auch die Zellreferenzen im Code.
  • Problem: Zellinhalt bleibt nach Änderung des Dropdowns unverändert.

    • Lösung: Verwende den oben genannten VBA-Code, um die Zelle beim Wechseln der Auswahl zurückzusetzen.

Alternative Methoden

Wenn Du kein VBA verwenden möchtest, gibt es auch eine Möglichkeit, die Dropdown-Listen mithilfe von Formeln zu aktualisieren. Du könntest die Datenüberprüfung mit einer dynamischen Liste kombinieren:

  1. Erstelle eine Tabelle mit den möglichen Auswahlmöglichkeiten für das erste Dropdown.
  2. Verwende die Funktion INDIREKT, um die Auswahlmöglichkeiten des zweiten Dropdowns abhängig von der ersten Auswahl zu gestalten.
  3. Achte darauf, dass Du die Datenüberprüfung korrekt einstellst, um die Dropdown-Listen zu verknüpfen.

Diese Methode ist allerdings weniger flexibel, da sie nicht die volle Funktionalität von VBA bietet.


Praktische Beispiele

Angenommen, Du hast zwei Dropdown-Menüs:

  • Erstes Dropdown (D1): A, B
  • Zweites Dropdown (E1): AB, AC (wenn A ausgewählt), BD, BE (wenn B ausgewählt)

Mit dem oben genannten VBA-Code wird E1 zurückgesetzt, wenn die Auswahl in D1 geändert wird. So stellst Du sicher, dass die Benutzer die neuen Optionen im zweiten Dropdown korrekt auswählen können.


Tipps für Profis

  • Verwende Namensbereiche: Anstatt Zellreferenzen wie Range("D1") zu verwenden, kannst Du Namensbereiche für eine bessere Lesbarkeit und Wartbarkeit des Codes nutzen.
  • Fehlerprüfung einfügen: Implementiere zusätzliche Logik, um sicherzustellen, dass nur gültige Eingaben akzeptiert werden. Dies kann durch weitere Bedingungen im VBA-Code geschehen.
  • Formeln kombinieren: Nutze Excel-Formeln in Kombination mit VBA, um komplexe Logiken zu implementieren, ohne den Benutzer mit zu vielen Dropdowns zu überfordern.

FAQ: Häufige Fragen

1. Wie kann ich mehrere Dropdowns gleichzeitig aktualisieren?
Du kannst die Worksheet_Change-Prozedur erweitern, um mehrere Zellen gleichzeitig zu überwachen und entsprechende Anpassungen vorzunehmen.

2. Funktioniert dieser Code in allen Excel-Versionen?
Ja, der VBA-Code sollte in den meisten modernen Excel-Versionen (ab Excel 2010) funktionieren.

3. Kann ich auch bedingte Formatierungen verwenden?
Ja, Du kannst bedingte Formatierungen in Kombination mit Dropdown-Listen nutzen, um die Sichtbarkeit und Benutzerfreundlichkeit zu erhöhen.

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