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

Werte zu Datum und Uhrzeit zusammenfassen

Forumthread: 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

Anzeige

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

Anzeige
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
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Werte zu Datum und Uhrzeit zusammenfassen


Schritt-für-Schritt-Anleitung

Um Werte für Jahr, Monat, Tag, Stunde, Minute, Sekunde und Milisekunde in Excel zu Datum und Uhrzeit zusammenzuführen, kannst du die folgenden Schritte befolgen:

  1. Excel VBA öffnen: Drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.

  2. Neues Modul hinzufügen: Klicke mit der rechten Maustaste auf "VBAProject (deine Arbeitsmappe)" und wähle "Einfügen" > "Modul".

  3. Code eingeben: Kopiere den folgenden VBA-Code in das Modul:

    Sub DatumUndUhrzeitZusammenfuehren()
       Dim Jahr As Integer
       Dim Monat As Integer
       Dim Tag As Integer
       Dim Stunde As Integer
       Dim Minute As Integer
       Dim Sekunde As Integer
       Dim MiliSekunde As Long
       Dim dblW As Double
    
       ' Beispielwerte
       Jahr = 2023
       Monat = 10
       Tag = 15
       Stunde = 12
       Minute = 30
       Sekunde = 45
       MiliSekunde = 500
    
       ' Datum und Uhrzeit zusammenführen
       dblW = DateSerial(Jahr, Monat, Tag) + TimeSerial(Stunde, Minute, Sekunde) + MiliSekunde / 86400000
       Cells(1, 1) = dblW
       Cells(1, 1).NumberFormat = "dd.mm.yyyy hh:mm:ss.000"
    End Sub
  4. Code ausführen: Drücke F5, um den Code auszuführen und die Zelle A1 mit dem kombinierten Datum und der Uhrzeit zu füllen.


Häufige Fehler und Lösungen

  • Milisekunden werden nicht angezeigt: Stelle sicher, dass die Zelle das richtige Format hat. Verwende "dd.mm.yyyy hh:mm:ss.000" als Format.

  • Datumsformat nicht korrekt: Überprüfe, ob der NumberFormat der Zelle richtig gesetzt ist. Es muss nach dem Setzen des Wertes erfolgen.


Alternative Methoden

Eine alternative Methode, um Datum und Uhrzeit in Excel zusammenzuführen, ist die Verwendung von Formeln direkt in Excel-Zellen:

=DATUM(Jahr; Monat; Tag) + ZEIT(Stunde; Minute; Sekunde) + (MiliSekunde / 86400000)

Diese Formel kann auch in eine Zelle eingegeben werden, um die Werte zusammenzuführen, ohne VBA zu verwenden.


Praktische Beispiele

Hier ist ein praktisches Beispiel, wie du Datum und Uhrzeit in Excel zusammenführen kannst:

  • Beispiel 1: Für das Datum 15.10.2023, 12:30:45 und 500 Millisekunden.

    Jahr = 2023
    Monat = 10
    Tag = 15
    Stunde = 12
    Minute = 30
    Sekunde = 45
    MiliSekunde = 500
  • Beispiel 2: Zusammenführen von Monat und Jahr für die Anzeige in der Zelle.

    =TEXT(DATUM(Monat; Jahr; 1); "mmmm yyyy")

Tipps für Profis

  • Wenn du viele Datumswerte zusammenführen musst, erwäge die Verwendung von Arrays in VBA, um die Leistung zu verbessern.
  • Nutze die DateDiff-Funktion, um Zeitdifferenzen zwischen zwei datierten Werten zu berechnen.
  • Verwende den Debug.Print-Befehl, um Variablen während der Ausführung des Codes zu überwachen und Fehler zu identifizieren.

FAQ: Häufige Fragen

1. Wie formatiere ich eine Zelle in VBA?
Du kannst die Formatierung einer Zelle mit Cells(1, 1).NumberFormat = "dd.mm.yyyy hh:mm:ss.000" setzen.

2. Warum wird mein Datum nicht korrekt angezeigt?
Überprüfe das Zellenformat und stelle sicher, dass die Werte in der richtigen Reihenfolge in DateSerial und TimeSerial eingesetzt werden.

3. Kann ich auch andere Formate verwenden?
Ja, du kannst jedes gültige Datums- und Uhrzeitformat verwenden, das Excel unterstützt.

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