Anzeige
Archiv - Navigation
1576to1580
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

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

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

320 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige