Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Automatisches Starten TimerAuto bei Eingabe in Zelle
#1
Hallo!

Ich habe folgendes Problem:

Ich möchte eine Eingabe in A1 machen und nach dem Betätigen der Enter-Taste soll der Timer (hier 1 Minute) starten. Die Startzeit soll in B1 ausgegeben werden und beginnt dann in Sekundenschritten runter zu laufen.

Über dieses Forum wurde mir ein entsprechendes Makro für das automatische Starten zur Verfügung gestellt.

Hier das Makro:

Code:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    On Error GoTo Fehler
    Const APPNAME = "Worksheet_Change"
   
    Dim RNG As Range
   
    Set RNG = Range("A1")
   
    If Not Intersect(Target, RNG) Is Nothing Then
        If WorksheetFunction.CountA(RNG) = 0 Then
            Application.EnableEvents = False
            Range("B1").ClearContents
           
        ElseIf WorksheetFunction.CountA(RNG) = 1 Then
            Application.EnableEvents = False
            Range("B1") = "00:01:00"
            Call nexttick
        End If
    End If
   
    '*** Fehlerbehandlung
Fehler:
    Application.EnableEvents = True
    If Err.Number <> 0 Then MsgBox "Fehler in Sub """ & APPNAME & """" & vbCrLf _
        & "Fehlernummer: " & Err.Number & vbLf & Err.Description: Err.Clear
End Sub

Das Makro nexttick lautet wie folgt:

Option Explicit
Dim NextInst As Date
Const TimeDiff="00:00:01"

Sub nexttick ()
   On Error GoTo Fehler
   Sheets (1).Range("B1").Value=Sheets (1).Range ("B1").Value-TimeValue (TimeDiff)
NextInst=Now+TimeValue (TimeDiff)
Application.OnTime NextInst, "nexttick"
Fehler:
   If Err.Number <>0 Then 
     MsgBox "Zeit abgelaufen"
     Range("B1").Value="00:01:00"
     Range ("A1").Value=""
End If 

End Sub


Nun tritt nei mir jedoch folgendes Problem auf:

Ich mache eine Eintragung in A1. Der Timer  (00:01:00) wird in B1 eingeblendet und beginnt in Sekundenschritten nach unten zu laufen.

Soweit so gut.

Mache ich jedoch eine weitere Eingabe (z.B. in A2) wird für die Zeit der Eingabe, die Zeit (Timer) angehalten.

Erst, wenn ich meine Eingabe mit der Enter-Taste beende, läuft die Zeit wieder weiter.

Was muss anders gemacht werden,  damit die Zeit (Timer), unabhängig von meinen Eingaben, weiter Richtung 0 läuft?

Ich möchte letztendlich herausfinden, wie viele Eingaben in den Zellen (außer A1 -> ist ja meine 1. Eingabezelle) gemacht werden können.
Wenn die Zeit abgelaufen ist, wird ja die Message: "Zeit abgelaufen" eingeblendet. Dann sind keine weiteren Eingaben mehr möglich.

Ich hoffe, mir kann Jemand weiterhelfen. 

Danke
Antworten Top
#2
Hallo


wenn du eine Zelle zur Eingabe aktiviert hast (also der Cursor in der Zelle blinkt) wird das Makro angehalten.


Du könntest zwar "Beim Start" die Endezeit ermitteln und DIESE dann abfragen, ob Die erreicht ist. 
Aber auch hier wird das erst nach dem Enter erfolgen.
Der Rückwärtstimer stimmt dann aber auch nicht.


LG UweD
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste