Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

Listbox mit Datum

Forumthread: Listbox mit Datum

Listbox mit Datum
04.04.2025 17:03:12
Peter
Hallo zusammen
Ich habe eine Userform, die 2 Listboxen lBo02 (von Datum) und lBo03 (bis Datum) enthält.
Das "Bis Datum" muss mind. 5 Tage später sein als das "von Datum" (funktioniert) siehe Makro Workbook.open()

Beispieldatei
https://www.herber.de/bbs/user/176597.xlsm

Mein Problem
Wenn ich mit der Bildlaufleiste von lBo02 zb 20 Tage nach oben gehen, wird in lBo03 zwar der richtige Tag selektiert aber nicht angezeigt, weil das Datum nicht im angezeigten Bereich von lBo03 liegt.
Dasselbe, wenn ich mit dem Schieber von lBo03 weit nach unten gehe, sehe ich in lBo02 kein selektiertes Datum

Mein Lösungsansatz: lBo03.TopIndex = lBo03.ListIndex, das bringt zwar das gewählte Datun in den sichtbaren Bereich von lBo03, aber wenn ich in lBo02 zB den 1.05.25 wähle, wird ein anderer Tag selektiert > siehe Makro.

Ich habe versucht, mein Problem verständlich zu formulieren, was gar nicht so einfach war - ich hoffe, ihr versteht (mit dem Makro zusammen) was ich meine.

Hat jemand eine Idee wie ich das in den Griff bekomme.
Vielen dank
Pepi
Anzeige

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Listbox mit Datum
04.04.2025 17:28:39
daniel
Hi
nein, ich verstehe dein Problem nicht.
vielleicht wäre es sinnvoller, nur ein Datum wählen zu können (Startdatum) und dann die gewünschte Dauer einzugeben(5 Tage) womit das Enddatum dann berechnet und einfach nur in einer Textbox ausgegeben wird.
Gruß Daniel
AW: Listbox mit Datum
04.04.2025 18:53:21
Peter
Hallo Daniel
Die Zeit zwischen vonDat und bisDat sind mind. 5 Tage, es können auch 20, 100 sein.
lg Pepi
Anzeige
AW: Listbox mit Datum
04.04.2025 19:15:24
Daniel
Ich würde erstmal jede Automatik rausnehmen und stattdessen vor abschließen des Gesamtvorgangs eine Prüfung einbauen, ob die gewählten Datumswerte zueinander passen.

Ich würde höchsten im Klick-Event der Startlistbox den Top-Index der EndeListbox auf das frühestmögliche Datum setzen, dies aber auch nur dann, wenn noch kein Enddatum ausgewählt wurde (Listindex = -1)

Gruß Daniel
Anzeige
AW: Listbox mit Datum
04.04.2025 17:34:02
Alwin Weisangler
Hallo Peter,

ich kann dein Problem bei Nutzung auf/ab Tasten nicht nachstellen, dass der selektierte Wert im Fenster der Listboxen sauber mitläuft.
Was natürlich nicht ohne die Zuhilfenahme API nicht funktioniert ist mit der Maus die Bildlaufleiste der Listbox zu schieben und zu erwarten, dass die 2. Listbox da mitläuft.

Man könnte aber ein Control (Bildlaufleiste) nutzen und via dyn. erzeugten Textboxen eine Listbox simulieren und den Wert des Schiebers nutzen. Die Selektierei der passenden Werte muss den entsprechenden Textboxen zugewiesen werden. Das geht schon, ist aber aufwendig.

Der einfachste Weg ist eine Listbox und der passende Wert in einer Textbox berechnet ausgeben. Um dies in beiden Richtungen möglich zu machen eine Checkbox zwecks Richtungsauswahl setzen und das wars.

Gruß Uwe
Anzeige
AW: Listbox mit Datum
04.04.2025 18:51:27
Peter
Danke Uwe
Leider ist mir Dein Lösungsansatz zu kompliziert - versteh ihn einfach nicht.
Der selektierte Wert muss nicht mitlaufen. Mit dem Verschieben der Bildlaufleiste können alle vorhandenen Werte angezeigt werden. Wenn der gewünschte Wert im Fenster erscheint, kann er angeklickt, dann wird auch der 2. Wert berechnet und selektiert.

Das mit der Listbox und Textbox versteh ich nicht, wie du das meinst.
lg Pepi
Anzeige
AW: Listbox mit Datum
04.04.2025 23:18:09
Peter
Hallo Uwe (zum 2.)
Ich glaube jetzt ist mir der Groschen gefallen mit "Am einfachsten ist ..."
Ja genau, ein Spinbutton oder Listbox, das Datum in ein Textfeld schreiben, dann wieder auslesen
wird gemacht - das sollte ich locker schaffen - vielen Dank
und sorry für die lange Leitung

mfg
Pepi
Anzeige
AW: Listbox mit Datum
04.04.2025 17:41:41
Yal
Hallo Peter,

