Application.OnTime Überlagerung
16.12.2015 09:16:33
Blubb1989
ich habe folgendes Problem: Ich möchte eine Produktionsplantafel in Excel erstellen in der farbige Zellen (in dem Fall rote Zellen) alle 15 min um eine Spalte nach links verschoben (eine Spalte soll einen Zeitaufwand von 15 min darstellen) (Prozedur Verschieben)und am Ende in Spalte B gelöscht werden (LoeschefertigeZellen).
Mit dem folgenden Code ergibt sich jedoch anscheinend eine Überlagerung der Zeitsteuerung sodass sich einige Balken schneller(bzw um 2 Spalten) verschoben werden als andere und auch nicht immer in dem vorgegebenen Rhythmus.
Sofern ich mir die Prozeduren isoliert anschaue funktioniert alles einwandfrei.
Im folgenden Code hab ich die Zeit auf 30 Sekunden reduziert, damit das ganze schneller erfassbar ist. Zur Ausführung einfach rote Balken in den Range("C4:P7") eintragen und dann beobachten.
Dim NextTime2
Sub Main()
Call Verschieben
Call LoeschefertigeZellen
End Sub
Public Sub Verschieben()
Dim i As Integer
Dim j As Integer
NextTime2 = Now + TimeSerial(0, 0, 30)
Application.OnTime NextTime2, "Verschieben"
Worksheets("Tabelle1").Activate
For j = 3 To 18 'Spalten
For i = 4 To 7 'Zeilen
If Cells(i, j).Interior.ColorIndex = 3 Then
Cells(i, j).Select
Cells(i, j).Cut
Cells(i, j - 1).Select
ActiveSheet.Paste
End If
Next i
Next j
End Sub
Public Sub LoeschefertigeZellen()
Dim i As Integer
NextTime2 = Now + TimeSerial(0, 0, 30)
Application.OnTime NextTime2, "LoeschefertigeZellen"
For i = 4 To 6
Worksheets("Tabelle1").Cells(i, 2).Delete
Next i
End Sub
Habt vielen Dank