Clever-Excel-Forum

Normale Version: Bei Erscheinen einer MsgBox zeitgleich der Ton
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo.
Nach meinem ersten Post habe ich nun mittels des Forum eine schoene Tabelle mit diversen Button, hinterlegt mit Makros, erstellt.
Dank der Hilfe hier im Forum und des intensiven Lesens laeuft alles perfekt und erleichtert die Arbeit ungemein.

Eine kleine Frage haette ich noch:
Bei Klick eines Button erscheint eine Msg. Zusaetzlich wird ein Sound abgespielt. 
Die MsgBox soll mit ok bestaetigt werden damit sie sichtbar und auch lesbar ist.
So weit so gut.
Mit dem Makro wird der Sound abgespielt und ca. 2 - 3 Sekunden spaeter erscheint die Box.

Ist es moeglich, speziell den Ton fuer x Sekunden herauszuzoegern? 
Weil setzte ich den Befehl MsgBox zuerst geht das Makro erst mit ok weiter und der Ton kommt, wenn die Box weg ist.
Ich habe nach diversen Timern geschaut aber gefunden habe ich nur welche, die, nachdem ich sie probiert hatte, das gesamte Makro kurz anhalten.

Private Sub CommandButton4_Click()
ExecuteExcel4Macro ("SOUND.PLAY(,""C:\Windows\Media\tada.wav"")")
MsgBox "Text"
End Sub

Ueber Hilfe wuerde ich mich freuen.

Gruss
Markus
UserForm
Hallo Markus

Nimm eine UserForm
Den Text schreibst du in ein Label (Caption)
Der Code lautet dann,
Code:
Private Sub CommandButton4_Click()
UserForm1.Show vbModeless
    DoEvents
        ExecuteExcel4Macro ("SOUND.PLAY(,""C:\Windows\Media\tada.wav"")")
End Sub
Gruss Guschti
Eine Lösung wäre
Code:
MsgBox "Please Run Program First", vbExclamation

Das spielt dann einen Windows-Ton und nicht den Ton der von Dir genannten Datei.

Eine andere Lösung wäre
Code:
Option Explicit

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

Sub TestSound()
   Call sndPlaySound32("C:\windows\media\tada.wav", 1)
   MsgBox "Please Run Program First"
End Sub
Da sndPlay32 mut dem Flag 1 aufgerufen wird, wird der Code weiter ausgeführt, hier eine Doku dazu
Vielen Dank euch beiden.

Die einfachste und schnellste Methode war für mich:


Code:
MsgBox "Please Run Program First", vbExclamation

Ich habe anschließend den Windows Ton auf tada.wav geaendert und fertig wars.

Recht herzlichen Dank

Markus