Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1736to1740
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

Laufzeitfehler 318 - List - Uhrzeit - ListIndex

Laufzeitfehler 318 - List - Uhrzeit - ListIndex
28.01.2020 13:48:44
Johannes
Hallo,
ich kann die Ursache des Laufzeitfehlers nicht extrahieren... Könnt ihr mir helfen?
Code aus der UserForm_Initialize():
With ComboBox1
.AddItem Format("09:00", "hh:mm")
.AddItem Format("10:00", "hh:mm")
.AddItem Format("11:00", "hh:mm")
.AddItem Format("12:00", "hh:mm")
.AddItem Format("13:00", "hh:mm")
.AddItem Format("14:00", "hh:mm")
End With
For i = 0 To ComboBox1.ListCount
If CDate(ComboBox1.List(i)) = CDate(Sheets(1).Range("D16").Value) Then
ComboBox1.Value = CDate(Sheets(1).Range("D16").Value) ', "hh:mm")
Exit For
End If
Next
Formel in Zelle "D16":
=WENN(D15>0,625;0;WENN(D15 Bezug Zelle "D15": Uhrzeit (z.b. "15:00", Format "hh:mm", direkte Eingabe)
Problem: Für alle Zeiten mittels "D15+2/24" funktioniert alles, also auch 12 Uhr und 13 Uhr. Wenn allerdings "D15-1/24" eintritt, funktioniert nur bis 11 Uhr und ab 14 Uhr, nicht aber 12 oder 13 Uhr ... Warum? Hier versagen meine Excel- und VBA-Kenntnisse.
Vielen Dank für jede Hilfe :)
PS: Mit welchem Zeichen aktiviere ich die Code-Anzeige?
Excel-Version: 1908 Build 11929.20562 (365 ProPlus)

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Laufzeitfehler 318 - List - Uhrzeit - ListIndex
28.01.2020 14:52:44
Matthias
Moin!
Jetzt mal auf die schnelle (hatte in einem anderen Projekt mal ähnliches) liegt das glaube ich an der interen Darstellung von 12 Uhr. Das wird manchmal nicht als 12 Uhr sondern als 0 UHr interpretiert. Deswegen ergibt das da 0 minus 23 Uhr bzw. 13 minus 1 = 12 UHr (was er aber als 0 Uhr ansieht). UNd 0 bzw. 23 UHr sind in deiner Liste nicht vorhanden.
Das jetzt aber nur auf die schnelle. Teste es nachher mal und korrigiere mich vllt.
VG
AW: Laufzeitfehler 318 - List - Uhrzeit - ListIndex
28.01.2020 15:01:41
Johannes
Hey Matthias,
danke für deinen Input. Ich habe aus Spaß mal 24:00/00:00/23:00 hinzugefügt, hat immer noch den Fehler gegeben. Aber ich habe das als Anlass genommen, das CDate() überall zu entfernen und direkt als .Value mit Format zu vergleichen und jetzt geht es. Klärt nicht das Urpsrungsproblem, aber es umgeht das Problem für meinen Nutzen.
Habe jetzt also stehen:
For i = 0 To ComboBox1.ListCount
If CDate(ComboBox1.List(i)) = Format(Sheets(1).Range("D16").Value, "hh:mm") Then
ComboBox1.Value = Format(Sheets(1).Range("D16").Value, "hh:mm")
Exit For
End If
Next
Anzeige
AW: Laufzeitfehler 318 - List - Uhrzeit - ListIndex
28.01.2020 15:36:18
Matthias
Moin!
Wie gesagt, das mit den Zahlen / Uhrzeiten ist manchmal tricky aber war nicht die Ursache deines Fehlers. Der besteht noch. Und zwar liegt es daran, dass du die Schleife von 0 bis zu Anzahl der CB-Einträge durchläufst. Das ist einer mehr als da ist. Der listindext geht bei 0 los, das count zählt aber ab 1. Den SChleifenkopf also so anpassen, dass taucht der Fehler auch später nicht mehr auf.
For i = 0 To ComboBox1.ListCount -1
VG
AW: Laufzeitfehler 318 - List - Uhrzeit - ListIndex
28.01.2020 16:45:42
Johannes
Jetzt funktioniert alles, wie es funktionieren soll. Vielen Dank!
AW: Laufzeitfehler 318 - List - Uhrzeit - ListIndex
28.01.2020 15:54:33
Daniel
HI
die Listbox enthält immer Text.
von daher müsste folgendes reichen (das mit dem Schleifenentwert wurde ja schon geklärt):
With ComboBox1
.AddItem "09:00"
.AddItem "10:00"
End with

For i = 0 To ComboBox1.ListCount - 1
If ComboBox1.List(i) = Format(Sheets(1).Range("D16").Value, "hh:mm") Then
Combobox1.ListIndex = i
Exit For
End If
Next
gruß Daniel
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige