Änderung der Alarmzeit
20.07.2004 10:04:52
Konni
warum funktioniert die Alarmzeit (hier: 00:00:30) nur bei der Einstellung 30 s?
Wenn ich andere Werte eingebe, z.B. 10 s, 20 s, 40 s u.s.w, wird keine Wavdatei abgespielt. - Und wie baue ich in den Code ein, dass ab 10 s alle Sekunde, bis Erreichen 0 s, ein Signal abgespielt wird? (Countdown).
Nachstehenden Code habe ich mit freundlicher Unterstützung dieses Forums an meine Bedürfnisse angepasst. - Ich bin eine absolute VBA-Null.
Vielen Dank im voraus: Konni
ARBEITSMAPPE
Option Explicit
Private Sub Workbook_Open()
DaZeit = "0:01:00"
ThisWorkbook.Worksheets("Submissionen 1-50").Range("A11") = CDate(DaZeit)
Zeitmakro
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
Application.OnTime EarliestTime:=ET, Procedure:="Zeitmakro", Schedule:=False
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
ThisWorkbook.Worksheets("Submissionen 1-50").Range("A11") = DaZeit
End Sub
MODUL 1
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("Submissionen 1-50").Range("A11")
.Value = .Value - CDate("00:00:01")
If .Value 0 Then
ET = Now + TimeValue("00:00:01")
If .Value = TimeValue("00:00:30") Then
Call sndPlaySound32("C:\Winnt\media\klingel.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