ich habe in VBA ein Formular mit einer Listbox erstellt und diese auf Multiselect eingestellt.
Wenn ich nun das Formular über einen Button eines Tabellenblattes öffne, werden mir alle Listeneinträge korrekt angezeigt.
Allerdings - und das ist nun das Problem - es sind immer der erste und der achte Eintrag markiert (von ca 200), was aber nicht sein darf.
Starte ich das Formular aus VBA heraus, wird nichts markiert.
Ich finde einfach den Fehler nicht. Woran könnte das liegen?
Hier der Code:
Private Sub UserForm_Initialize()
Dim wkb As Workbook
Dim wks_Vor As Worksheet
Dim wks_Red As Worksheet
Dim i&, lzVor&, lzRed&, lsRed&, x&
Set wkb = ThisWorkbook
Set wks_Vor = wkb.Worksheets("Vorträge")
Set wks_Red = wkb.Worksheets("Redner")
lzVor = wks_Vor.Cells(Rows.Count, 2).End(xlUp).Row
lsRed = wks_Red.Cells(2, Columns.Count).End(xlToLeft).Column
Me.ListBox1.ColumnCount = 3
Me.ListBox1.ColumnWidths = "20;280;70"
x = 0
For i = 2 To lzVor
With Me.ListBox1
.AddItem ""
.List(x, 0) = wks_Vor.Range("A" & i)
.List(x, 1) = wks_Vor.Range("B" & i)
.List(x, 2) = wks_Vor.Range("C" & i)
End With
x = x + 1
Next i
'Falls irgendwelche Einträge markiert sein sollten, werden sie hier unmarkiert
For i = 0 To Me.ListBox1.ListCount - 1
Me.ListBox1.Selected(i) = False
Next i
e = Selection.Rows.Row
Me.Caption = "Vortragsthemen für " & wks_Red.Cells(e, 1) & " zuordnen"
'Die Vorträge markieren, die beim Vortragsredner bereits eingetragen sind
For i = 0 To Me.ListBox1.ListCount - 1
For x = 9 To lsRed
If wks_Red.Cells(e, x) = "x" Then
If Me.ListBox1.List(i, 0) = wks_Red.Cells(2, x) Then
Me.ListBox1.Selected(i) = True
End If
End If
Next x
Next i
End Sub
Vielen Dank schon mal für die HilfeGruß Oisse