Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Schleife zu Beginn auf 0 setzen

Schleife zu Beginn auf 0 setzen
21.03.2009 14:02:56
MBorn
Hallo miteinander,
wieder einmal möchte ich Euch um Hilfe bitten. Bei folgender Bastelei:
Es gibt zwei Prozeduren, die gegenseitig aufgerufen werde. Die erste ist eine Timerprodzedur:

Sub StartTimer()
mytimer = Now + TimeSerial(0, 0, 5)
Application.OnTime mytimer, "myProcedure"
End Sub



Sub myProcedure()
Cells(1, 1) = Cells(1, 1) + 1
Call StartTimer
End Sub


Wie kann ich cells(1,1) zu Beginn auf cells(1,1)=0 setzen?
Gruß und Dank,
Born

Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Schleife zu Beginn auf 0 setzen
21.03.2009 14:08:41
ransi
Hallo
Ähm... meinst du so:

Sub StartTimer()
Cells(1, 1) = 0
mytimer = Now + TimeSerial(0, 0, 5)
Application.OnTime mytimer, "myProcedure"
End Sub
Sub myProcedure()
Cells(1, 1) = Cells(1, 1) + 1
Call StartTimer
End Sub


ransi

AW: Schleife zu Beginn auf 0 setzen
21.03.2009 14:09:14
Tino
Hallo,
von irgendwo wird StartTimer zum ersten mal aufgerufen und
dort schreibst Du vor dem Aufruf cells(1,1)=0
Gruß Tino
Anzeige
AW: Schleife zu Beginn auf 0 setzen
21.03.2009 14:38:56
MBorn
Hallo Tino,
siehst Du das ist das Problem:
Starttimer wird von myProcedure aufgerufen und myProcedure von StartTimer.
Deswegen würde cells(1,1) bei jedem Druchlauf auf 0 gesetzt und das soll
nur beim ersten Mal passieren.
Gruß und Dank,
Born
AW: Schleife zu Beginn auf 0 setzen
21.03.2009 14:42:56
ransi
HAllo Tino meint das so:


Sub Oberstarter()
    Cells(1, 1) = 0
    Call StartTimer
End Sub

Sub StartTimer()
    mytimer = Now + TimeSerial(0, 0, 5)
    Application.OnTime mytimer, "myProcedure"
End Sub


Sub myProcedure()
    Cells(1, 1) = Cells(1, 1) + 1
    Call StartTimer
End Sub

ransi
Anzeige
genau so oT.
21.03.2009 14:47:35
Tino
AW: genau so oT.
21.03.2009 15:06:59
MBorn
Yepp, ich danke Euch beiden. Das funktioniert sooooo.
Ein kleines Bedenken: Die Oberprozedur bleibt ja offen, solange die beiden Schleifenprozeduren
arbeiten. Kann es denn sein dass da im Laufe der Zeit so etwas wie ein Buffer-Überlauf passiert?
Gruß und Dank,
Born
bleibt nicht offen
21.03.2009 15:17:06
Tino
Hallo,
normalerweise sollte nach dem ersten aufruf die Oberprozedur auch beendet werden,
weil nach dem Aufruf von StartTimer erst mal für 5 Sekunden Funkstille ist und der Code zu Oberstarter zurückläuft.
Ein kleiner Test soll dies beweisen.

Sub Oberstarter()
Cells(1, 1) = 0
Call StartTimer
Stop 'hier ist der kleine Test eingebaut.
End Sub
Sub StartTimer()
mytimer = Now + TimeSerial(0, 0, 5)
Application.OnTime mytimer, "myProcedure"
End Sub
Sub myProcedure()
Cells(1, 1) = Cells(1, 1) + 1
Call StartTimer
End Sub


Gruß Tino

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

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