OVH Cloud OVH Cloud

associer msgbox et wave

5 réponses
Avatar
Chris & Henk
re-bonjour,

est ce possible d'associer un fichier wav a un msgbox ?
comment créer un lien vers un fichier wav sous excel

5 réponses

Avatar
Norvi
Bonjour,

Pour la macro :

Public Declare Function PlaySound Lib "winmm.dll" _
Alias "sndPlaySoundA" (ByVal NomDuFichier As String, _
ByVal uFlags As Long) As Long
Sub JoueLeFichier(AdresseDuFichier As String)
PlaySound AdresseDuFichier, 1
End Sub
Sub Test()
JoueLeFichier "c:a.wav"
MsgBox "Et la musique joue..."
End Sub

Pour un lien, il te suffit de faire un lien hypertext vers le fichier
WAV

Bonne journée
Avatar
Jacques93
Bonjour Chris & Henk,

Les sons associés au MsgBox sont stockés dans le registre dans

HKCUAppEventsSchemesApps.Default<TypeDeMsgBox>.Current

Une piste :

Private Function MyMsgBox(Msg As String, _
Optional Prm As VbMsgBoxStyle = vbOKOnly, _
Optional Title As String = "", _
Optional Sound As String = "") As Integer
Const cDefaut = "HKCUAppEventsSchemesApps.Default.Default.Current"
Const cInformation =
"HKCUAppEventsSchemesApps.DefaultSystemAsterisk.Current"
Const cExclamation =
"HKCUAppEventsSchemesApps.DefaultSystemExclamation.Current"
Const cQuestion =
"HKCUAppEventsSchemesApps.DefaultSystemQuestion.Current"
Const cCritical =
"HKCUAppEventsSchemesApps.DefaultSystemHand.Current"

Dim WshShell As Object
Dim SonDefaut As String
Dim SonInformation As String
Dim SonExclamation As String
Dim SonQuestion As String
Dim SonCritical As String

Set WshShell = CreateObject("WScript.Shell")
SonDefaut = WshShell.RegRead(cDefaut)
SonInformation = WshShell.RegRead(cInformation)
SonExclamation = WshShell.RegRead(cExclamation)
SonQuestion = WshShell.RegRead(cQuestion)
SonCritical = WshShell.RegRead(cCritical)

'MsgBox "Son Defaut : " & SonDefaut & vbCrLf & _
' "Son Information : " & SonInformation & vbCrLf & _
' "Son Exclamation : " & SonExclamation & vbCrLf & _
' "Son Question : " & SonQuestion & vbCrLf & _
' "Son Critical : " & SonCritical

If Len(Sound) > 0 Then Sound = Application.Path & "" & Sound
WshShell.RegWrite cDefaut, Sound
WshShell.RegWrite cInformation, Sound
WshShell.RegWrite cExclamation, Sound
WshShell.RegWrite cQuestion, Sound
WshShell.RegWrite cCritical, Sound

MyMsgBox = MsgBox(Msg, Prm, IIf(Title = "", _
ActiveWorkbook.Name, Title))

WshShell.RegWrite cDefaut, SonDefaut, "REG_EXPAND_SZ"
WshShell.RegWrite cInformation, SonInformation, "REG_EXPAND_SZ"
WshShell.RegWrite cExclamation, SonExclamation, "REG_EXPAND_SZ"
WshShell.RegWrite cQuestion, SonQuestion, "REG_EXPAND_SZ"
WshShell.RegWrite cCritical, SonCritical, "REG_EXPAND_SZ"
End Function

Private Sub CommandButton1_Click()
Dim Rep As Integer

Rep = MyMsgBox("Mon message" & vbCrLf & "avec mon son !!!", _
vbQuestion Or vbOKCancel, , "MonSon.wav")
End Sub


re-bonjour,

est ce possible d'associer un fichier wav a un msgbox ?
comment créer un lien vers un fichier wav sous excel





--
Cordialement,

Jacques.

Avatar
Chris & Henk
Oups ! suis novice mais vraiment super novice !

je place les 3 premières lignes ou dans mon programme car ça siffle de
toutes les cotés !
Pas le droit de declarer en public dans ce module.
Puis je remplace NomDuFichier avec "a;wav" et AdresseDuFichier avec
"c:a.wav" ? ou pas du tout ?


"Norvi" a écrit dans le message de news:

Bonjour,

Pour la macro :

Public Declare Function PlaySound Lib "winmm.dll" _
Alias "sndPlaySoundA" (ByVal NomDuFichier As String, _
ByVal uFlags As Long) As Long
Sub JoueLeFichier(AdresseDuFichier As String)
PlaySound AdresseDuFichier, 1
End Sub
Sub Test()
JoueLeFichier "c:a.wav"
MsgBox "Et la musique joue..."
End Sub

Pour un lien, il te suffit de faire un lien hypertext vers le fichier
WAV

Bonne journée
Avatar
Norvi
Bonsoir,

Tu me le code tout en haut d'un module (Declare doit être à la
première ligne):
Declare Function PlaySound Lib "winmm.dll" _
Alias "sndPlaySoundA" (ByVal NomDuFichier As String, _
ByVal uFlags As Long) As Long
Sub JoueLeFichier(AdresseDuFichier As String)
PlaySound AdresseDuFichier, 1
End Sub
Sub Test()
JoueLeFichier "c:a.wav"
MsgBox "Et la musique joue..."
End Sub

Ne touches à rien dans les 3 premieres lignes.
Mets l'adresse de ton fichier à la place de "c:a.wav"

C'est la seul chose que tu as besoin de modifier, avec le text du
msgbox.

si ton msgbox est quelques part dans ton code, tu n'a plus qu'a mettre
JoueLeFichier "c:a.wav"
juste au dessus.

Bonne soirée
Avatar
Chris & Henk
Punaise tu es balaise :)

Merci.

"Norvi" a écrit dans le message de news:

Bonsoir,

Tu me le code tout en haut d'un module (Declare doit être à la
première ligne):
Declare Function PlaySound Lib "winmm.dll" _
Alias "sndPlaySoundA" (ByVal NomDuFichier As String, _
ByVal uFlags As Long) As Long
Sub JoueLeFichier(AdresseDuFichier As String)
PlaySound AdresseDuFichier, 1
End Sub
Sub Test()
JoueLeFichier "c:a.wav"
MsgBox "Et la musique joue..."
End Sub

Ne touches à rien dans les 3 premieres lignes.
Mets l'adresse de ton fichier à la place de "c:a.wav"

C'est la seul chose que tu as besoin de modifier, avec le text du
msgbox.

si ton msgbox est quelques part dans ton code, tu n'a plus qu'a mettre
JoueLeFichier "c:a.wav"
juste au dessus.

Bonne soirée