Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

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.
Antworten Top
#2
Hallo,
Private Sub cmdHeute_Click()
 With lstDatum
   .ListIndex = -1
   .ListIndex = .ListCount - 1
 End With
End Sub
Gruß Uwe
Antworten 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.
Antworten Top


Gehe zu:


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