Countdown

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: Countdown von: Konni
Geschrieben am: 18.02.2005 19:01:30

Hallo Freaks,
ich habe einen Countdown, der die Tabelle nach einer Startzeit von 1 Minute bei Inaktivität abspeichert und automatisch schließt, damit Kollegen im Netzwerk auch daran arbeiten können.
Bei Erreichen von 30 Sekunden ertönt ein Klingelton, bei kleiner/gleich 5 Sekunden pro Sekunde ein Piep.
Wenn ich die Startzeit auf 5 Minuten einstelle, so passiert das Ganze wiederholt im Minutenrythmus. - Wie kann ich dies auf kleiner 1 Minute beschränken?

Der Code: If Second(.Value) = 30 Then ....
Besten Dank für Eure Hilfe
Konni

Bild


Betrifft: AW: Countdown von: Konni
Geschrieben am: 18.02.2005 19:09:03

Hier der kompltte Code:

Option Explicit
Public ET As Variant
Public DaZeit As Date

Private Declare

Function sndPlaySound32 Lib "winmm.dll" _
    Alias "sndPlaySoundA" (ByVal lpszSoundName _
    As String, ByVal uFlags As Long) As Long

Sub Zeitmakro()
With ThisWorkbook.Worksheets("Maßnahmen 2005").Range("A10")
    .Value = .Value - CDate("00:00:01")
    If .Value <> 0 Then
        ET = Now + TimeValue("00:00:01")
        If Second(.Value) = 30 Then
            Call sndPlaySound32("C:\Winnt\media\klingel.wav", 1)
        End If
        If Second(.Value) <= 5 Then
            Call sndPlaySound32("C:\Winnt\media\ding.wav", 1)
    End If
        Application.OnTime ET, "Zeitmakro"
    Else
        ThisWorkbook.Close True 'speichern
        ' Meldung bei Excel immer in Vordergrund
        ' Dim mldg
        ' mldg = MsgBox("Endzeit erreicht", 1048576, "Endzeit")
        ' 1048576 entspricht vbMsgBoxRtlReading
    End If
End With
End Sub


Sub MacrosON()
    'Dieses Macro ausführen wenn der Code zwischen
    'Application.EnableEvents = False und
    'Application.EnableEvents = True
    'angehalten wurde oder abstürzt
    Application.EnableEvents = True
End Sub


Gruß: Konni


Bild


Betrifft: AW: Countdown von: Konni
Geschrieben am: 18.02.2005 19:09:13

Hier der kompltte Code:

Option Explicit
Public ET As Variant
Public DaZeit As Date

Private Declare

Function sndPlaySound32 Lib "winmm.dll" _
    Alias "sndPlaySoundA" (ByVal lpszSoundName _
    As String, ByVal uFlags As Long) As Long

Sub Zeitmakro()
With ThisWorkbook.Worksheets("Maßnahmen 2005").Range("A10")
    .Value = .Value - CDate("00:00:01")
    If .Value <> 0 Then
        ET = Now + TimeValue("00:00:01")
        If Second(.Value) = 30 Then
            Call sndPlaySound32("C:\Winnt\media\klingel.wav", 1)
        End If
        If Second(.Value) <= 5 Then
            Call sndPlaySound32("C:\Winnt\media\ding.wav", 1)
    End If
        Application.OnTime ET, "Zeitmakro"
    Else
        ThisWorkbook.Close True 'speichern
        ' Meldung bei Excel immer in Vordergrund
        ' Dim mldg
        ' mldg = MsgBox("Endzeit erreicht", 1048576, "Endzeit")
        ' 1048576 entspricht vbMsgBoxRtlReading
    End If
End With
End Sub


Sub MacrosON()
    'Dieses Macro ausführen wenn der Code zwischen
    'Application.EnableEvents = False und
    'Application.EnableEvents = True
    'angehalten wurde oder abstürzt
    Application.EnableEvents = True
End Sub


Gruß: Konni


Bild


Betrifft: AW: Countdown von: Konni
Geschrieben am: 18.02.2005 19:09:25

Hier der kompltte Code:

Option Explicit
Public ET As Variant
Public DaZeit As Date

Private Declare

Function sndPlaySound32 Lib "winmm.dll" _
    Alias "sndPlaySoundA" (ByVal lpszSoundName _
    As String, ByVal uFlags As Long) As Long

Sub Zeitmakro()
With ThisWorkbook.Worksheets("Maßnahmen 2005").Range("A10")
    .Value = .Value - CDate("00:00:01")
    If .Value <> 0 Then
        ET = Now + TimeValue("00:00:01")
        If Second(.Value) = 30 Then
            Call sndPlaySound32("C:\Winnt\media\klingel.wav", 1)
        End If
        If Second(.Value) <= 5 Then
            Call sndPlaySound32("C:\Winnt\media\ding.wav", 1)
    End If
        Application.OnTime ET, "Zeitmakro"
    Else
        ThisWorkbook.Close True 'speichern
        ' Meldung bei Excel immer in Vordergrund
        ' Dim mldg
        ' mldg = MsgBox("Endzeit erreicht", 1048576, "Endzeit")
        ' 1048576 entspricht vbMsgBoxRtlReading
    End If
End With
End Sub


Sub MacrosON()
    'Dieses Macro ausführen wenn der Code zwischen
    'Application.EnableEvents = False und
    'Application.EnableEvents = True
    'angehalten wurde oder abstürzt
    Application.EnableEvents = True
End Sub


Gruß: Konni


Bild


Betrifft: AW: Countdown von: Ramses
Geschrieben am: 18.02.2005 20:20:39

Hallo

wenn du nur Sekunden prüfst, ist das klar :-)


Sub Zeitmakro()
With ThisWorkbook.Worksheets("Tabelle1").Range("A1")
    .Value = .Value - CDate("00:00:01")
    If .Value <> 0 Then
        ET = Now + TimeValue("00:00:01")
        If Minute(.Value) < 0 Then
            If Second(.Value) = 30 Then
                Call sndPlaySound32("C:\Winnt\media\klingel.wav", 1)
            End If
            If Second(.Value) <= 5 Then
                Call sndPlaySound32("C:\Winnt\media\ding.wav", 1)
            End If
        End If
        Application.OnTime ET, "Zeitmakro"
    Else
        ThisWorkbook.Close True 'speichern
        ' Meldung bei Excel immer in Vordergrund
        ' Dim mldg
        ' mldg = MsgBox("Endzeit erreicht", 1048576, "Endzeit")
        ' 1048576 entspricht vbMsgBoxRtlReading
    End If
End With
End Sub


Gruss Rainer


Bild


Betrifft: Sorry,... kleine Korrektur :-) von: Ramses
Geschrieben am: 18.02.2005 20:22:44

Hallo

es muss heissen

If Minute(.Value) = 0 Then

Gruss Rainer


Bild


Betrifft: AW: Sorry,... kleine Korrektur :-) von: Konni
Geschrieben am: 21.02.2005 06:56:02

Hallo Rainer,
vielen Dank für Deine Hilfe, klappt prima. - Konnte mich leider nicht früher bedanken, da ich ausser Haus war.
:-) Konni


 Bild

Beiträge aus den Excel-Beispielen zum Thema "Countdown"