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

Mehrstufige Dropdownliste

Forumthread: Mehrstufige Dropdownliste

Mehrstufige Dropdownliste
31.08.2017 16:14:57
Christoph
Hallo allerseits,
ich möchte gerne eine zweistufig Dropdownliste in VBA erstellen. Mit Excel funktioniert es, allerdings habe ich Probleme es in VBA zu erstellen.
Das spuckt mir der Recorder aus:
Cells(2, 1).Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=DruckMax"

.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
Cells(2, 2).Select
With Selection.Validation
.Delete
.Add Type:=xlValidateCustom, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=INDIREKT(A2)"

.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
Zuerst habe ich das erste Dropdownfeld über eine Tabelle als Liste erstellt. Hierbei bringt er aber jedoch die Fehlermeldung "Laufzeitfehler '1004'". Danach habe es mit der Liste "DruckMax" probiert und es hat funktioniert. Jedoch komme ich bei der zweiten Stufe nicht weiter. Es kommt wieder selbe Fehler wie schon zuvor. Ist es möglich Tabellen als Werteliste in VBA anzugeben oder gibt es eine bessere Lösung hierfür? Vielleicht kann mir ja jemand weiterhelfen?
VG Christoph
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mehrstufige Dropdownliste
31.08.2017 18:18:31
Robert
Hallo Christoph,
wie ich das verstehe, hast Du für das erste Dropdownfeld eine Liste/Zellbereich mit dem Namen DruckMax erstellt. Diese Liste enthält dann Namen von weiteren Listen/Zellbereichen, die als Daten für das zweite Dropdownfeld dienen sollen.
Bei dem zweiten Dropdownfeld muss dann als Typ ebenfalls xlValidateList angegeben werden. Außerdem verwendet Excel intern die englischen Funktionsnamen (Indirect statt Indirekt). Daher muss die entsprechende Zeile dann wie folgt lauten:
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=INDIRECT(A2)"

Vorher muss die Zelle A2 aber noch einen gültigen Inhalt erhalten. Sonst will das Makro für das zweite Dropdownfeld einen nicht existierenden Namen (oder keinen, falls A2 leer sein sollte) verwenden. Beides führt dann zu einem Fehler. Am Besten fügt man deshalb noch folgende Zeile vor der Definition des zweiten Dropdownfeldes ein:
Range("A2") = Range("DruckMax").Cells(1, 1)
Gruß
Robert
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken

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