Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
860to864
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
860to864
860to864
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Werte zu Datum und Uhrzeit zusammenfassen

Werte zu Datum und Uhrzeit zusammenfassen
14.04.2007 18:14:15
AliBaba

Aus einer externer Anwendung bekomme ich die Werte für Jahr, Monat, Tag, Stunde, Minute, Sekunde und Milisekunde in VBA unter Excel.
Mit "DateSerial" kann ich Jahr, Monat, und Tag zu einem Datum zusammenfassen. Mit "TimeSerial" kann ich Stunde, Minute und Sekunde zu einer Uhrzeit zusammenfassen. Ich kann die beiden auch addieren und in einer Excel-Zelle als DatumUhrzeit anzeigen lassen.
Aber bisher habe ich keine Möglichkeit gesehen, auch die Milisekunden ins Spiel zu bringen.
Ist das überhaupt möglich unter VBA?
Ich meine, ist es möglich, alle Datum und Uhrzeit (inkl. Milisekunden) zu einer Variable zusammenzufassen und mit dieser Variable berechnungen anzustellen (z.B. Subtraktion, um eine Zeitdifferenz zu erhalten.)?
Mein zweites Problem:
In Excel kann ich manuell einer Zelle z.B. eine Datumsformat oder Uhrzeitformat zuordnen, so dass die Zelle die Zahlen als Datum oder Uhrzeit interpretiert und entsprechend anzeigt.
Wie kann ich das von VBA aus auch erreichen, dass die Zelle mir etwa in der Format "tt.mm.jjjj hh:mm:ss.xxx" den Zeitpunkt anzeigt?
Gruss
Ali

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

Betreff
Datum
Anwender
Anzeige
AW: Werte zu Datum und Uhrzeit zusammenfassen
14.04.2007 19:00:40
Josef Ehrensberger
Hallo Ali,
vielleicht so.
Tabelle1

AW: Werte zu Datum und Uhrzeit zusammenfassen
15.04.2007 12:27:59
AliBaba
Hallo Sepp
Danke für deinen Tip.
Den Wert für Milisekunden durch 86400000 zu teilen und auf Datum+Zeit dazuzuaddieren, war ein guter Tip.
Bei der Gelegenheit habe ich auch gelernt; die Zelle muss als TT.MM.JJJ hh:mm:ss,000 formatiert werden, um auch die Milisekunden anzuzeigen.
Wenn ich deinen Vorschlag im Excel direkt eingebe, funktioniert er auch wunderbar. Die Milisekunden werden korrekt angezeit.
Wenn ich aber dasselbe mit VBA realisiere, etwa so:
Cells(1, 1) = DateSerial(Jahr, Monat, Tag) + TimeSerial(Stunde, Minute, Sekunde) + MiliSekunde / 86400000
wobei MiliSekunde eine Variant-Variable ist und alle anderen Integer.
Es werden alle Daten korrekt angezeigt. Nur nicht der Milisekunde-Anteil. Er wird nicht angezeigt.
Obwohl MiliSekunde-Variable definitif einen Wert zwischen 0 und 999 enthält, wird sie als 000 dargestellt.
Dabei habe ich die Format der Zelle manuell auf TT.MM.JJJ hh:mm:ss,000 gestellt.
Ich weiss noch nicht rausgefunden, wie man die Format einer Zelle mit Hilfe von VBA festlegen kann.
Gruss
Ali

Anzeige
AW: Datum, Uhrzeit, Millisek. in Zelle
15.04.2007 13:13:58
Erich G.
Hallo Ali,
probier mal


Sub Eintrag()
Dim dblW As Double
dblW = DateSerial(Jahr, Monat, Tag) _
+ TimeSerial(Stunde, Minute, Sekunde) + MiliSekunde / 86400000
Cells(1, 1) = dblW
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

AW: Datum, Uhrzeit, Millisek. in Zelle
15.04.2007 15:42:30
AliBaba
Hallo Erich.
JA! JA! Und wieder JA!
Es funktioniert so, wie du vorgeschlagen hast.
Der Trick dabei: Die Variable muss vom Typ "Double" sein. Ich hatte immer mit Variablentyp "Date" probiert gehabt.
Anscheinend wird bei Gleitkommazahl die Vorkommastellen für das Datum und Nachkommastellen für die Uhrzeit verwendet. Da muss muss aber noch weiterlesen.
Vielen Dank für deine Hilfe.
Meine zweite Frage ist noch offengeblieben. Wie kann ich von Visual Basic aus (VBA) eine Excel-Zelle formattieren, so dass der Zahlenwert der Zelle in Datumsformat angezeigt werden kann?
Welche Stichworte wären für diesen Zweck in der Hilfedatei geeignet?
Gruss
Ali

Anzeige
AW: Datum, Uhrzeit, Millisek. in Zelle
15.04.2007 17:19:26
Josef Ehrensberger
Hallo Ali,
dazu brauchst du doch nur den Rekorder anwerfen, wenn du eine Zelle Formatierst.
In deinem Fall geht das so.
Sub Eintrag()
Dim dblW As Double
dblW = DateSerial(2007, 4, 15) _
    + TimeSerial(17, 34, 22) + 225 / 86400000
Cells(1, 1) = dblW
Cells(1, 1).NumberFormat = "dd/mm/yyyy hh:mm:ss.000"
End Sub

Gruß Sepp

Anzeige

332 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige