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

TimeValue als Variable definieren

Forumthread: TimeValue als Variable definieren

TimeValue als Variable definieren
25.05.2020 16:46:18
Timo

Private Sub TestTimer()
Application.OnTime Now + TimeValue("00:02:00"), "sbEnde"
Dim Endzeit
Endzeit = Now + TimeValue("00:02:00")
Application.OnTime Endzeit, "sbEnde"
Application.StatusBar = "Fertigstellung um " & Format(Endzeit, "hh:mm")
End Sub
Hey Leute,
ich bin am Versuch gescheitert, das TimeValue auf einen beliebigen Wert (=beliebige Dauer) neu zu setzen.
Ich will also das TimeValue als Variable definieren, um verschiedene Zeiten ablaufen lassen zu können, ohne den Code anpassen zu müssen (x soll dann durch Value irgendeiner Zelle definiert werden).
Wer kann´s richten?
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: TimeValue als Variable definieren
25.05.2020 16:56:11
UweD
Hallo
so?
Private Sub TestTimer()
Dim TV As String
Dim Endzeit As Date
TV = "00:02:00"
Endzeit = Now + TimeValue(TV)
Application.OnTime Endzeit, "sbEnde"
Application.StatusBar = "Fertigstellung um " & Format(Endzeit, "hh:mm")
End Sub
Sub sbEnde()
MsgBox "Fertig " & Now
Application.StatusBar = ""
End Sub
LG UweD
Anzeige
AW: TimeValue als Variable definieren
25.05.2020 17:44:36
Timo
Top Top Top
Danke euch beiden!
AW: TimeValue als Variable definieren
25.05.2020 16:59:03
Nepumuk
Hallo Timo,
ein Beispiel:
Private Sub TestTimer()
    
    Dim Endzeit As Date
    
    Endzeit = Tabelle1.Cells(1, 1).Value
    
    Application.OnTime Now + Endzeit, "sbEnde"
    
End Sub

In der Tabelle:
 A
100:00:05

ZelleFormatWert
A1hh:mm:ss5,78703703703704E-05

Gruß
Nepumuk
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

TimeValue als Variable definieren in Excel VBA


Schritt-für-Schritt-Anleitung

Um das TimeValue in Excel VBA als Variable zu definieren, kannst du die folgenden Schritte befolgen:

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

  2. Erstelle ein neues Modul (Rechtsklick auf „VBAProject“ -> Einfügen -> Modul).

  3. Füge den folgenden Code in das Modul ein:

    Private Sub TestTimer()
       Dim TV As String
       Dim Endzeit As Date
       TV = "00:02:00" ' Hier kannst du die gewünschte Zeit anpassen
       Endzeit = Now + TimeValue(TV)
       Application.OnTime Endzeit, "sbEnde"
       Application.StatusBar = "Fertigstellung um " & Format(Endzeit, "hh:mm")
    End Sub
    
    Sub sbEnde()
       MsgBox "Fertig " & Now
       Application.StatusBar = ""
    End Sub
  4. Du kannst den Wert von TV anpassen, um verschiedene Zeitintervalle zu verwenden.

  5. Führe das Makro TestTimer aus, um den Timer zu starten.


Häufige Fehler und Lösungen

  • Fehler: „Typen sind inkompatibel“

    • Lösung: Stelle sicher, dass die Variable TV als String definiert ist und das Format „hh:mm:ss“ hat.
  • Fehler: „Das angegebene Zeitformat ist ungültig“

    • Lösung: Überprüfe, ob der Wert in der Zelle, den du für TimeValue verwendest, im richtigen Zeitformat vorliegt.

Alternative Methoden

Eine alternative Methode, um TimeValue in Excel VBA zu verwenden, ist die direkte Zuweisung von Zellenwerten. Hier ein Beispiel:

Private Sub TestTimer()
    Dim Endzeit As Date
    Endzeit = Sheets("Tabelle1").Cells(1, 1).Value ' Zelle A1 enthält die Zeit
    Application.OnTime Now + Endzeit, "sbEnde"
    Application.StatusBar = "Fertigstellung um " & Format(Endzeit, "hh:mm")
End Sub

Stelle sicher, dass die Zelle A1 im Format „hh:mm:ss“ formatiert ist.


Praktische Beispiele

Hier ist ein praktisches Beispiel, das zeigt, wie du TimeValue mit einer Zelle verknüpfen kannst:

  1. Trage 00:00:05 in die Zelle A1 ein und formatiere die Zelle als „hh:mm:ss“.
  2. Verwende den folgenden VBA-Code:

    Private Sub TestTimer()
       Dim Endzeit As Date
       Endzeit = Sheets("Tabelle1").Cells(1, 1).Value ' Zeit aus der Zelle
       Application.OnTime Now + Endzeit, "sbEnde"
    End Sub

Wenn du das Makro ausführst, wird es nach 5 Sekunden eine Nachricht anzeigen.


Tipps für Profis

  • Dynamische Zeitwerte: Du kannst TV auch direkt aus einer Zelle lesen, um so flexibler zu sein. Beispiel:

    TV = Sheets("Tabelle1").Cells(2, 1).Value ' Wert aus Zelle A2
  • Fehlerbehandlung: Implementiere On Error Resume Next, um mögliche Fehler beim Ausführen von OnTime zu ignorieren.


FAQ: Häufige Fragen

1. Kann ich TimeValue auch in einer Schleife verwenden?
Ja, du kannst TimeValue in einer Schleife verwenden, um wiederholt Timer zu setzen.

2. Wie kann ich die Ausführung eines Timers abbrechen?
Du kannst Application.OnTime mit den Parametern Now und dem Namen des Makros verwenden, um den Timer abzubrechen.

3. Welche Excel-Version benötige ich?
Der beschriebene Code funktioniert in Excel-Versionen, die VBA unterstützen, darunter Excel 2010, 2013, 2016, 2019 und Microsoft 365.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige