Thema Datum  Von Nutzer Rating
Antwort
Rot Endlosschleife mit Worksheet_Calculate
06.04.2018 14:02:59 puddu
NotSolved
06.04.2018 14:46:42 Mackie
NotSolved
06.04.2018 14:59:25 Mackie
NotSolved
10.04.2018 16:48:49 puddu
NotSolved
10.04.2018 17:37:02 Mackie
NotSolved
10.04.2018 17:43:43 Mackie
NotSolved
10.04.2018 18:11:14 puddu
Solved

Ansicht des Beitrags:
Von:
puddu
Datum:
06.04.2018 14:02:59
Views:
987
Rating: Antwort:
  Ja
Thema:
Endlosschleife mit Worksheet_Calculate

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


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Endlosschleife mit Worksheet_Calculate
06.04.2018 14:02:59 puddu
NotSolved
06.04.2018 14:46:42 Mackie
NotSolved
06.04.2018 14:59:25 Mackie
NotSolved
10.04.2018 16:48:49 puddu
NotSolved
10.04.2018 17:37:02 Mackie
NotSolved
10.04.2018 17:43:43 Mackie
NotSolved
10.04.2018 18:11:14 puddu
Solved