Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Datum/Zeit immer mit Sekunden (auch ggf. 00) ausgeben

Datum/Zeit immer mit Sekunden (auch ggf. 00) ausgeben
01.09.2023 10:11:25
BerndWo
Guten Morgen,
als meine erste Frage habe ich ein Problem mit Datum/Uhrzeit in einem wissenschaftlichen Projekt bei der Analyse von großen Datensätzen mit Laborwerten.
Aufgrund der internationalen Nutzer gehe ich die Datensätze immer durch und prüfe um dann auch, um leere Datensätze zu erkennen, etc.
Bisher haben wir nur das Datum ohne Uhrzeit verwendet und das klappte gut.

Neu ist, dass wir nun auch die Uhrzeit aus Stunden und Minuten verwenden möchten, wenn vorhanden. Das entscheidet der Anwender durch die Formatangabe.
Das Datum liegt in einem Array. Das Gesamtprojekt ist so groß, dass ich nicht die ganze Datei hochladen kann.

Codeausschnitt:


Case 4 'Prüft das Testdatum iVar=4 auf Datumsformat (und sortiert aufsteigend)
Dim dformat As String 'für die spezifische regionale Formatierung des Datums

If iCol = 0 Then
'iCol=0 es wurde keine Spalte für Auftragsdatum ausgewählt
For i = 1 To nRows
arrOutput(i, iVar) = sNA 'trotzdem wird der Standarddatensatz komplett mit NA gefüllt
Next
Exit Function
Else
dformat = "dd.mm.yyyy hh:mm" 'wird eigentlich vom Anwender festgelgt
For i = 1 To nRows
If VBA.IsDate(arrData(i, iCol)) = False Or VBA.CStr(arrData(i, iCol)) = Empty Then
' leere oder unplausible Datensätze mit NA ersetzen
arrOutput(i, iVar) = sNA
Else
arrOutput(i, iVar) = Format(CDate(arrData(i, iCol)), dformat)
End If
Next
End If


Jetzt passiert etwas ungewöhnliches: immer wenn z.B. "10.04.2022 00:00" im Ausgangsdatensatz steht, dann wird nur "10.04.2022" übernommen und die
Angaben der Zeit ignoriert. Zugegeben, es gibt nur wenige Datensätze, die genau auf diese Uhrzeit fallen aber wir werten die Daten später mit R aus und das ist da empfindlich, wenn die Uhrzeit doch fehlt.
Die dafür zuständige Codezeile ist:
arrOutput(i, iVar) = Format(CDate(arrData(i, iCol)), dformat)

Wir kann ich in VBA erzwingen, dass immer auch die "00:00" -Uhrzeit ausgegeben wird?

Ich hoffe, dass ich nicht zu viel gesabbelt habe...
Vielen Dank, Bernd
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datum/Zeit immer mit Sekunden (auch ggf. 00) ausgeben
01.09.2023 10:39:53
Oberschlumpf
Hi Bernd,

ich würd es so versuchen:

schreib direkt über der Zeile...


arrOutput(i, iVar) = Format(CDate(arrData(i, iCol)), dformat)

...diesen Code...


If Len(arrOutput(i, iVar)) > 16 Then
arrOutput(i, iVar) = arrOutput(i, iVar) & "00:00"
End If


Hilfts?
Nein? Dann erstell bitte eine Bsp-Datei mit Bsp-Daten und zeig sie hier per Upload.

Ciao
Thorsten
Anzeige
Datum/Zeit immer mit Sekunden (auch ggf. 00) ausgeben
02.09.2023 16:58:51
BerndWo
Hallo Thorsten,
prinzipiell kann man das so machen. Es wäre aber sehr aufwändig, da es international sehr viele Datumsformate gibt und ich für alle
unterschiedlichen Varianten eine eigene Prüfung schreiben müsste.
Ich hatte mir erhofft, Excel zur vollständigen Ausgabe zu zwingen.

Vielen Dank
Bernd
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige