mein Name ist Alex und ich arbeite gerade an einem Tourenplan.
Ich möchte über die aktuelle Zeit steuern, dass bei Erreichen der Zeit der Vorgang formatiert wird. Gleichzeitig soll ein MS Wav-Ton erklingen, das den neuen Vorgang einläutet. Zu guter Letzt soll über eine Schaltfläche, als Bestätigun bzw. Kenntnisnahme, der Ton ausgeschaltet werden.
Da meine VBA-Makro Kenntnissen gegen "Null" gehen ich aber gewillt bin zu Lernen, bräuchte ich Unterstützung bei der Umsetzung. Meine Beispieldatei findet ihr anbei.
Was findet ihr in der Bespielt-Datei und was habe ich bisher erreiche können?
Ich habe für aktuelle Zeit folgendes Makro (A1) ergaunert:
Sub Zeitmakro()
ThisWorkbook.Worksheets("Zeitmakro").Range("A1") = Format(Time, "hh:mm:ss")
DaEt = Now + TimeValue("00:00:15")
Application.OnTime DaEt, "Zeitmakro"
End Sub
Wenn die Zeit (Zeiten in A6:A40) erreicht ist erfolgt über eine Bedingte Formatierung, '=WENN($A$1
Wegen dem SoundMe - Makro den ich über untenstehenden Makro abspielen lasse, habe ich die Taktzeit der Aktualisierung auf 15 Sekunden gesetzt. Bei 01 Sekunden wurde der Ton immer nur eine Sekunde gespielt. Aktivierung der SoundMe über '=WENN($B6=0;SoundMe();"")
#If Win64 Then
Private Declare PtrSafe Function PlaySound Lib "winmm.dll" _
Alias "PlaySoundA" (ByVal lpszName As String, _
ByVal hModule As LongPtr, ByVal dwFlags As Long) As Boolean
#Else
Private Declare Function PlaySound Lib "winmm.dll" _
Alias "PlaySoundA" (ByVal lpszName As String, _
ByVal hModule As Long, ByVal dwFlags As Long) As Boolean
#End If
Const SND_SYNC = &H0
Const SND_ASYNC = &H1
Const SND_FILENAME = &H20000
Function SoundMe() As String
'Updateby Extendoffice 20161223
Call PlaySound("c:\windows\media\Ring05.wav", _
0, SND_ASYNC Or SND_FILENAME)
SoundMe = ""
End Function
Über mein aktuelles Schaltflächenmakro zum ausschalten des Tons wird immer auch die Formel gelöscht. Das Darf aber nicht sein, weil ich es für nachfolgende Aktivierungszeiten brauche.
Und hier kommt ihr in Frage. Wie ich eingangs erwähnte würde ich meine Kenntnisse als ungenügend bezeichnen. Wie kann ich das Makro anpassen das die Formeln nicht gelöscht werden oder sollte ich hier lieber ein anderes Makro nutzen. Vielleicht können die Makros auch zusammengefasst oder leichter gestalten werden. Bin über jeden Tipp dankbar.
Sub SucheErsetze()
On Error Resume Next
Dim Zelle As Range
Dim SuchenNach As String
Dim ErsetzenDurch As String
SuchenNach = "0"
ErsetzenDurch = "5"
For Each Zelle In ActiveSheet.UsedRange
Zelle.Value = Application.Substitute(Zelle.Value, SuchenNach, ErsetzenDurch)
Next Zelle
On Error GoTo 0
End Sub