Anzeige
Archiv - Navigation
1664to1668
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

DropDown füllen aus Array-Werten

DropDown füllen aus Array-Werten
09.01.2019 20:05:00
Oisse
Hallo Zusammen,
wie kann ich ein DropDown-Menü in einer Zelle erzeugen, dass mit dem Inhalt eines Arrays gefüllt wird?
Mein Array ist "Public" und steht am Anfang einer Funktion in einem Modul.
Mein Code um das DropDown zu füllen steht in einem "SelectionChange"-Ereignis und sieht folgendermaßen aus:

Application.EnableEvents = False
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:=Arr_BCV_W
.IgnoreBlank = False
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With

Hat jemand eine Lösung?
Gruß Oisse

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: DropDown füllen aus Array-Werten
09.01.2019 20:18:54
Nepumuk
Hallo,
wie ist Arr_BCV_W deklariert bzw. welche Dimensionen hat es?
Gruß
Nepumuk
AW: DropDown füllen aus Array-Werten
09.01.2019 20:26:29
Oisse
Hallo Nepumuk,
das Array ist wie folgt deklariert:
Public Arr_BCV_W(10) As Variant
AW: DropDown füllen aus Array-Werten
09.01.2019 20:30:09
Nepumuk
Hallo,
dann so:
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:=Join(Arr_BCV_W, ",")

Gruß
Nepumuk
Bin begeistert, aber
09.01.2019 20:35:35
Oisse
leider splittet er mir die Namen, die durch ein Komma getrennt sind.
Der Arrayeintrag setzt sich so zusammen:
Nachname, Vorname
Wie löst man das?
AW: Bin begeistert, aber
09.01.2019 20:42:27
Nepumuk
Hallo,
das Komma ist das Listentrennzeichen. Man könnte es durch einen Strichpunkt ersetzen.
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, _
Formula1:=Replace(Replace(Join(Arr_BCV_W, "~"), ",", ";"), "~", ",")

Gruß
Nepumuk
Anzeige
Super
09.01.2019 20:48:00
Oisse
Viiielen herzlichen Dank,
funktioniert super. Allerdings hab ich noch eine Frage.
Mein Code für das Ereignis sieht so aus:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Zeitraum As Date
If Target.Column = 4 Or Target.Column = 9 Or Target.Column = 10 Then
Zeitraum = Range("C" & Target.Row)
Tage (Zeitraum)
End If
On Error GoTo Ende
Application.EnableEvents = False
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:=Replace(Replace(Join(Arr_BCV_W, "~"), ",", ";"), "~", ",")
.IgnoreBlank = False
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
Ende:
Application.EnableEvents = True
End Sub

Allerdings werden auch DropDowns in anderen Zellen eingefügt, obwohl die ja mit Werten anderer Arrays gefüllt werden sollen.
Was bitte läuft hier schief?
Anzeige
AW: Super
09.01.2019 20:51:49
Nepumuk
Hallo,
wo soll sie denn eingefügt werden? Du benutzt With Selection.Validation, das ist/sind die ausgewählte/n Zellen.
Gruß
Nepumuk
Ich war
09.01.2019 20:58:14
Oisse
zu voreilig. Nun habe ich den Code um das zweite Array erweitert und läuft einwandfrei.
Echt klasse.
Danke nochmal und einen schönen Abend.
Oisse

29 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige