Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1240to1244
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Uhrzeit auswahl in Listbox

Uhrzeit auswahl in Listbox
hary
Hallo alle zusammen
In einer Listbox Spalte stehen unterschiedliche Uhrzeiten. ich moechte das immer die Zeile mit aktueller Uhrzeit plus eine Std. ausgewaehlt wird. das bekomm ich hin mit:

With ListBox3
For i = 0 To .ListCount
If Hour(.List(i, 2)) = Int(Hour(Time) + 1) Then
.ListIndex = i
Exit For
End If
Next
End With

Problem ist nur das nicht alle Std. vorhanden sind. Bsp. 14:45 15:01 16:21
Wenn die Jetztzeit 12:00 Uhr ist, laeuft es ja auf einen Fehler.
Wie kann ich diesen abfangen bzw. ein anderer Code der zur naechsten Uhrzeit spring.
Bin auf keinen gruenen Zweig gekommen. :-(
gruss hary

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Uhrzeit auswahl in Listbox
29.12.2011 15:37:15
Oberschlumpf
Moin Hary
Zumindest ich versteh es aufgrund deiner Beschreibung noch nicht.
.ListIndex = i wird doch nur ausgeführt, wenn in den Listboxeinträgen ein Wert gefunden wird, der Hour(Time) entspricht.
Bsp:
Uhrzeit = 12:00
ListIndex nur dann, wenn wenigstens ein Eintrag mit 13:? in Liste vorhanden.
Wieso kommt es also zum Fehler?
Ich fänd ne Bsp-Datei schön.
Ciao
Thorsten
AW: Uhrzeit auswahl in Listbox
30.12.2011 08:42:59
hary
Hallo Thorsten
Sry, das ich mich erst jetzt melde. Die Grippe hat mich hingerafft.
Die Listbox(3 spaltig) ist in einem UserForm. Mit dem Activate Ereigniss wird immer auf den Eintrag Jetztzeit plus 1 Std. gesprungen. Das klappt ja auch wunderbar. Nur, wenn die Uhrzeiten so aussehen nur halt in der Listbox:
Dienstag
 C
1206:24
1306:58
1407:03
1507:25
1609:02
1709:03
1811:02
1911:48
2012:03

Tabellendarstellung in Foren Version 5.30


Da fehlt 8 Uhr und 10 Uhr da kommt dann der Fehler. Also Jetztzeit(7Uhr) plus eine Std. gibt's ja nicht. Dann soll er 9Uhr nehmen.
wenn mein Koerper wieder mitspielt(komme noch nicht in die Hufe) werde ich es mal so probieren.

If Hour(.List(i, 2)) >= Int(Hour(Time) + 1) Then
Vlt gibt es ja noch einen anderen Trick.
gruss hary
Anzeige
Bau doch eine Fehlerroutine ein ...
30.12.2011 09:28:58
Matthias
Hallo hary
... in der Du eine Variable hochzählst (immer +1)
Userbild

Option Explicit
Public i&, t&
Private Sub UserForm_Activate()
On Error GoTo AndereZeit
t = 1
wiederholen:
With ListBox1
For i = 0 To .ListCount
If Hour(.List(i, 1)) = Int(Hour(Time) + t) Then
.ListIndex = i
Range("B28") = i + 1
Exit For
End If
Next
End With
Exit Sub
AndereZeit:
t = t + 1
GoTo wiederholen
End Sub

Zeiten ab 23:00 könnten da noch Probleme machen oder wenn es überhaupt keine Einträge gibt die größer der jetzigen Stund sind. Hab noch nicht ausgiebig getestet!
Vielleicht hilfts ja aber als Ansatz
https://www.herber.de/bbs/user/78133.xls
Gruß Matthias
Anzeige
AW: Bau doch eine Fehlerroutine ein ...
30.12.2011 09:52:33
hary
Hallo Matthias
Danke, werd ich testen. gebe dann bescheid. Das mit dem erreichen von 23Uhr bekomme ich hin, da wird wieder der erste Eintrag in der Listbox ausgewaehlt.
Rueckmeldung kann aber 2 Tage dauern, da:
Rechts neben der Maus Ibu 400 Tabletten, Links neben der Maus JHP Roedler zum Inhalieren und vorm Bildschirm, einer der kaum aus den Augen gucken kann. ;-))
gruss hary
habs mal etwas vereinfacht
31.12.2011 10:58:36
Matthias
Hallo hary
Option Explicit
Private Sub UserForm_Activate()
Dim i As Byte
On Error GoTo ErrExit
With ListBox1
For i = 0 To .ListCount
If Hour(.List(i, 1)) > Hour(Time) Then
.ListIndex = i
Exit For
End If
Next
End With
Exit Sub
ErrExit:
ListBox1.ListIndex = 0
End Sub
Gruß & baldige Genesung
Matthias
Anzeige
AW: habs mal etwas vereinfacht
31.12.2011 14:16:46
hary
Hallo Matthias
Jetzt wo ich Deine Loesung nur lese,sehe ich meinen Gedankenfehler.
Warum nur hab ich "Hour(Time)+1" genommen? Wenn ich in einer Spalte die Stunden auslese und die naechstgroessere brauche, ist es doch sch....egal ob ich plus 1 oder plus 2 nehme. Reicht doch:

> Hour(Time)

Danke und guten Rutsch
Gruss hary

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige