Dieses Problem bekomme ich einfach nicht gelöst und es macht mich total kirre.
Kurze Beschreibung: Ich habe eine benutzerdefinierte Symbolleiste mit einer DropDown-Liste programmiert, mit der ich auf einem Tabellen-Blatt Namen von Großhändlern eintragen kann. Um dieser Liste Einträge hinzuzufügen bzw. vorhandene Einträge zu bearbeiten oder zu löschen, habe ich mir ein UserForm programmiert, welches eine ListBox und einige TextBoxen enthält.Beim Aufruf des UserForm werden die Namen der Großhändler in die ListBox geladen und die weiteren Informationen zu den Händlern werden in die TextBoxen geschrieben.
So, das funktioniert auch alles super, und jetzt kommt endlich das eigentliche Problem: Nach dem Füllen der ListBox stelle ich den ListIndex ein, aber der dazugehörige Eintrag wird in der Liste nicht markiert. Es wird gar kein Eintrag markiert, man kann nur das Fokus-Rechteck sehen.
Wer kann mir sagen, wie ich den gewünschten Eintrag programmgesteuert auswählen kann?
TextBoxen enthält.Beim Aufruf des UserForm werden die Namen
der Großhändler in die ListBox geladen und die weiteren
Informationen zu den Händlern werden in die TextBoxen
geschrieben.
So, das funktioniert auch alles super, und jetzt kommt endlich
das eigentliche Problem: Nach dem Füllen der ListBox stelle
ich den ListIndex ein, aber der dazugehörige Eintrag wird in
der Liste nicht markiert. Es wird gar kein Eintrag markiert,
man kann nur das Fokus-Rechteck sehen.
Hallo Carsten,
was genau meinst du mit „stelle ich den ListIndex ein“?
Kannst du eine kleine Beispielmappe hochladen mittels FAQ:2861
Nein, das ist die Anweisung die ich verwende. Normalerweise sollte dann in der ListBox der Eintrag mit dem Index 5 ausgewählt sein, aber leider sieht es so aus wie hier:
In den Textfeldern kannst du erkennen, das der eintrag mit dem Index 5 eigentlich eigestellt ist, aber der Eintrag ist in der ListBox nicht markiert.
Hier noch der „verantwortliche“ Code:
Dim tmpItem As Long
Dim tmpItemData As Long
With lbxDialog
.Clear
If CLng(shtHaendler.Cells(1, 1)) = 0 Then
.AddItem Nichts
Exit Sub
End If
ReDim Data(2 To 9, 0 To CLng(shtHaendler.Cells(1, 1) - 1))
For tmpItem = 1 To CLng(shtHaendler.Cells(1, 1))
.AddItem shtHaendler.Cells(tmpItem, 2)
For tmpItemData = LBound(Data(), 1) To UBound(Data(), 1)
Data(tmpItemData, tmpItem - 1) = shtHaendler.Cells(tmpItem, tmpItemData)
Next
Next
.ListIndex = cbxHaendler.ListIndex - 1
.Value = cbxHaendler.ListIndex - 1
.TopIndex = .ListIndex
.SetFocus
End With
Falls die Info interessiert:
Das Festlegen des ListIndex darf erst im „UserForm_Activate“-Ereignis gemacht werden und nicht bereits im „UserForm_Initialize“-Ereignis.