Programmieren - alles kontrollieren 4.938 Themen, 20.667 Beiträge

Vb6 Laufzeitfehler 380

torsten40 / 6 Antworten / Flachansicht Nickles

hallo ich habe folgendes Problem
Ich habe ein kleinen code und bin da halt am testen und komme nicht weiter.
1 Command Button
1 Listbox Controll

Privat Sub Command1_click()
List1.ListIndex = List1.ListIndex +1
end sub

Halt das der selectierte Eintrag immer einen Eintrag herunter geht.

So wenn ich nun in der Listbox einige Werte habe, zb

1
2
3
4
5
6

so wenn der nun bei 6 angekommen ist, kommt ein Fehler "Laufzeitfehler 380"

ich habe es bisher immer so gehalten das ich immer ein "--End--" dazugebackt habe und dann gesagt habe

If List1.text = "--End--" then
list1.selected(0) +1
end if

also das es dann wieder oben beginnt. Doch wenn ich nun zb einige Werte in die Listbox drunter eintrage dann steht diese --End-- in der Mitte und fängt ab da halt wieder oben an. zb

1
2
3
--End--
4
5

So meine Frage ist nun wie kann man das ändern?
Oder kann man auch sagen das "--End--" immer unten in der Listbox ist, egal ob man noch einen Eintrag dazuschreibt oder nicht?

So gesehen soll die Listbox wieder oben anfangen wenn der Untern angekommen ist.
Und nicht schmunzeln ich bin da noch Anfänger :D
Danke

Freigeist
bei Antwort benachrichtigen
Borlander torsten40 „Danke erstmal für beide Hilfen. Vom Prinzip hab ich es. Private Sub...“
Optionen

Heißt also tatsächlich ListCount.
Warum machst Du es nicht mit Modulo. Das ist deutlich einfacher und übersichtlicher:

List1.ListIndex = (List1.ListIndex + 1) % List1.ListCount;
oder
List1.ListIndex = (List1.ListIndex + 1) MOD List1.ListCount;

Mehr braucht es nicht für die gewünschte Funktionalität!

bei Antwort benachrichtigen