AW: Messwerte untereinander schreiben
21.03.2007 00:04:00
fcs
Hallo Michael,
mit folgendem Makro, dass alle 2 Sekunden prüft, ob in Zelle C3 der Tabelle1 ein Wert eingetragen ist kannst du die Werte nach Tabelle2 übertragen.
Die Makros im VBA-Editor in ein Modul der Datei kopieren, ggf. vorher ein Modul einfügen.
Ein Makro dient zum Starten der Messwertaufzeichnung
Das Makro löscht nach dem Übertragen den Wert in Zelle C3. Sobald wieder ein Wert eingetragen wird, werden die Werte wieder übertragen.
In einer Endlosschleife wird das Übertragungsmakro mit dem OnTime-Befehl alle 2 Sekunden neu gestartet bis das Stopp-Makro gestartet wird.
Gruss
Franz
'Variablendeklaration
Public wks1 As Worksheet, wks2 As Worksheet, Zeit As Date, Zeile As Long
Sub Messwertaufzeichnung_Starten()
Zeit = Now
Set wks1 = ThisWorkbook.Worksheets("Tabelle1")
Set wks2 = ThisWorkbook.Worksheets("Tabelle2")
Zeile = Application.WorksheetFunction.Max(3, wks2.Cells(wks2.Rows.Count, 1).End(xlUp).Row)
Call MesswerteUebertragen
End Sub
Sub Messwertaufzeichnung_Stoppen()
Application.OnTime earliesttime:=Zeit, Procedure:="MesswerteUebertragen", Schedule:=False
End Sub
Sub MesswerteUebertragen()
If Not IsEmpty(wks1.Range("C3")) Then
wks2.Cells(Zeile, 1).Value = wks1.Range("C3").Value
wks2.Cells(Zeile, 2).Range("A1:D1").Value = wks1.Range("F5:I5").Value
wks2.Cells(Zeile, 6).Range("A1:D1").Value = wks1.Range("F6:I6").Value
wks2.Cells(Zeile, 10).Value = wks1.Range("C9").Value
wks2.Cells(Zeile, 11).Range("A1:D1").Value = wks1.Range("F12:I12").Value
wks2.Cells(Zeile, 15).Range("A1:D1").Value = wks1.Range("F13:I13").Value
wks2.Cells(Zeile, 16).Value = wks1.Range("C16").Value
wks2.Cells(Zeile, 17).Range("A1:D1").Value = wks1.Range("F19:I19").Value
wks2.Cells(Zeile, 21).Range("A1:D1").Value = wks1.Range("F20:I20").Value
Zeile = Zeile + 1
wks1.Range("C3").ClearContents
End If
Zeit = Now + 2 / 3600 / 24 'Prüfung ob neuer Wert alle 2 Sekunden
Application.OnTime earliesttime:=Zeit, Procedure:="MesswerteUebertragen"
End Sub