Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
268to272
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
268to272
268to272
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Daten-Gültigkeit per VBA

Daten-Gültigkeit per VBA
14.06.2003 18:50:50
Matthias Gäbisch
Hallo,

mit folgendem Code versuche ich einer Zelle eine Liste
der gültigen Eingabewerte hinzuzufügen:

Private Function strReadcolumns() As String
Dim strColumns() As String
Dim i As Byte
For i = 0 To Sheets(strSheetInput).Range("IV1").End(xlToLeft).Column - 3
ReDim Preserve strColumns(i)
strColumns(i) = MyColumn(Sheets(strSheetInput).Range("C1").Offset(0, i).Address)
Next i

For i = 0 To UBound(strColumns)
strReadcolumns = strReadcolumns & strColumns(i) & ";"
Next i

strReadcolumns = Mid(strReadcolumns, 1, Len(strReadcolumns) - 1)

End Function

Sub Makro2()

Dim text As String
'
text = strReadcolumns
Range("C5").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:=text
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With

End Sub


Function MyColumn(ByVal Here As String) As String
MyColumn = Mid(Here, InStr(Here, "$") + 1, InStr(2, Here, "$") - 2)
End Function

D.h. es werden alle Spalten eingelesen bei denen in Zeile1 was steht.
In der Gültigkeitszelle ist jetzt aber nicht jede Spalte einzeln zum Auswählen mit DROPDown drinnen sondern der Uebergabestring komplett, d.h. z.B. C;D;E;F;E

Warum klappt das nicht??

Danke Matze


1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Daten-Gültigkeit per VBA
14.06.2003 19:29:18
L.Vira

Schöner bug, den es auch noch in Excel 2000 gibt. Das klappt nur, wenn du die Liste über den eingebauten Dialog eingibst.
Wenns nur um einige wenige Zellen geht, kannst du die Krücke benutzen. Die Zellen müssen markiert sein:

Option Explicit
Sub machs()
Application.SendKeys ("{EINGABE}")
CommandBars.FindControl(ID:=2034).Execute
End Sub

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige