Problem mit xlValidatelist
10.02.2023 20:23:59
Bernd
ich bin hier am Verzweifeln.
Mit folgendem Code erzeuge ich ein Auswahlfeld mit Dropdownliste.
Inhalt dieser Dropdownliste sind fünfzehn Daten (Datum), mit denen ich dann in einem anderen Script weiter arbeiten möchte
Option Explicit
Public Auswahlfeld As Variant, varRecords As Variant
Private Sub Workbook_Open()
Dim dbCheck As String
Dim ldbMDB As Database
Dim lrsMDB As Recordset
Dim lstrAbfrage As String
Dim intNumReturned As Integer
Dim intNumColumns As Integer
Dim intColumn As Integer
Dim intRow As Integer
lstrAbfrage = "SELECT TOP 30 [dbDatenbank].* FROM [dbDatenbank] ORDER BY [dbDatenbank].ID DESC"
Set ldbMDB = OpenDatabase("Pfad zur Datenbank.accdb")
Set lrsMDB = ldbMDB.OpenRecordset(lstrAbfrage, dbOpenSnapshot)
lrsMDB.MoveFirst
varRecords = lrsMDB.GetRows(30)
intNumReturned = UBound(varRecords, 2) + 1
intNumColumns = UBound(varRecords, 1) + 1
'Auswahlfeld-Array füllen und Werte schreiben
ReDim Auswahlfeld(intNumReturned - 15)
For intRow = 0 To intNumReturned - 15
Auswahlfeld(intRow) = varRecords(1, intRow)
Next intRow
With Worksheets(wsName).Range("AF2").Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlEqual, Formula1:=Join(Auswahlfeld, ",")
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
End Sub
Wenn ich mein Script im Debug-Modus laufen lasse, bzw. bei geöffnetem Editor, klappt alles prima.
Wenn ich aber das Workbook neu öffne, dann steht in dem Feld der komplette String und es ist keine Auswahlliste zu sehen.
Manchmal steht auch nur das erste Datum in der Zelle, in dem Dialogfenster der Datenüberprüfung ist aber der komplette String eingetragen.
Ich weiß echt nicht weiter.
Was mache ich falsch?
Wer hat Rat?