Veranstaltungszeit einfügen


Croix-aigle

Grünschnabel
Hallo zusammen,

ich will eine Veranstaltung mit Datum und Uhrzeit Name und Ort über VBA erstellen und dies Korrekt in der Tabelle einpflegen.
Aktuell sieht es so aus:
.Cells(intErsteLeereZeile, 1).Value = CDate(txtDatum.Value)
.Cells(intErsteLeereZeile, 2).Value = Me.txtUhr.Value
.Cells(intErsteLeereZeile, 3).Value = Me.txtVeranstaltung.Value
.Cells(intErsteLeereZeile, 4).Value = Me.txtOrt.Value

Das CDate funktioniert, ich sehe das Datum und sverweis erkennt es.
Bei der Uhrzeit macht er Datum, obwohl ich eine Zahl haben will, wie 12-16 Uhr, keine Minuten. Beginn und Ende in Stunden. Es muss ja auch eine Abkürzung dafür geben.

Gibt es wo eine Tabelle über die Abkürzungen CDate, Me, Format, CCur was die ausgeben?
 

Yaslaw

n/a
Moderator
Die Befehlsübersicht findest du sozusagen in der F1-Hilfe

Datum und Uhrzeit ist dasselbe. Es wird als Double-Zahl gespeichert. Vorkomastellen ist das Datum, Nachkommastellen ist die Zeit.

Der Befehl ist also auch cDate().
Im Direktfenster getestet:
Visual Basic:
? cdate("12:05")
12:05:00 
? cdate("12.05.2019")
12.05.2019 
? cdate("12.05.2019 12:05")
12.05.2019 12:05:00
Wie sieht den die Eingabe in txtUhr aus?
 

Yaslaw

n/a
Moderator
Müsste doch popliger String sein, oder?
Jepp. Aber wenn es wirklich "12-16" drin steht, dann sind das 2 Uhrzeiten.
Das heisst, zuerst den String zerlegen und dann in 2 Felder eintragen.

Wenn nur 12 ohne Minuten drin steht, dann muss man eine Zeit draus machen, da 12 von cDate() nicht als Uhrzeit erkannt wird. Der Befehl TimeValue() gibt einen Fehler aus. Also müsste mit TimeSerial gerechnet werden.
Soviel zum popeliger String, denn genau mit dem beginnen die Probleme

Visual Basic:
? cdate("12")
11.01.1900 

? TimeValue("12:00")
12:00:00 

? TimeValue("12")
#Err 13: Type missmatch

?TimeSerial("12",0,0)
12:00:00
 

Croix-aigle

Grünschnabel
ich will ja nur das die Zeit: 12-16 Uhr so weiter gegeben wird, wie es in txtUhr drin steht. Es soll ja kein Datum usw hinterlegt werden, sondern nur die Zahl und das Wort Uhr dazu.
 

Yaslaw

n/a
Moderator
"12-16" ist aber keine Zahl

Aber wennd u den Text genau so haben willst dann übernimm ihn doch einfach. Dann musst du ja nix Konvertieren.

Eingabe "12-16 Uhr"
Zielwert: "12-16 Ihr"
 

Croix-aigle

Grünschnabel
ok, habs noch mal Probiert mit dem Me.txtUhr.Value. Warum auch immer steht jetzt die Uhrzeit drin und nicht ein Datum von der Vergangenheit oder ein bestimmter Zahlenwert.

Problem wäre damit gelöst. Danke für die Hilfe