ich hoffe, ihr könnt mir bei meinem folgenden Problem helfen. Vielen Dank schonmal für Eure Hilfe!
Ich möchte per VBA eine Gültigkeitsliste mit Werten füllen. Die Werte würde ich gerne per Array vorgeben.
Mein Code, der auch grundsätzlich funktioniert, lautet wiefolgt:
Public Sub fillvalidationlist()
Dim sht As Worksheet
Dim dataarray
Dim lrow As Integer
Set sht = Worksheets("Tabelle2")
lrow = 100
dataarray = WorksheetFunction.Transpose(sht.Range(sht.Cells(1, 1), sht.Cells(lrow, 1)))
dataarray = Join(dataarray, ",")
With sht.Cells(1, 2)
.Validation.Delete
.Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:=dataarray
.Locked = False
End With
End Sub
Ich schaffe es nicht, den Array "dataarray" direkt zu übergeben, sondern muss zunächst eine Zeichenkette via Join() generieren. Hierbei tritt aber das Problem auf, dass nicht der gesamte Array-Inhalt sondern nur bis Maximal 21 Werte angezeigt werden. Wie kann ich dieses Problem lösen und bis zu 100 Werte übergeben?
Ich weiß, dass dies über Comboboxen geht, jedoch versuche ich einen Weg über die Gültigkeitsliste zu erarbeiten.
Vielen Dank für Eure Hilfe
Fred