AW: zeitgesteuert
08.04.2007 13:54:38
Ramses
Hallo
Probier mal.
Den ganzen Code in ein Modul deiner Mappe kopieren
Option Explicit
'by Ramses
Public StartStop As Boolean
Public myTarget As Range
Public rowStartCounter As Long
Public rowEndCounter As Long
Public rowCounter As Long
'Sekunden bis zum Wertewechsel
Const changeVal As Long = 30
Sub StartTimer()
'Startet das Makro grundsätzlich
'Zieladresse für hochzählen
Set myTarget = Range("A2")
On Error Resume Next
rowStartCounter = 1
rowStartCounter = Int(InputBox("Startwert zur Wiederholung eingeben", "Startwert", rowStartCounter))
If rowStartCounter < 1 Or IsEmpty(rowStartCounter) Then
MsgBox "Abbruch: Kein Startwert"
Exit Sub
End If
rowEndCounter = 0
rowEndCounter = Int(InputBox("Maximale Zeilennummer zur Wiederholung eingeben", "Endwert", rowEndCounter))
MsgBox rowEndCounter
If rowEndCounter < rowStartCounter Or rowEndCounter > 65536 Then
MsgBox "Abbruch: " & Chr$(13) & "Ungültiger Endwert: " & rowEndCounter
Exit Sub
End If
On Error GoTo 0
StartStop = True
rowCounter = rowStartCounter + 1
Application.OnTime Now + TimeSerial(0, 0, changeVal), "SetRowValue"
End Sub
Sub SetRowValue()
'Zählt den Zeilenwert hoch
If StartStop = False Then Exit Sub
If rowCounter = rowEndCounter Then rowCounter = rowStartCounter
myTarget = rowCounter
rowCounter = rowCounter + 1
Application.OnTime Now + TimeSerial(0, 0, 30), "SetRowValue"
End Sub
Sub StopTimer()
'Makro zum Beenden zuweisen
StartStop = False
End Sub
Das Makro "StartTimer" einer Schaltfläche zuweisen und das Makro "StopTimer" ebenfalls einer Schaltfläche zuweisen, damit du das ganze wieder stoppen kannst :-)
gruss Rainer