PDA

Vollständige Version anzeigen : Datumsformat für Dateserial & Timeserial


Boefking
21.07.2014, 10:16
Hallo Forum,

ich habe mal wieder ein Problem mit dem Excel Datumsformat und hoffe auf Hilfe! Google konnte diese bislang nicht bringen...

Das Probelm:
Ich versuche über VBA eine Zeitreihe in Tabelle2 in Abhängikeit von Eingaben in Tabelle1 zu erstellen. Die Ausgabe soll das Format "dd/mm/jjjj hh:mm" haben.

Das ganze funktioniert dank zusammenkopiertem Quelltext auch schon recht gut. Mein Problem taucht bei den Zeitstempeln jeweils um 0 Uhr auf. Hier ändert Excel das Format selbstständig auf "dd/mm/jjjj dd/mm/jjjj".

Kennt jemand hierzu eine Lösung? (Bsp im Anhang)

Bitte entschuldigt wenn der Quelltext ein bisschen chaotisch aussieht. Ich bin kein professioneller Programmierer und habe mir den Großteil zusammenkopiert.

Beste Grüße,
Böffie

xlph
21.07.2014, 10:48
Hallo Boefking,

hinter Datumwerten steckt eine Zahl, somit kannst du die Werte summieren.

Sub Zeitstempel_h()
'
' Füllt die Export Reiter mit dem Zeitstempel für STUNDENscharfe Zeitreihen des ausgewählten Monats

Dim intYear As Integer
Dim intMonat As Integer
Dim intTag As Integer
Dim intStd As Integer
Dim intPosition As Long
Dim intOffset As Integer

'Einlesen von Rechnungsmonat und Jahr
intYear = Sheets("Tabelle1").Range("D4").Value
intMonat = Sheets("Tabelle1").Range("C4").Value

'Export_BA_Kauf mit Zeitstempel füllen
With Sheets("Tabelle2")
.UsedRange.Clear

For intTag = 1 To Day(DateSerial(intYear, intMonat + 1, 0))
For intStd = 0 To 23
intPosition = intPosition + 1
.Cells(intPosition, 1) = DateSerial(intYear, intMonat, intTag) + TimeSerial(intStd + 1, 0, 0)
.Cells(intPosition, 1).NumberFormat = "m/d/yyyy h:mm"
.Cells(intPosition, 2).Value = 0
Next intStd
Next intTag

.Rows("1:6").Delete

With .Cells(.Rows.Count, 1).End(xlUp)
For intOffset = 1 To 6
.Offset(intOffset, 0).Value = DateSerial(intYear, intMonat + 1, 1) + TimeSerial(intOffset, 0, 0)
.Offset(intOffset, 1).Value = 0
Next intOffset
End With

End With

End Sub

Boefking
21.07.2014, 11:52
Danke für die einfache Lösung!

Das funktioniert nahezu perfekt. Ich hatte erst noch das Problem, dass jetzt bei den 0-Uhr Zeitstempeln keine Stunden und minuten ausgegeben wurden. Nach Änderung des Datumsformats auf "m/d/yyyy h:mm" ist auch dieses Hindernis überwunden.