Festlegen eines Standardwerts für eine dynamische kaskadierende Validierungsliste in Excel 2010

11

Ich habe endlich herausgefunden, wie man mithilfe der Datenvalidierung und der INDIRECT-Funktion einen dynamischen Kaskadensatz von Listen in Excel erstellt. Ich habe jedoch ein Problem.

Ich möchte meine Tabelle so einrichten, dass bei jeder Änderung einer Datenüberprüfungsliste alle nachfolgenden Listen auf einen Standardwert gesetzt werden. Beispielsweise:

Angenommen, ich habe Liste1, Liste2, Liste3 und Liste4. Die Werte jeder Liste hängen von der Auswahl in der vorherigen Liste ab. Wenn ich die Tabelle starte, möchte ich, dass alle Listen standardmäßig "ALL" sind. Wenn der Benutzer einen Wert in Liste1 auswählt, wird Liste2 mit einer Reihe gültiger Auswahlmöglichkeiten aktualisiert. Ich möchte List2 standardmäßig auf eine dieser Optionen einstellen. Obwohl ich List2 mit den richtigen Auswahloptionen füllen kann, kann ich ihm nicht den gewünschten Standardwert zuweisen.

Wenn der Benutzer eine Auswahl in Liste1, Liste2 und Liste3 trifft, dann zurückgeht und Liste1 ändert, möchte ich, dass Liste2-Liste4 standardmäßig auf "ALLE" zurückgesetzt wird.

Wie mache ich das?

Jay
quelle
3
Dies ist ein Job für einen VBA-Ereignisauslöser für worksheet_change. Ich habe momentan keine Zeit, die Details zu nennen (später werde ich es tun, wenn Sie noch Hilfe benötigen), aber hier sollten Sie Ihre Forschung lenken.
Excellll
Sie haben dies wahrscheinlich inzwischen gelöst oder aufgegeben. Ich stimme Excellll zu, dass ein Arbeitsblattänderungsereignis am einfachsten sein könnte. Mit der Option Liste für die Datenüberprüfung kann die Quelle jedoch ein Ausdruck wie z =IF(A1="List1",C1:C5,D1:D4). Ich habe dies mit dem Wert von Zelle A1 getestet, der aus einer Liste ausgewählt wurde, und es funktioniert so, wie Sie es suchen.
Tony Dallimore
Tritt dieses Problem immer noch auf?
Tamara Wijsman
Zu Ihrer Information, eine Nicht-VBA-Methode, die ich für dieses Problem verwende, besteht darin, eine KONDITIONELLE Formatierung auf die nachfolgenden Zellen anzuwenden, die prüft, ob der aktuelle Wert mit einem Wert im aktuellen INDIRECT () -Referenzbereich übereinstimmt. Wenn NICHT, wird die Zelle rot oder der Wert verschwindet (übereinstimmende Schriftart / Hintergrund), sodass der Benutzer weiß, dass der Wert für diese Zelle aktualisiert / erneut ausgewählt werden muss.
Jerry Beaucaire
Um sowohl die VBA-Methode als auch die oben erwähnte CF-Methode zu veranschaulichen, gibt es hier eine Beispieldatei. DependentLists3.xls
Jerry Beaucaire

Antworten:

1

Eine Nicht-VBA-Methode, die ich für dieses Problem verwende, besteht darin, eine CONDITIONAL-Formatierung auf die nachfolgenden Zellen anzuwenden, die prüft, ob der aktuelle Wert mit einem Wert im aktuellen INDIRECT () -Referenzbereich übereinstimmt. Wenn NICHT, wird die Zelle rot oder der Wert verschwindet (übereinstimmende Schriftart / Hintergrund), sodass der Benutzer weiß, dass der Wert für diese Zelle aktualisiert / erneut ausgewählt werden muss.

Um dies (und die von anderen oben erwähnte VBA-Methode) zu veranschaulichen, gibt es hier eine Beispieldatei . Die gewünschte Datei ist DependentLists3.xls

Jerry Beaucaire
quelle