Excel Sound

Bild

Betrifft: Excel Sound
von: Jens
Geschrieben am: 30.09.2015 13:37:24

Hallo,
ich habe ein VBA Makro, mit dem ich in einer Tabelle eine Uhr permanent laufen lassen kann. Diese Uhr tickt immer eine Sekunde hoch. Das Makro habe ich mir mal aus dem I-Net kopiert, es läuft super.
Im selben Makro, möchte ich nun einen Zellwert abfragen (Text) und dann bei erreichen eines Wertes, einen Sound abspielen lassen und zwar ohne, das ich zum Ausführen der Prüfung einen Button o.ä. drücken muss, sondern die Prüfung soll quasi auch jede Sekunde passieren.
Kann mir jemand helfen?
Vielen Dank im Voraus!
Modul:
Public DaEt As Date
Sub Zeitmakro()
ThisWorkbook.Worksheets("Auswertung").Range("D16") = Format(Time, "hh:mm:ss")
DaEt = Now + TimeValue("00:00:01")
Application.OnTime DaEt, "Zeitmakro"
End Sub
Tabelle:
Option Explicit

Private Sub Workbook_Open()
    Zeitmakro
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    On Error Resume Next
    Application.OnTime EarliestTime:=DaEt, Procedure:="Zeitmakro", Schedule:=False
End Sub

Bild

Betrifft: AW: Excel Sound
von: Beverly
Geschrieben am: 30.09.2015 15:37:05
Hi Jens,
meinst du so etwas:

Sub Zeitmakro()
    ThisWorkbook.Worksheets(1).Range("D16") = Format(Time, "hh:mm:ss")
    If Range("B10") = "Hallo" Then
        Beep 
        ' Range("B10").ClearContents
    End If
        
    DaEt = Now + TimeValue("00:00:01")
    Application.OnTime DaEt, "Zeitmakro"
End Sub

Wenn der Ton nicht dauernd abgespielt werden soll, dann musst du die auskommentierte Zeile aktivieren.



Bild

Betrifft: AW: Excel Sound
von: Jens
Geschrieben am: 30.09.2015 16:01:34
Hallo Karin,
ja so, nun piebt es wunderbar ;-) Ich würde gerne auch einen WAV Sound abspielen lassen. Wie muss ich den Einbinden?
Gruß Jens

Bild

Betrifft: AW: Excel Sound
von: Nepumuk
Geschrieben am: 30.09.2015 16:15:54
Hallo,
ein Beispiel:

Option Explicit

Private Declare PtrSafe Function sndPlaySoundA Lib "winmm.dll" ( _
    ByVal lpszSoundName As String, _
    ByVal uFlags As Long) As Long

Private Const SND_ASYNC As Long = &H1

Public Sub StartMusic()
    Call sndPlaySoundA("D:\Dateien\Präsentationen\Sound.wav", SND_ASYNC)
End Sub

Public Sub StopMusic()
    Call sndPlaySoundA("NULL", SND_ASYNC)
End Sub

Gruß
Nepumuk

Bild

Betrifft: AW: Excel Sound
von: Jens
Geschrieben am: 30.09.2015 16:34:53
Ich habe das jetzt wie folgt eingebunden, aber es piebt nur. Der Sound wird nicht gespielt.
Was mache ich noch falsch?
Option Explicit
Private Declare PtrSafe


Function sndPlaySoundA Lib "winmm.dll" ( _
    ByVal lpszSoundName As String, _
    ByVal uFlags As Long) As Long
Private Const SND_ASYNC As Long = &H1
Public DaEt As Date

Sub Zeitmakro()
    ThisWorkbook.Worksheets("Auswertung").Range("D15") = Format(Time, "hh:mm:ss")
    If Range("B17") = "PAUSE" Then
        Call sndPlaySoundA("C:\Windows\MediaWindows-Eingehender Anruf.wav", SND_ASYNC)
        'Beep
        'Range("B17").ClearContents
    End If
    DaEt = Now + TimeValue("00:00:01")
    Application.OnTime DaEt, "Zeitmakro"
End Sub


Bild

Betrifft: AW: Excel Sound
von: Nepumuk
Geschrieben am: 30.09.2015 16:49:18
Hallo,
die Dateien in dem Ordner sind maskiert. Sprich du siehst ihren tatsächlichen Dateinamen nicht. Der Name deiner Datei lautet tatsächlich: Windows Ringin.wav
Gruß
Nepumuk

Bild

Betrifft: AW: Excel Sound
von: Jens
Geschrieben am: 01.10.2015 07:42:08
Hallo Karin,
gibt es eine andere Möglichkeit außer -- Range("B10").ClearContents --, um den Sound nur einmal laufen zu lassen?.
Ich habe in der Zelle eine komplexe Formel, die ich nicht löschen will. Außerdem ist die Zelle eine verbundene Zelle, da kommt sowieso dann eine Fehlermeldung.
Danke+Gruß
Jens

Bild

Betrifft: AW: Excel Sound
von: Beverly
Geschrieben am: 01.10.2015 08:20:52
Hi Jens,
deklariere eine Boolean-Variable und setze sie auf True, wenn die Bedingung erfüllt wurde:

Option Explicit
Public DaEt As Date
Dim blnSchluss As Boolean
Sub Zeitmakro()
    ThisWorkbook.Worksheets(1).Range("D16") = Format(Time, "hh:mm:ss")
    If blnSchluss = False Then
        If Range("B10") = "Hallo" Then
            Beep
            blnSchluss = True
        End If
    End If
    DaEt = Now + TimeValue("00:00:01")
    Application.OnTime DaEt, "Zeitmakro"
End Sub



Bild

Betrifft: AW: Excel Sound
von: Jens
Geschrieben am: 01.10.2015 09:15:06
Alles Super, vielen Dank!!

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Zählenwenn?"