Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zeit in zehntel od hundertstel

Forumthread: Zeit in zehntel od hundertstel

Zeit in zehntel od hundertstel
26.05.2005 11:07:58
michael
Hallo,
wie erhalte ich die Zeit in zehntel od hundertstel in einem Macro?
mit = Time erhalte ich nur hh:mm:ss oder als hh:mm:ss,0, jedoch erhalte ich nur ,0 nie einen Sekundenbruchteil.
Ich versuche Daten mit einer Messrate von 5/sec mit Excel zu loggen. Ich möchte in der 1. Spalte die zugehörige Zeit ab Spalte 2 die Werte.
Ich habe die Zelle als benutzerdefiniert hh:mm:ss,0 formatiert. Wie heißt der entsprechende Formatbefehl innerhalb eines MAcros?
Danke Michael
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeit in zehntel od hundertstel
26.05.2005 11:50:28
Nepumuk
Hallo Michael,
schau dir mal die Timer - Funktion in der Hilfe an.
Gruß
Nepumuk
AW: Zeit in zehntel od hundertstel
26.05.2005 12:24:09
michael
Hallo Nepumuk,
danke für deinen Tip.
egal ob ich Zeit = Time oder Zeit = Timer probiere ich erhalte nut Zeiten im Sekunden jedoch nicht im Bruchteile von Sekundenformat (laut Hilfe : Unter Microsoft Windows gibt die Timer-Funktion Bruchteile einer Sekunde zurück)
Range("A1") = Timer
Range("A2") = Time
Range("B1") = Format(Timer, "hh:mm:ss,0")
Range("B2") = Format(Time, "hh:mm:ss,0")
Ergebnis:
00:16:52,5 00:33:45,0
12:19:54 PM 12:19:54,0
wenn ich das Macro mehrmals starte steht nur in der 2. Zeile vernünftige Werte. In zeile 1 stehen komische Zeiten... Jedoch nie Bruchteile von Sekunden...
Danke
Michael
Anzeige
AW: Zeit in zehntel od hundertstel
26.05.2005 16:23:05
th.heinrich
hallo Michael,
evtl. hilft dies weiter.
In diesem Beispiel wird die TimeValue-Funktion verwendet, um eine Zeichenfolge in eine Uhrzeit umzuwandeln. Sie können auch Datumsliterale verwenden, um einer Variablen vom Typ Variant oder Date direkt eine Uhrzeit zuzuweisen, zum Beispiel Zeit1 = #4:35:17 PM#.
Dim Zeit1
Zeit1 = TimeValue("4:35:17 PM") ' Uhrzeit zurückgeben.
ansonsten mal den komplette code posten.
gruss thomas
Anzeige
AW: Zeit in zehntel od hundertstel
26.05.2005 20:17:50
michael
HAllo Thomas,
nun da gibt es nicht viel code
eine loop die zuerst die Zeit und indie nachfolgende Spalten der selben Zeile die Messwerte.
Da das Messgerät alle 200ms ein Wert ausgibt wird die Loop max 5 mal pro sec durchlaufen.
Folgendes hab ich bisher getestet
zaehler = 1
Do

Cells(zaehler, 1) = Timer
Cells(zaehler, 2) = Time
Cells(zaehler, 3) = "=NOW()"
Cells(zaehler, 4) = Format(Timer, "hh:mm:ss,00")
Cells(zaehler, 5) = Format(Time, "hh:mm:ss,00")
Cells(zaehler, 6) = Format(Now, "hh:mm:ss,00")

zaehler = zaehler + 1

Loop While zaehler &lt 20 (20 nur mal als Test)
TimeValue gibt mr nur hh:mm:ss AM/PM zurück
Bei allen kommen keine Sekundenbruchteile
hast du noch eine Idee?
MIchael
Anzeige
AW: Zeit in zehntel od hundertstel
27.05.2005 09:25:37
Nepumuk
Hallo Michael,
die Timerfunktion gibt die seit Mitternacht vergangenen Sekunden zurück. In Excel entspricht aber 1 einem Tag. Du musst also die Sekunden durch 86.400 teilen um daraus Excelsekunden zu machen. Das ganze dient aber mehr dazu, Zeitdifferenzen darzustellen.
Beispiel:


Option Explicit
Private Declare Sub Sleep Lib "kernel32.dll" ( _
     ByVal dwMilliseconds As Long)
Public Sub test()
    Dim sngStart As Single
    sngStart = Timer
    Sleep 555
    With Cells(1, 1)
        .NumberFormat = "[hh]:mm:ss.000"
        .Value = (Timer - sngStart) / 86400
    End With
End Sub


