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

Forumthread: Zeitberechnung mit VBA

Zeitberechnung mit VBA
03.10.2004 16:40:47
Barbara
Hallo,
ich habe folgenden Textstrings
"0:05:30" und "0:07:40"
Und das Ergebnis soll in einer Zelle stehen: "Dauer: 0:02:10"
Soll auch für Zeitdifferenzen über Mitternacht gehen.
"23:55:30" "0:01:30" soll ergeben
"Dauer: 0:06:00"
Wie geht das mit VBA?
habe nichts geeignetes gefunden.
danke, Barbara.
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Zeitberechnung mit VBA
Beate
Hallo Barbara,
warum mit VBA? Per Formel so:
Tabelle1
 ABC
1BeginnEndeErgebnis
223:55:3000:07:4000:12:10
3Zellformat:hh:mm:ss 
Formeln der Tabelle
C2 : =REST(B2-A2;1)
 
Diagramm - Grafik - Excel Tabellen einfach im Web darstellen    Excel Jeanie HTML  3.0    Download  
Gruß,
Beate
Anzeige
AW: Zeitberechnung mit VBA
Beni
Hallo Barbara,
Gruss Beni
Sub Zeit() Dim Zeit1, zeit2 Zeit1 = [A1] zeit2 = [B1] If [B1] > [A1] Then [C1] = [B1] - [A1] Else [C1] = 24 - [A1] + [B1] End Sub
AW: Zeitberechnung mit VBA
03.10.2004 18:17:01
Barbara
Hallo,
hab jetzt selbst was gefunden:
Zeit = 24 * 60 * (TimeValue("0:07:40") - TimeValue("0:05:30"))
If Zeit &lt 0 Then Zeit = Zeit + 1440
Zeit = 60 * Zeit
Range("C33") = "Dauer " & TimeSerial(0, 0, Zeit)
Warum die Zeit in 2 Stufen multipliziert werden muss, ist mir ein Rätsel.
Dazu habe ich eine eingene Frage im Forum gestellt ("Multiplizieren").
An Beate und Beni, mit einer Formel hätte ich es auch können, aber es soll Teil eines Programms sein.
Außerdem liegt die Zeit nicht als Zelleninhalt vor, sondern als Variable als Textstring.
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Zeitberechnung mit VBA in Excel


Schritt-für-Schritt-Anleitung

Um die Zeitdifferenz in Excel mit VBA zu berechnen, kannst Du folgende Schritte ausführen:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu starten.

  2. Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.

  3. Füge den folgenden VBA-Code ein:

    Sub Zeit()
       Dim Zeit1 As Date, Zeit2 As Date
       Zeit1 = [A1]
       Zeit2 = [B1]
       If Zeit2 > Zeit1 Then
           [C1] = Zeit2 - Zeit1
       Else
           [C1] = 1 - Zeit1 + Zeit2 ' 1 entspricht 24 Stunden
       End If
    End Sub
  4. Stelle sicher, dass in Zelle A1 die Startzeit und in B1 die Endzeit im Format hh:mm:ss eingegeben sind.

  5. Führe das Makro aus, um die Zeitdifferenz in Zelle C1 anzuzeigen.


Häufige Fehler und Lösungen

  • Fehler: „Typenübereinstimmung“ Fehler.

    • Lösung: Stelle sicher, dass die Zellen A1 und B1 als Zeit formatiert sind.
  • Fehler: Ergebnis zeigt unerwartete Werte.

    • Lösung: Prüfe, ob die Zeitwerte korrekt eingegeben sind und ob die Berechnung nach Mitternacht korrekt berücksichtigt wird.

Alternative Methoden

Falls Du keine VBA-Makros verwenden möchtest, kannst Du die Zeitberechnung auch direkt mit Excel-Formeln durchführen:

  1. Gebe die Startzeit in Zelle A1 und die Endzeit in Zelle B1 ein.
  2. Verwende die folgende Formel in C1:

    =REST(B1-A1;1)

Diese Formel berechnet die Zeitdifferenz, auch wenn die Zeiten über Mitternacht liegen. Stelle sicher, dass die Zelle C1 im Format hh:mm:ss formatiert ist.


Praktische Beispiele

  1. Beispielzeit 1:

    • A1: 23:55:30
    • B1: 00:07:40
    • C1 zeigt nach Ausführung des Makros oder der Formel 00:12:10.
  2. Beispielzeit 2:

    • A1: 0:05:30
    • B1: 0:07:40
    • C1 zeigt 00:02:10.

Diese Beispiele demonstrieren, wie die VBA Zeitdifferenzberechnung oder die Excel-Formel für verschiedene Zeitwerte funktioniert.


Tipps für Profis

  • Verwende die Formatierung hh:mm:ss für alle Zeitwerte, um Missverständnisse zu vermeiden.
  • Nutze Application.WorksheetFunction in VBA, um komplexere Zeitberechnungen durchzuführen.
  • Dokumentiere Deinen VBA-Code mit Kommentaren, um die Wartbarkeit zu erhöhen.

FAQ: Häufige Fragen

1. Wie kann ich die Zeitdifferenz zwischen zwei Zeitstrings berechnen? Verwende die TimeValue-Funktion in VBA, um die Zeitstrings in Zeitwerte umzuwandeln, bevor Du die Differenz berechnest.

2. Warum muss ich die Zeit mit 24 multiplizieren? Wenn Du Zeitdifferenzen in Minuten oder Sekunden benötigst, musst Du die Zeit in das entsprechende Format umwandeln (z.B. Minuten = 24 * 60).

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