warum haben beide Listbox dieselbe Einträge, wenn in einer davon nie die letzten 5 sein dürfen und in die andere nie die ersten 5.
Warum hast Du 2 Listbox, wenn sowieso immer 5 Tage dazwischen sein muss. Wenn nicht dann immer Ende-Liste dynamisch neu erzeugen.

Befülle direkt zwei Arrays anstatt zu splitten.
Workbook_Open sollten nichts anderes als uAbs.Show haben.
Die Initialisierung von uAbs gehört in Userform_initialize

in Codepane von "uAbs":
Private Sub UserForm_Initialize()

Dim j As Integer
Dim Arr1(0 To 100) As Date
Dim Arr2(0 To 100) As Date

Application.WindowState = xlMaximized 'Ne190107
For j = 0 To 100
Arr1(j) = Date - 5 + j
Arr2(j) = Date + j
Next
lBo02.List = Arr1
lBo03.List = Arr2
End Sub


daraus der reduzierten Workbook_Open:
Private Sub Workbook_Open() 'Su210130, Su200704, Su200304, Su120202

uAbs.Show
End Sub 'Workbook_open()


VG
Yal
Anzeige
AW: Listbox mit Datum
04.04.2025 18:57:14
Peter
Hallo Yal
Du bist ganz schön spitzfindig.
Dass die ersten 5 und die letzten 5 Tage nicht benutzt werden können kann, das bringe ich aber selber hin.
Dass der Code in Workbook.open in das Userform gehört, kann ich verstehen - kann ich gerne anpassen - doch meine Version läuft grossartig.

Leider bist du nicht auf meine Frage eingegangen. Trotzdem Danke.

lg Pepi
Anzeige
AW: Listbox mit Datum
04.04.2025 19:19:58
Yal
Hallo Peter,

eine Frage, Du meinst, einen Satz die am Ende mit einem Fragezeichen endet?
Liest bitte deine "Fragestellung" nochmal und erkläre mir, was ich überlesen habe.

Klar, Du darfst dich beschweren, dass mein Geschwafel nicht weiterbringt, aber dein Nachtrag bringt keine einzige Information, die uns näher zu der Lösung führt.

Ich stelle nicht etwas in frage, weil ich es blöd oder nutzlos finde, sondern sodass Du selber diese Frage reflektierst und eventuell einen neuen Blickwinkel findest, die ich aus der Fern sowieso nicht sehen kann. Ja klar, es hört sich provokant an: Ziel ist es, dass Du darauf reagierst. Genauer gesagt: dass Du darauf konstruktiv reagierst.

Denk dran: Du suchst nach eine Lösung. Nicht wir.


VG
Yal
Anzeige
AW: Listbox mit Datum
04.04.2025 22:50:22
Peter
Guten Abend zusammen
Es tut mir leid, dass ich beim letzten Tread den falschen Ton erwischt habe - ich wollte niemanden kritisieren oder verletzten.
Ich bin Euch allen sehr dankbar, dass ihr Eure Zeit und Euer Können Menschen wie mir (mit beschränkten Kenntnissen in VBA) zur Verfügung stellt.
So konnte ich schon viele tolle Programme in einer Qualität erstellen, wie ich es selber nie hinbekommen hätte. Viele davon benutze ich Jahren regelmässig - Herzlichst.

Zu meiner Problembeschreibung
Ich glaube, wenn ihr mit dem Makro spielt, seht ihr schnell was ich meine. Wenn man beim oberen (lBo02) auf das nächste Datum klickt wird beim unteren (lBo03) das nächste Datum selektiert. Umgekehrt, wenn man beim unteren(lBo03) auf das vorhergerige Datum klickt wird auch beim oberen (lBo02) das vorhergehende Datum gewählt. Aber nur, wenn die beiden Daten 5 Tage auseinanderliegen, was beim Start von workbook.open() der Fall ist. (alles perfekt!)

Wenn ich aber bei der oberen Listbox (lBo02) mit der Bildlaufleiste zb 20 Tage weiter nach unten gehe und dann ein Datum wähle, wird zwar bei lBo03 (untere Listbox) das Datum gewählt das 5 Tage grösser ist als in lBo02. Doch es ist nicht im sichtbaren Bereich. Es erscheint erst, wenn ich mit der Bildlaufleist lBo03 nach unten scrolle. > diesen Prozess wollte ich mit dem Code: "lBo02/03.Top = lBo02/03.Listindex" in das Makro einbauen. , (aktuell inaktiv)

Bitte aktiviert diese beiden Zeilen, dann seht ihr das Problem beim Anklicken eines Datum (Fehler nur wenn die beiden Datum 5 Tage auseinander liegen) Es ist fast nicht möglich mit Worten zu beschreiben, was das Problem ist - Sorry.
Ich hoffe, dass ihr mir noch etwas Gnade schenkt.
vielen Dank Pepi
Anzeige
Anzeige
Anzeige
Live-Forum - Die aktuellen Beiträge
Datum
Titel
14.05.2026 13:31:09
14.05.2026 09:50:42
13.05.2026 19:14:18