Beachte dabei, dass diese Funktion zwar Millisekunden zurückgibt, aber die maximale Auflösung bei 55 ms liegt. Wenn du es genauer brauchst, kann über eine API – Funktion, eine Auflösung bis 0,83 ms erreicht werden.
Gruß
Nepumuk
Anzeige
AW: Zeit in zehntel od hundertstel
27.05.2005 14:51:35
michael
Hallo Nepumuk,
danke für deine Antwort!
was bedeutet Sleep 555? konnte nichts dazu in der Hilfe finden - ich vermute eine Pause von 555 ms?
Hast du zufällig ein Bsp. für eine solche API – Funktion für eine Auflösung 10ms?
Danke
Michael
AW: Zeit in zehntel od hundertstel
27.05.2005 15:12:53
michael
wow... danke Nepumuk,
... muss ich in Ruhe heute abend testen.
Danke und Gruß
Michael
;
Anzeige

Infobox / Tutorial

Zeit in Zehntel oder Hundertstel mit Excel


Schritt-für-Schritt-Anleitung

Um die Zeit in Hundertstel oder Zehntel in einem Excel-Makro zu erfassen, kannst du die Timer-Funktion verwenden. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Öffne den Visual Basic for Applications (VBA) Editor in Excel (Alt + F11).

  2. Füge ein neues Modul hinzu (Rechtsklick auf „VBAProject“ > Einfügen > Modul).

  3. Kopiere den folgenden Code in das Modul:

    Option Explicit
    Private Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As Long)
    
    Public Sub LogTime()
       Dim zaehler As Long
       Dim sngStart As Single
    
       zaehler = 1
       Do
           sngStart = Timer
           Cells(zaehler, 1).Value = Timer / 86400 ' Umrechnung in Excel-Zeit
           Cells(zaehler, 1).NumberFormat = "[hh]:mm:ss.00" ' Format für Hundertstel
           Sleep 200 ' Pause für 200 ms
           zaehler = zaehler + 1
       Loop While zaehler < 20 ' Beispiel: 20 Einträge
    End Sub
  4. Schließe den VBA-Editor und führe das Makro aus (Alt + F8, wähle LogTime und klicke auf „Ausführen“).


Häufige Fehler und Lösungen

  • Fehler: Keine Bruchteile von Sekunden

    • Lösung: Stelle sicher, dass die Zelle mit dem Format "[hh]:mm:ss.00" formatiert ist. Dies zeigt die Zeit in Hundertstel an.
  • Fehler: Timer gibt nicht die erwartete Zeit zurück

    • Lösung: Denke daran, dass der Timer die Zeit in Sekunden zurückgibt. Um die Zeit in Excel zu verwenden, teile die Timer-Werte durch 86400, um sie in Excel-Zeit umzurechnen.

Alternative Methoden

Wenn du eine genauere Zeitmessung benötigst, kannst du auch API-Funktionen nutzen, um eine Auflösung von 10 ms zu erreichen. Dazu benötigst du jedoch zusätzliche Software- oder Programmierkenntnisse.

Ein Beispiel für eine API-Funktion findest du hier.


Praktische Beispiele

Hier ein einfaches Beispiel zur Verwendung der Timer-Funktion:

Sub BeispielTimer()
    Dim Zeit1 As Single
    Zeit1 = Timer
    Cells(1, 1).Value = Zeit1 / 86400
    Cells(1, 1).NumberFormat = "[hh]:mm:ss.00"
End Sub

Dieses Makro gibt die aktuelle Zeit in Hundertstel zurück und formatiert sie entsprechend.


Tipps für Profis

  • Nutze die Sleep-Funktion, um Pausen zwischen den Zeitmessungen zu implementieren. Dies ist besonders nützlich, wenn du Daten mit einer hohen Frequenz erfassen möchtest, wie z.B. bei einer Messrate von 5 pro Sekunde.
  • Achte darauf, dass die maximale Auflösung bei der Verwendung der Timer-Funktion etwa 55 ms beträgt. Für präzisere Messungen solltest du überlegen, alternative Programmiermethoden oder Hardwarelösungen einzusetzen.

FAQ: Häufige Fragen

1. Wie kann ich die Zeit in Excel im Format Hundertstel anzeigen?
Du kannst die Zelle mit dem benutzerdefinierten Format "[hh]:mm:ss.00" formatieren, um die Zeit in Hundertstel anzuzeigen.

2. Was bedeutet die Funktion Sleep 555 im Code?
Die Funktion Sleep 555 pausiert das Makro für 555 Millisekunden, bevor es mit dem nächsten Schritt fortfährt. Dies kann nützlich sein, um die Zeitmessung zu synchronisieren.

3. Warum erhalte ich keine Sekundenbruchteile mit TimeValue?
Die Funktion TimeValue gibt nur die Zeit im Format hh:mm:ss zurück, ohne Bruchteile anzuzeigen. Benutze stattdessen die Timer-Funktion für eine genauere Zeitmessung.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige