Hallo Zusammen
Problemstellung:
Ich habe ein Excel-File gemacht, welches Messungen von einer Cognex Kamera protokolliert und automatisch abspeichert. Mithilfe von einem OPC-Server werden die Daten wie auch der Online-Status der Kamera ins Excel transferiert.
Sobald die Kamera "Online" geht, also der Status in der Zelle "AE6" = 1 ist, sollen die eigehenden Daten in die entsprechenden Zellen geschriben werden und das Makro wieder stoppen sobald der Online-Status der Kamera auf Offline und daher AE6 = 0 ist.
Problem
Da der Wert in der Zelle AE6 aus einer Berechnung stammt, muss ich mit dem Worksheet_Calculate arbeiten. Da im aufgerufenen Makro auch wieder Werte berechnet werden, kommt das ganze in eine Endlosschleife.
Code
Auszuführendes Makro
Private Sub Start_Click()
Dim Zelle As Range
Dim Bereich As Range
Dim ReiZ As Long
Dim AbortTime As Date
If Range("AE6").Value = 1 Then
AbortTime = Now + TimeValue("0:00:10")
Do While True
'Werte in Diagramm-Zellen schreiben
Range("G5").Value = Range("E5").Value
Range("H5").Value = Range("E6").Value
Range("I5").Value = Range("E7").Value
ReiZ = ActiveSheet.UsedRange.Rows.Count
Set Bereich = Range("G5:I5")
'"," durch "." ersetzen
For Each Zelle In Bereich
With Zelle
.NumberFormat = "@"
.Value = Replace(Zelle, ",", ".")
.NumberFormat = "General"
.Value = .Value
End With
Next Zelle
If Now > AbortTime Then Exit Do
Loop
'Datum und Zeit einfügen
Range("AE20").Value = Date
Range("AE21").Value = Time
Range("AE22").Value = Range("AE22").Value + 1
Speichern
End If
End Sub
Worksheet_Calculate
Private Sub Worksheet_Calculate()
Dim Xrg As Range
Set Xrg = Range("AE6")
If Not Intersect(Xrg, Range("AE6")) Is Nothing Then
Call Start_Click
End If
End Sub
Danke im Voraus für die Ideen,
Puddu
|