Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1276to1280
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

zeitgesteuerte Protokollierung

zeitgesteuerte Protokollierung
Thilo
Hallo, leider bin ich VBA-Anfänger.
Ich würde gerne in einer Tabelle, die ihre Daten online bezieht, alle zwei Minuten bestimmte Zellinhalte protokollieren lassen.
Beispiel:
- Aus einem Tabellenblatt "Daten1" die Zellen C2 und E27, aus Tabellenblatt "Daten2" die Zellen F100 und Y1223 protokollieren.
- Die Dateninhalte sollen in ein separates Blatt "Protokoll" derselben Tabelle zeilenweise untereinander geschrieben werden, mit Datum und Uhrzeit.
Wo muss ich den Code dann reinkopieren?
Vielen Dank im voraus für Eure Hilfe,
Thilo

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: zeitgesteuerte Protokollierung - OnTime-Method
28.08.2012 15:17:10
fcs
Hallo Thilo,
das kann man mit der OnTime-Methode steuern.
So kann man auch bei Bedarf weiter in Excel arbeiten, während die Daten registriert werden. Es kann aber zu Verzögerungen kommen, wenn zum jeweilgen Start des Registriermakros eine Zelle editiert wird oder ein Dialog geöffnet ist.
Gruß
Franz
'Code in einem allgemeinen Modul
Option Explicit
Public datTime As Date
Public Const strOntimeProcedure = "subAktion" 'Name der per Timer gestarteten Procedur
Public Const strTimeDiff As String = "00:02:00" '0 Stunden 2 Minuten 0 Sekunden
Sub StartTimer()
Call subAktion
End Sub
Sub StopTimer()
On Error Resume Next 'falls Timer nicht gestartet wurde
Application.OnTime Earliesttime:=datTime, Procedure:=strOntimeProcedure, schedule:=False
End Sub
Sub subAktion()
Dim wb As Workbook
Dim wksData1 As Worksheet, wksData2 As Worksheet, wksProto As Worksheet
Dim ZeileP As Long
Set wb = ThisWorkbook
Set wksData1 = wb.Worksheets("Daten1")
Set wksData2 = wb.Worksheets("Daten2")
Set wksProto = wb.Worksheets("Protokoll")
datTime = Now
With wksProto
ZeileP = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
.Cells(ZeileP, 1).Value = CDate(Format(datTime, "YYYY-MM-DD"))
.Cells(ZeileP, 2).Value = CDate(Format(datTime, "hh:mm:ss"))
.Cells(ZeileP, 3).Value = wksData1.Range("C2").Value
.Cells(ZeileP, 4).Value = wksData1.Range("E27").Value
.Cells(ZeileP, 5).Value = wksData2.Range("F100").Value
.Cells(ZeileP, 6).Value = wksData2.Range("Y1223").Value
End With
datTime = datTime + CDate(strTimeDiff)
Application.OnTime Earliesttime:=datTime, Procedure:=strOntimeProcedure
End Sub
'Code unter DieseArbeitsmappe - erforderlich, damit OnTime-Aktion auf jede Fall gestoppt  _
wird.
'wenn die Datei bevor die Datei geschlossen wird
Option Explicit
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call StopTimer
End Sub

Anzeige
AW: zeitgesteuerte Protokollierung - OnTime-Method
28.08.2012 16:50:17
Thilo
Hallo Franz,
vielen herzlichen Dank! Das funktioniert auf Anhieb.
Beste Grüße,
Thilo

AW: zeitgesteuerte Protokollierung - OnTime-Method
28.08.2012 16:51:39
Hajo_Zi
Hallo Thilo,
was ist noch offen?

AW: zeitgesteuerte Protokollierung - OnTime-Method
28.08.2012 17:57:07
Thilo
Hallo Hajo, sorry, da war ich verwirrt und habe aus Versehen den Haken gesetzt ...
Beste Grüße,
Thilo

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige