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

Funktion Application onTime

Forumthread: Funktion Application onTime

Funktion Application onTime
15.07.2002 17:52:17
Baba
Hallo

Ich möchte täglich zu einer bestimmten Uhrzeit den wert einer Zelle auslesen und in einer anderen Zelle Speichern.

ZB: [456546] Zelle A1 die ausgelesen werden soll

22:00 [=A1]
23:00 [=A1]
00:00 [=A1]

usw.
der wert in der Zelle ändert sich ca. alle 60 sekunden, und ich möchte zu jeder vollen Stunde wissen, wie dieser wert war.
Das ganze fängt Täglich wieder bei Null an.
Ich habe gehört, das es mit Application onTime gehe soll.
Leider habe ich keine Ahnung von VBA und würde mich freuen wenn mir jemand eine kleine Beispiel Tabelle schicken könnte.

Vielen Dank
Gruß Baba E-Mail : Babalulu@t-online.de

Anzeige

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

Betreff
Datum
Anwender
Anzeige
Re: Funktion Application onTime
15.07.2002 19:23:01
Peter
Hallo Baba,

versuchs mal mit folgendem Code (mit heißer Nadel gestrickt und noch nicht ganz ausgetestet). Muß einmal aufgerufen werden und ruft sich dann stündlich selber auf:

Sub ZeitSchleife()
Dim NächsteZeit As Date, Quelle As Range, T2 As Object
Static Zeile As Integer
Set T2 = Sheets("Tabelle2").Cells
Set Quelle = Sheets("Tabelle1").Cells(1, 1)
If Zeile = 0 Then
Sheets("Tabelle2").Columns("A:C").Clear
Zeile = 2
T2(1, 1) = "Datum"
T2(1, 2) = "Zeit"
T2(1, 3) = "Wert"
Else
Zeile = Zeile + 1
End If
T2(Zeile, 1) = Date
T2(Zeile, 2) = Time
T2(Zeile, 3) = Quelle
NächsteZeit = TimeSerial(Hour(Now) + 1, 0, 0)
Application.OnTime NächsteZeit, "ZeitSchleife"
End Sub

Anzeige
Re: Funktion Application onTime
15.07.2002 20:26:33
Peter
Hallo Baba,

ich muss etwas nachbessern. Die Zuweisung für "NächsteZeit" ist wahrscheinlich falsch (habe leider keine Zeit in einem Test eine Stunde zu warten).
Versuch es mit NächsteZeit = Now + TimeSerial(1,0,0). Wenn das zur vollen Stunde erfolgen soll, musst den 1. Aufruf auch zur vollen Stunde vornehmen. Wenn mir noch was besseres einfällt, bessere ich nach.
mfg Peter

Anzeige
Re: Funktion Application onTime
16.07.2002 07:40:28
Baba
Hallo Peter

Nun, ich werde es mal versuchen. PS: Du brauchst nicht bis zur vollen Stunde zu warten, um einen Test durch zu führen.
Setze die Systemzeit einfach auf z.B 13:59 Uhr und warte eine minute.

Gruß baba

;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Automatisches Auslesen von Zellwerten mit Application.OnTime in Excel VBA


Schritt-für-Schritt-Anleitung

Um täglich zu einer bestimmten Uhrzeit den Wert einer Zelle auszulesen und in einer anderen Zelle zu speichern, kannst Du die Application.OnTime-Methode in Excel VBA verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne das VBA-Editor:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu:

    • Klicke auf Einfügen > Modul.
  3. Kopiere den folgenden Code in das Modul:

    Sub ZeitSchleife()
        Dim NächsteZeit As Date
        Dim Quelle As Range
        Dim T2 As Object
        Static Zeile As Integer
    
        Set T2 = Sheets("Tabelle2").Cells
        Set Quelle = Sheets("Tabelle1").Cells(1, 1)
    
        If Zeile = 0 Then
            Sheets("Tabelle2").Columns("A:C").Clear
            Zeile = 2
            T2(1, 1) = "Datum"
            T2(1, 2) = "Zeit"
            T2(1, 3) = "Wert"
        Else
            Zeile = Zeile + 1
        End If
    
        T2(Zeile, 1) = Date
        T2(Zeile, 2) = Time
        T2(Zeile, 3) = Quelle
    
        NächsteZeit = Now + TimeSerial(1, 0, 0)
        Application.OnTime NächsteZeit, "ZeitSchleife"
    End Sub
  4. Führe das Skript aus:

    • Gehe zurück zu Excel und drücke ALT + F8, wähle ZeitSchleife aus und klicke auf Ausführen.
  5. Beobachte die Ergebnisse:

    • Die Werte aus Zelle A1 von Tabelle1 werden nun stündlich in Tabelle2 gespeichert.

Häufige Fehler und Lösungen

  • Fehler: "Anwendungsfehler" bei der Ausführung von Application.OnTime

    • Lösung: Stelle sicher, dass die Funktion, die aufgerufen wird, existiert und dass der Name korrekt geschrieben ist.
  • Fehler: Keine Werte werden in Tabelle2 gespeichert

    • Lösung: Überprüfe, ob der Verweis auf die Zelle A1 korrekt ist und ob die Zellen in Tabelle2 nicht blockiert sind.

Alternative Methoden

Wenn Du keine VBA-Programmierung verwenden möchtest, könntest Du auch manuelle Methoden oder Excel-Formeln in Betracht ziehen. Allerdings bieten diese nicht die gleiche Automatisierung wie die Application.OnTime-Funktion.


Praktische Beispiele

Hier ist ein einfaches Beispiel, wie Du den Wert einer Zelle um 22:00 Uhr täglich speichern kannst. Der oben dargestellte VBA-Code speichert den Wert automatisch, unabhängig davon, ob Du das Makro manuell startest.


Tipps für Profis

  • Optimierung des Codes: Du kannst den Code anpassen, um nur an bestimmten Tagen oder zu bestimmten Uhrzeiten zu speichern, indem Du Bedingungen in den Code einfügst.
  • Verwende Application.OnTime effizient: Stelle sicher, dass Du nur einmal die Zeitplanung für die nächste Ausführung einstellst, um unnötige Aufrufe zu vermeiden.

FAQ: Häufige Fragen

1. Wie kann ich den Code so anpassen, dass er nur an Wochentagen ausgeführt wird?
Du kannst eine Bedingung hinzufügen, die überprüft, ob der aktuelle Tag ein Wochentag ist, bevor die Application.OnTime-Methode aufgerufen wird.

2. Was passiert, wenn Excel geschlossen wird?
Wenn Excel geschlossen wird, wird die Application.OnTime-Planung abgebrochen. Du musst das Makro erneut starten, wenn Excel wieder geöffnet wird.

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