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"