Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1216to1220
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

VBA Gültigkeitsliste

VBA Gültigkeitsliste
Fred
Hallo zusammen,
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

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: VBA Gültigkeitsliste
06.06.2011 19:42:21
Nepumuk
Hallo,
das geht nicht. Die Formula-Eigenschaft der Validation-Eigenschaft ist auf 255 Zeichen begrenzt.
Gruß
Nepumuk
AW: VBA Gültigkeitsliste
06.06.2011 21:58:37
Fred
Hallo Nepumuk,
vielen Dank für Deine Antwort. Was ich jedoch nicht verstehe ist, dass es über Range funktioniert.
D.h. wenn ich demselben Bereich, den ich dem dataarray übergebe einen Namen gebe - z.B. DatenBereich - dann funktioniert es.
With sht.Cells(1, 2)
.Validation.Delete
.Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=Range("DatenBereich")"
.Locked = False
End With
Woran liegt das?
Viele Grüße
Fred
Anzeige
AW: VBA Gültigkeitsliste
06.06.2011 23:07:22
Nepumuk
Hallo,
ein Range un d ein VBA-Array sind nicht das selbe. Du kannst in den meisten Formel ja auch nicht einfach Bereiche durch ein Array ersetzen.
Gruß
Nepumuk
AW: VBA Gültigkeitsliste
07.06.2011 07:38:29
Fred
Hallo Nepumuk,
ok, vielen Dank für Deine Hilfe. Das macht meinen Code zwar "komplizierter", aber zumindest weiß ich jetzt, dass ich hier nicht wirklich anders vorgehen kann.
Viele Grüße
Fred

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige