Listbox scrollen per VBA-Code
#1
Guten Tag.

Eine Userform (UserForm1) enthält eine Listbox (lstDatum), in die fortlaufend Datumswerte vom z.B. 01.01.2015 bis zum aktuellen Tagesdatum eingelesen werden. Das aktuelle Datum steht dabei an letzter Stelle der Liste (ListCount - 1) und ist selektiert. Man kann in der Listbox mit dem Scrollbalken nach oben scrollen und ein älteres Datum selektieren. Um wieder schnell auf das aktuelle Tagesdatum zu gelangen und es anzuzeigen, gibt es den Schalter "Heute" (cmdHeute), der wie folgt hinterlegt ist:

Private Sub cmdHeute_Click()
    UserForm1.lstDatum.Selected(UserForm1.lstDatum.ListCount - 1) = True
End Sub

Bei Betätigung dieses Schalters soll also der letzte Listeneintrag selektiert und die Daten derListbox nach unten gescrollt werden. Das funktioniert auch. Jetzt mein Problem:

Wenn man in der Listbox nach oben scrollt ohne einen anderen Eintrag zu selektieren und möchte wieder mit Hilfe des Schalters "Heute" das aktuelle Tagesdatum anzeigen, funktioniert das nicht. Es passiert garnichts. Der letzte Listeneintrag ist nach wie vor selektiert, wird aber nicht angezeigt. Was ich also suche, ist ein Code, der die Liste ans Ende scrollt.
Top
#2
Hallo,
Private Sub cmdHeute_Click()
 With lstDatum
   .ListIndex = -1
   .ListIndex = .ListCount - 1
 End With
End Sub
Gruß Uwe
Top
#3
Danke Uwe. Darauf wäre ich nicht gekommen, da ich nicht wusste, dass ListIndex = -1 eine Markierung in der Listbox entfernt und dass der zu markierende Listeneintrag nicht bereits markiert sein darf.
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste