Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Fonctions API (?) et versions de Windows

35 réponses
Avatar
ManBas
Bonjour à tous,
Selon une solution d'Excelabo j'ai recopié le code suivant pour émettre un
son wav:

Declare Function sndPlaySound32 Lib "C:\WINDOWS\SYSTEM32\winmm.dll" _
Alias "sndPlaySoundA" (ByVal lpszSoundName As String, _
ByVal uFlags As Long) As Long

Sub SonEssai_wav()
Call sndPlaySound32(ThisWorkbook.Path & "\SonEssai.Wav", 0)
End Sub

C'est génial et tout baigne...dans WinXP.
Echec de la ligne:
Call sndPlaySound32(ThisWorkbook.Path & "\SonEssai.Wav", 0)
...dans 98 et NT2000.
Que puis-je faire pour corriger l'anomalie ? (restons cool, mon niveau ne
dépasse guère le mimétisme).
Merci d'avance.

10 réponses

1 2 3 4
Avatar
ManBas
OK pour l'écriture (plus de rouge!)...mais pas de SonEssai non plus! Il
demeure l'execution d'un son système.

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

...ouppsss
PlaySound ThisWorkbook.Path & "SonEssai.Wav", ByVal 0&, SND_FILENAME Or
SND_ASYNC

"LSteph" a écrit dans le message de news:
%
Estu sûr qu'il est sur ce répertoire et que c'est bien celui du wbook de
la macro..
sinon ceci devrait

PlaySound "ThisWorkbook.Path & "SonEssai.Wav", ByVal 0&, SND_FILENAME Or
SND_ASYNC

"ManBas" a écrit dans le message de news:
%
Bonjour LSteph,
Merci pour ton aide.
Je mets du temps à te répondre mais je ne parviens pas à ré-insérer mon
ThisWorkbook.Path & "SonEssai.Wav"


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

Bonjour "ManBas" ,
Ceci devrait passer par exemple(declare d'un seul tenant):

Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" (ByVal
lpszName As String, ByVal hModule As Long, ByVal dwFlags As Long) As
Long
Sub test()
PlaySound "C:WINDOWSMEDIATADA.WAV", ByVal 0&, SND_FILENAME Or
SND_ASYNC
End Sub


'lSteph



a écrit dans le message de news:

Bonjour à tous,
Selon une solution d'Excelabo j'ai recopié le code suivant pour
émettre un son wav:

Declare Function sndPlaySound32 Lib "C:WINDOWSSYSTEM32winmm.dll" _
Alias "sndPlaySoundA" (ByVal lpszSoundName As String, _
ByVal uFlags As Long) As Long

Sub SonEssai_wav()
Call sndPlaySound32(ThisWorkbook.Path & "SonEssai.Wav", 0)
End Sub

C'est génial et tout baigne...dans WinXP.
Echec de la ligne:
Call sndPlaySound32(ThisWorkbook.Path & "SonEssai.Wav", 0)
...dans 98 et NT2000.
Que puis-je faire pour corriger l'anomalie ? (restons cool, mon niveau
ne dépasse guère le mimétisme).
Merci d'avance.



















Avatar
michdenis
Bonjour Manbas,

'----------------------
Sub JouerSon()
Dim File As String
File = ThisWorkbook.Path & "SonEssai.Wav"
PlaySound File, ByVal 0&, SND_FILENAME Or SND_ASYNC
End Sub
'----------------------


Salutations!


"ManBas" a écrit dans le message de news: %
Merci MichDenis. J'ai le même problème que pour la réponse de LSteph: dans
la procédure je ne parviens plus à replacer mon "SonEssai".

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

Bonjour ManBas,

Cet API incluant les constantes devraient fonctionner je crois de Windows
95 à windows XP

'Déclaration dans le haut du module : Source : URL:
http://www.allapi.net/
Private Const SND_APPLICATION = &H80 ' look for application specific
association
Private Const SND_ALIAS = &H10000 ' name is a WIN.INI [sounds] entry
Private Const SND_ALIAS_ID = &H110000 ' name is a WIN.INI [sounds] entry
identifier
Private Const SND_ASYNC = &H1 ' play asynchronously
Private Const SND_FILENAME = &H20000 ' name is a file name
Private Const SND_LOOP = &H8 ' loop the sound until next sndPlaySound
Private Const SND_MEMORY = &H4 ' lpszSoundName points to a memory file
Private Const SND_NODEFAULT = &H2 ' silence not default, if sound not
found
Private Const SND_NOSTOP = &H10 ' don't stop any currently playing sound
Private Const SND_NOWAIT = &H2000 ' don't wait if the driver is busy
Private Const SND_PURGE = &H40 ' purge non-static events for task
Private Const SND_RESOURCE = &H40004 ' name is a resource name or atom
Private Const SND_SYNC = &H0 ' play synchronously (default)
Private Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA"
(ByVal lpszName As String, ByVal hModule As Long, ByVal
dwFlags As Long) As Long

Sub JouerSon()
PlaySound "C:WINDOWSMEDIATADA.WAV", ByVal 0&, SND_FILENAME Or SND_ASYNC
End Sub


Salutations!



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

Bonjour MichDenis,
Effectivement ça marche bien dans 98. Demain je chercherai le fichier dans
NT2000.
Merci de ton aide.
Pourrais-tu STP m'écrire les lignes qui introduisent "si le système
d'application est ..."?


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

Bonjour ManBas,

Sous toute réserve ...

Le répertoire "System32" n'existe pas sous Windows 98, tu devrais le
remplacer par "System"
dans la ligne de déclaration de l'API.

Mais la meilleure façon, est de rechercher le fichier "winmm.dll " dans
l'arborescence de
l'explorateur windows et d'adapter selon la version du système
d'opération
le chemin
dans la déclaration de l'API.


Salutations!


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

Bonjour à tous,
Selon une solution d'Excelabo j'ai recopié le code suivant pour émettre
un
son wav:

Declare Function sndPlaySound32 Lib "C:WINDOWSSYSTEM32winmm.dll" _
Alias "sndPlaySoundA" (ByVal lpszSoundName As String, _
ByVal uFlags As Long) As Long

Sub SonEssai_wav()
Call sndPlaySound32(ThisWorkbook.Path & "SonEssai.Wav", 0)
End Sub

C'est génial et tout baigne...dans WinXP.
Echec de la ligne:
Call sndPlaySound32(ThisWorkbook.Path & "SonEssai.Wav", 0)
...dans 98 et NT2000.
Que puis-je faire pour corriger l'anomalie ? (restons cool, mon niveau ne
dépasse guère le mimétisme).
Merci d'avance.








Avatar
ManBas
La dernière écriture de LSteph est OK "grammaticalement". La tienne
fonctionne aussi...mais même remarque que pour LSteph: le son renvoyé
demeure un son système et pas le SonEssai...

"michdenis" a écrit dans le message de news:
%23W$
Bonjour Manbas,

'----------------------
Sub JouerSon()
Dim File As String
File = ThisWorkbook.Path & "SonEssai.Wav"
PlaySound File, ByVal 0&, SND_FILENAME Or SND_ASYNC
End Sub
'----------------------


Salutations!


"ManBas" a écrit dans le message de news:
%
Merci MichDenis. J'ai le même problème que pour la réponse de LSteph: dans
la procédure je ne parviens plus à replacer mon "SonEssai".

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

Bonjour ManBas,

Cet API incluant les constantes devraient fonctionner je crois de Windows
95 à windows XP

'Déclaration dans le haut du module : Source : URL:
http://www.allapi.net/
Private Const SND_APPLICATION = &H80 ' look for application specific
association
Private Const SND_ALIAS = &H10000 ' name is a WIN.INI [sounds] entry
Private Const SND_ALIAS_ID = &H110000 ' name is a WIN.INI [sounds] entry
identifier
Private Const SND_ASYNC = &H1 ' play asynchronously
Private Const SND_FILENAME = &H20000 ' name is a file name
Private Const SND_LOOP = &H8 ' loop the sound until next sndPlaySound
Private Const SND_MEMORY = &H4 ' lpszSoundName points to a memory file
Private Const SND_NODEFAULT = &H2 ' silence not default, if sound not
found
Private Const SND_NOSTOP = &H10 ' don't stop any currently playing sound
Private Const SND_NOWAIT = &H2000 ' don't wait if the driver is busy
Private Const SND_PURGE = &H40 ' purge non-static events for task
Private Const SND_RESOURCE = &H40004 ' name is a resource name or atom
Private Const SND_SYNC = &H0 ' play synchronously (default)
Private Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA"
(ByVal lpszName As String, ByVal hModule As Long, ByVal
dwFlags As Long) As Long

Sub JouerSon()
PlaySound "C:WINDOWSMEDIATADA.WAV", ByVal 0&, SND_FILENAME Or
SND_ASYNC
End Sub


Salutations!



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

Bonjour MichDenis,
Effectivement ça marche bien dans 98. Demain je chercherai le fichier
dans
NT2000.
Merci de ton aide.
Pourrais-tu STP m'écrire les lignes qui introduisent "si le système
d'application est ..."?


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

Bonjour ManBas,

Sous toute réserve ...

Le répertoire "System32" n'existe pas sous Windows 98, tu devrais le
remplacer par "System"
dans la ligne de déclaration de l'API.

Mais la meilleure façon, est de rechercher le fichier "winmm.dll " dans
l'arborescence de
l'explorateur windows et d'adapter selon la version du système
d'opération
le chemin
dans la déclaration de l'API.


Salutations!


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

Bonjour à tous,
Selon une solution d'Excelabo j'ai recopié le code suivant pour émettre
un
son wav:

Declare Function sndPlaySound32 Lib "C:WINDOWSSYSTEM32winmm.dll" _
Alias "sndPlaySoundA" (ByVal lpszSoundName As String, _
ByVal uFlags As Long) As Long

Sub SonEssai_wav()
Call sndPlaySound32(ThisWorkbook.Path & "SonEssai.Wav", 0)
End Sub

C'est génial et tout baigne...dans WinXP.
Echec de la ligne:
Call sndPlaySound32(ThisWorkbook.Path & "SonEssai.Wav", 0)
...dans 98 et NT2000.
Que puis-je faire pour corriger l'anomalie ? (restons cool, mon niveau
ne
dépasse guère le mimétisme).
Merci d'avance.













Avatar
LSteph
le fichier son est dans le même répertoire que celui qui contient la macro?

Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" (ByVal
lpszName As String, ByVal hModule As Long, ByVal dwFlags As Long) As Long

Sub monson()
Dim fichier as String
chdir ThisWorkbook.Path
fichier="SonEssai.Wav"
PlaySound fichier, ByVal 0&, SND_FILENAME Or SND_ASYNC
End Sub

"LSteph" a écrit dans le message de news:
eTA6I%
Rouge où?

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

Sûr et certain (je n'ai pas touché à ce qui fonctionnait). Le problème
vient du code qui s'auto-écrit en rouge: j'ai essayé avec parenthèses,
avec guillemets, etc...

"LSteph" a écrit dans le message de news:
%
Estu sûr qu'il est sur ce répertoire et que c'est bien celui du wbook de
la macro..
sinon ceci devrait

PlaySound "ThisWorkbook.Path & "SonEssai.Wav", ByVal 0&, SND_FILENAME
Or SND_ASYNC

"ManBas" a écrit dans le message de news:
%
Bonjour LSteph,
Merci pour ton aide.
Je mets du temps à te répondre mais je ne parviens pas à ré-insérer mon
ThisWorkbook.Path & "SonEssai.Wav"


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

Bonjour "ManBas" ,
Ceci devrait passer par exemple(declare d'un seul tenant):

Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" (ByVal
lpszName As String, ByVal hModule As Long, ByVal dwFlags As Long) As
Long
Sub test()
PlaySound "C:WINDOWSMEDIATADA.WAV", ByVal 0&, SND_FILENAME Or
SND_ASYNC
End Sub


'lSteph



a écrit dans le message de news:

Bonjour à tous,
Selon une solution d'Excelabo j'ai recopié le code suivant pour
émettre un son wav:

Declare Function sndPlaySound32 Lib "C:WINDOWSSYSTEM32winmm.dll" _
Alias "sndPlaySoundA" (ByVal lpszSoundName As String, _
ByVal uFlags As Long) As Long

Sub SonEssai_wav()
Call sndPlaySound32(ThisWorkbook.Path & "SonEssai.Wav", 0)
End Sub

C'est génial et tout baigne...dans WinXP.
Echec de la ligne:
Call sndPlaySound32(ThisWorkbook.Path & "SonEssai.Wav", 0)
...dans 98 et NT2000.
Que puis-je faire pour corriger l'anomalie ? (restons cool, mon
niveau ne dépasse guère le mimétisme).
Merci d'avance.























Avatar
ManBas
Absolument (il y était déjà pour l'appel API "originel").

"LSteph" a écrit dans le message de news:
%
le fichier son est dans le même répertoire que celui qui contient la
macro?

Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" (ByVal
lpszName As String, ByVal hModule As Long, ByVal dwFlags As Long) As Long

Sub monson()
Dim fichier as String
chdir ThisWorkbook.Path
fichier="SonEssai.Wav"
PlaySound fichier, ByVal 0&, SND_FILENAME Or SND_ASYNC
End Sub

"LSteph" a écrit dans le message de news:
eTA6I%
Rouge où?

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

Sûr et certain (je n'ai pas touché à ce qui fonctionnait). Le problème
vient du code qui s'auto-écrit en rouge: j'ai essayé avec parenthèses,
avec guillemets, etc...

"LSteph" a écrit dans le message de news:
%
Estu sûr qu'il est sur ce répertoire et que c'est bien celui du wbook
de la macro..
sinon ceci devrait

PlaySound "ThisWorkbook.Path & "SonEssai.Wav", ByVal 0&, SND_FILENAME
Or SND_ASYNC

"ManBas" a écrit dans le message de news:
%
Bonjour LSteph,
Merci pour ton aide.
Je mets du temps à te répondre mais je ne parviens pas à ré-insérer
mon
ThisWorkbook.Path & "SonEssai.Wav"


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

Bonjour "ManBas" ,
Ceci devrait passer par exemple(declare d'un seul tenant):

Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" (ByVal
lpszName As String, ByVal hModule As Long, ByVal dwFlags As Long) As
Long
Sub test()
PlaySound "C:WINDOWSMEDIATADA.WAV", ByVal 0&, SND_FILENAME Or
SND_ASYNC
End Sub


'lSteph



a écrit dans le message de news:

Bonjour à tous,
Selon une solution d'Excelabo j'ai recopié le code suivant pour
émettre un son wav:

Declare Function sndPlaySound32 Lib "C:WINDOWSSYSTEM32winmm.dll"
_
Alias "sndPlaySoundA" (ByVal lpszSoundName As String, _
ByVal uFlags As Long) As Long

Sub SonEssai_wav()
Call sndPlaySound32(ThisWorkbook.Path & "SonEssai.Wav", 0)
End Sub

C'est génial et tout baigne...dans WinXP.
Echec de la ligne:
Call sndPlaySound32(ThisWorkbook.Path & "SonEssai.Wav", 0)
...dans 98 et NT2000.
Que puis-je faire pour corriger l'anomalie ? (restons cool, mon
niveau ne dépasse guère le mimétisme).
Merci d'avance.



























Avatar
LSteph
...chez moi j'ai bien le son, je ne comprends pas!

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

Absolument (il y était déjà pour l'appel API "originel").

"LSteph" a écrit dans le message de news:
%
le fichier son est dans le même répertoire que celui qui contient la
macro?

Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" (ByVal
lpszName As String, ByVal hModule As Long, ByVal dwFlags As Long) As
Long

Sub monson()
Dim fichier as String
chdir ThisWorkbook.Path
fichier="SonEssai.Wav"
PlaySound fichier, ByVal 0&, SND_FILENAME Or SND_ASYNC
End Sub

"LSteph" a écrit dans le message de news:
eTA6I%
Rouge où?

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

Sûr et certain (je n'ai pas touché à ce qui fonctionnait). Le problème
vient du code qui s'auto-écrit en rouge: j'ai essayé avec parenthèses,
avec guillemets, etc...

"LSteph" a écrit dans le message de news:
%
Estu sûr qu'il est sur ce répertoire et que c'est bien celui du wbook
de la macro..
sinon ceci devrait

PlaySound "ThisWorkbook.Path & "SonEssai.Wav", ByVal 0&, SND_FILENAME
Or SND_ASYNC

"ManBas" a écrit dans le message de
news: %
Bonjour LSteph,
Merci pour ton aide.
Je mets du temps à te répondre mais je ne parviens pas à ré-insérer
mon
ThisWorkbook.Path & "SonEssai.Wav"


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

Bonjour "ManBas" ,
Ceci devrait passer par exemple(declare d'un seul tenant):

Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" (ByVal
lpszName As String, ByVal hModule As Long, ByVal dwFlags As Long) As
Long
Sub test()
PlaySound "C:WINDOWSMEDIATADA.WAV", ByVal 0&, SND_FILENAME Or
SND_ASYNC
End Sub


'lSteph



a écrit dans le message de news:

Bonjour à tous,
Selon une solution d'Excelabo j'ai recopié le code suivant pour
émettre un son wav:

Declare Function sndPlaySound32 Lib "C:WINDOWSSYSTEM32winmm.dll"
_
Alias "sndPlaySoundA" (ByVal lpszSoundName As String, _
ByVal uFlags As Long) As Long

Sub SonEssai_wav()
Call sndPlaySound32(ThisWorkbook.Path & "SonEssai.Wav", 0)
End Sub

C'est génial et tout baigne...dans WinXP.
Echec de la ligne:
Call sndPlaySound32(ThisWorkbook.Path & "SonEssai.Wav", 0)
...dans 98 et NT2000.
Que puis-je faire pour corriger l'anomalie ? (restons cool, mon
niveau ne dépasse guère le mimétisme).
Merci d'avance.































Avatar
michdenis
| le son renvoyé demeure un son système et pas le SonEssai...

Qu'est-ce que cela veut dire ? Que ton fichier .Wav ne s'exécute pas ?

Peux-tu faire jouer un fichier .Wav de Windows avec une ligne de
code similaire ?


Salutations!



"michdenis" a écrit dans le message de news:
%23W$
Bonjour Manbas,

'----------------------
Sub JouerSon()
Dim File As String
File = ThisWorkbook.Path & "SonEssai.Wav"
PlaySound File, ByVal 0&, SND_FILENAME Or SND_ASYNC
End Sub
'----------------------


Salutations!


"ManBas" a écrit dans le message de news:
%
Merci MichDenis. J'ai le même problème que pour la réponse de LSteph: dans
la procédure je ne parviens plus à replacer mon "SonEssai".

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

Bonjour ManBas,

Cet API incluant les constantes devraient fonctionner je crois de Windows
95 à windows XP

'Déclaration dans le haut du module : Source : URL:
http://www.allapi.net/
Private Const SND_APPLICATION = &H80 ' look for application specific
association
Private Const SND_ALIAS = &H10000 ' name is a WIN.INI [sounds] entry
Private Const SND_ALIAS_ID = &H110000 ' name is a WIN.INI [sounds] entry
identifier
Private Const SND_ASYNC = &H1 ' play asynchronously
Private Const SND_FILENAME = &H20000 ' name is a file name
Private Const SND_LOOP = &H8 ' loop the sound until next sndPlaySound
Private Const SND_MEMORY = &H4 ' lpszSoundName points to a memory file
Private Const SND_NODEFAULT = &H2 ' silence not default, if sound not
found
Private Const SND_NOSTOP = &H10 ' don't stop any currently playing sound
Private Const SND_NOWAIT = &H2000 ' don't wait if the driver is busy
Private Const SND_PURGE = &H40 ' purge non-static events for task
Private Const SND_RESOURCE = &H40004 ' name is a resource name or atom
Private Const SND_SYNC = &H0 ' play synchronously (default)
Private Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA"
(ByVal lpszName As String, ByVal hModule As Long, ByVal
dwFlags As Long) As Long

Sub JouerSon()
PlaySound "C:WINDOWSMEDIATADA.WAV", ByVal 0&, SND_FILENAME Or
SND_ASYNC
End Sub


Salutations!



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

Bonjour MichDenis,
Effectivement ça marche bien dans 98. Demain je chercherai le fichier
dans
NT2000.
Merci de ton aide.
Pourrais-tu STP m'écrire les lignes qui introduisent "si le système
d'application est ..."?


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

Bonjour ManBas,

Sous toute réserve ...

Le répertoire "System32" n'existe pas sous Windows 98, tu devrais le
remplacer par "System"
dans la ligne de déclaration de l'API.

Mais la meilleure façon, est de rechercher le fichier "winmm.dll " dans
l'arborescence de
l'explorateur windows et d'adapter selon la version du système
d'opération
le chemin
dans la déclaration de l'API.


Salutations!


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

Bonjour à tous,
Selon une solution d'Excelabo j'ai recopié le code suivant pour émettre
un
son wav:

Declare Function sndPlaySound32 Lib "C:WINDOWSSYSTEM32winmm.dll" _
Alias "sndPlaySoundA" (ByVal lpszSoundName As String, _
ByVal uFlags As Long) As Long

Sub SonEssai_wav()
Call sndPlaySound32(ThisWorkbook.Path & "SonEssai.Wav", 0)
End Sub

C'est génial et tout baigne...dans WinXP.
Echec de la ligne:
Call sndPlaySound32(ThisWorkbook.Path & "SonEssai.Wav", 0)
...dans 98 et NT2000.
Que puis-je faire pour corriger l'anomalie ? (restons cool, mon niveau
ne
dépasse guère le mimétisme).
Merci d'avance.













Avatar
ManBas
Merci infiniment pour tous tes efforts, ainsi qu'à MichDenis.
Vous êtes vraiment bons.
Je me crevé les yeux pour voir une erreur de transcription de ma part, sans
succès.
Lorsque je reviens à la solution originelle, en changeant SYSTEM32 pour
SYSTEM (version 98) tout est OK, sans que je n'ai à toucher au fichier Wav.
Avec les nouveaux codes, j'obtiens un son systeme (lequel? peu importe),
autant dans XP que dans 98.

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

...chez moi j'ai bien le son, je ne comprends pas!

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

Absolument (il y était déjà pour l'appel API "originel").

"LSteph" a écrit dans le message de news:
%
le fichier son est dans le même répertoire que celui qui contient la
macro?

Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" (ByVal
lpszName As String, ByVal hModule As Long, ByVal dwFlags As Long) As
Long

Sub monson()
Dim fichier as String
chdir ThisWorkbook.Path
fichier="SonEssai.Wav"
PlaySound fichier, ByVal 0&, SND_FILENAME Or SND_ASYNC
End Sub

"LSteph" a écrit dans le message de news:
eTA6I%
Rouge où?

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

Sûr et certain (je n'ai pas touché à ce qui fonctionnait). Le problème
vient du code qui s'auto-écrit en rouge: j'ai essayé avec parenthèses,
avec guillemets, etc...

"LSteph" a écrit dans le message de news:
%
Estu sûr qu'il est sur ce répertoire et que c'est bien celui du wbook
de la macro..
sinon ceci devrait

PlaySound "ThisWorkbook.Path & "SonEssai.Wav", ByVal 0&,
SND_FILENAME Or SND_ASYNC

"ManBas" a écrit dans le message de
news: %
Bonjour LSteph,
Merci pour ton aide.
Je mets du temps à te répondre mais je ne parviens pas à ré-insérer
mon
ThisWorkbook.Path & "SonEssai.Wav"


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

Bonjour "ManBas" ,
Ceci devrait passer par exemple(declare d'un seul tenant):

Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA"
(ByVal lpszName As String, ByVal hModule As Long, ByVal dwFlags As
Long) As Long
Sub test()
PlaySound "C:WINDOWSMEDIATADA.WAV", ByVal 0&, SND_FILENAME Or
SND_ASYNC
End Sub


'lSteph



a écrit dans le message de news:

Bonjour à tous,
Selon une solution d'Excelabo j'ai recopié le code suivant pour
émettre un son wav:

Declare Function sndPlaySound32 Lib
"C:WINDOWSSYSTEM32winmm.dll" _
Alias "sndPlaySoundA" (ByVal lpszSoundName As String, _
ByVal uFlags As Long) As Long

Sub SonEssai_wav()
Call sndPlaySound32(ThisWorkbook.Path & "SonEssai.Wav", 0)
End Sub

C'est génial et tout baigne...dans WinXP.
Echec de la ligne:
Call sndPlaySound32(ThisWorkbook.Path & "SonEssai.Wav", 0)
...dans 98 et NT2000.
Que puis-je faire pour corriger l'anomalie ? (restons cool, mon
niveau ne dépasse guère le mimétisme).
Merci d'avance.



































Avatar
ManBas
En effet mon fichier Wav ne s'éxécute pas, il n'y a pas d'arrêt du code, et
sur la ligne
PlaySound File, ByVal 0&, SND_FILENAME Or SND_ASYNC
un son que j'appelle système (parce que c'est un son bref monotonal)(je vais
essayer de le nommer) est émis.
La macro arrive normalement à son terme.

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

| le son renvoyé demeure un son système et pas le SonEssai...

Qu'est-ce que cela veut dire ? Que ton fichier .Wav ne s'exécute pas ?

Peux-tu faire jouer un fichier .Wav de Windows avec une ligne de
code similaire ?


Salutations!



"michdenis" a écrit dans le message de news:
%23W$
Bonjour Manbas,

'----------------------
Sub JouerSon()
Dim File As String
File = ThisWorkbook.Path & "SonEssai.Wav"
PlaySound File, ByVal 0&, SND_FILENAME Or SND_ASYNC
End Sub
'----------------------


Salutations!


"ManBas" a écrit dans le message de news:
%
Merci MichDenis. J'ai le même problème que pour la réponse de LSteph:
dans
la procédure je ne parviens plus à replacer mon "SonEssai".

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

Bonjour ManBas,

Cet API incluant les constantes devraient fonctionner je crois de
Windows
95 à windows XP

'Déclaration dans le haut du module : Source : URL:
http://www.allapi.net/
Private Const SND_APPLICATION = &H80 ' look for application specific
association
Private Const SND_ALIAS = &H10000 ' name is a WIN.INI [sounds] entry
Private Const SND_ALIAS_ID = &H110000 ' name is a WIN.INI [sounds] entry
identifier
Private Const SND_ASYNC = &H1 ' play asynchronously
Private Const SND_FILENAME = &H20000 ' name is a file name
Private Const SND_LOOP = &H8 ' loop the sound until next sndPlaySound
Private Const SND_MEMORY = &H4 ' lpszSoundName points to a memory file
Private Const SND_NODEFAULT = &H2 ' silence not default, if sound not
found
Private Const SND_NOSTOP = &H10 ' don't stop any currently playing sound
Private Const SND_NOWAIT = &H2000 ' don't wait if the driver is busy
Private Const SND_PURGE = &H40 ' purge non-static events for task
Private Const SND_RESOURCE = &H40004 ' name is a resource name or atom
Private Const SND_SYNC = &H0 ' play synchronously (default)
Private Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA"
(ByVal lpszName As String, ByVal hModule As Long, ByVal
dwFlags As Long) As Long

Sub JouerSon()
PlaySound "C:WINDOWSMEDIATADA.WAV", ByVal 0&, SND_FILENAME Or
SND_ASYNC
End Sub


Salutations!



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

Bonjour MichDenis,
Effectivement ça marche bien dans 98. Demain je chercherai le fichier
dans
NT2000.
Merci de ton aide.
Pourrais-tu STP m'écrire les lignes qui introduisent "si le système
d'application est ..."?


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

Bonjour ManBas,

Sous toute réserve ...

Le répertoire "System32" n'existe pas sous Windows 98, tu devrais le
remplacer par "System"
dans la ligne de déclaration de l'API.

Mais la meilleure façon, est de rechercher le fichier "winmm.dll " dans
l'arborescence de
l'explorateur windows et d'adapter selon la version du système
d'opération
le chemin
dans la déclaration de l'API.


Salutations!


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

Bonjour à tous,
Selon une solution d'Excelabo j'ai recopié le code suivant pour émettre
un
son wav:

Declare Function sndPlaySound32 Lib "C:WINDOWSSYSTEM32winmm.dll" _
Alias "sndPlaySoundA" (ByVal lpszSoundName As String, _
ByVal uFlags As Long) As Long

Sub SonEssai_wav()
Call sndPlaySound32(ThisWorkbook.Path & "SonEssai.Wav", 0)
End Sub

C'est génial et tout baigne...dans WinXP.
Echec de la ligne:
Call sndPlaySound32(ThisWorkbook.Path & "SonEssai.Wav", 0)
...dans 98 et NT2000.
Que puis-je faire pour corriger l'anomalie ? (restons cool, mon niveau
ne
dépasse guère le mimétisme).
Merci d'avance.


















Avatar
ManBas
Le son en question c'est WinXP Ding.
(Mais il se produit aussi dans win98)


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

| le son renvoyé demeure un son système et pas le SonEssai...

Qu'est-ce que cela veut dire ? Que ton fichier .Wav ne s'exécute pas ?

Peux-tu faire jouer un fichier .Wav de Windows avec une ligne de
code similaire ?


Salutations!



"michdenis" a écrit dans le message de news:
%23W$
Bonjour Manbas,

'----------------------
Sub JouerSon()
Dim File As String
File = ThisWorkbook.Path & "SonEssai.Wav"
PlaySound File, ByVal 0&, SND_FILENAME Or SND_ASYNC
End Sub
'----------------------


Salutations!


"ManBas" a écrit dans le message de news:
%
Merci MichDenis. J'ai le même problème que pour la réponse de LSteph:
dans
la procédure je ne parviens plus à replacer mon "SonEssai".

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

Bonjour ManBas,

Cet API incluant les constantes devraient fonctionner je crois de
Windows
95 à windows XP

'Déclaration dans le haut du module : Source : URL:
http://www.allapi.net/
Private Const SND_APPLICATION = &H80 ' look for application specific
association
Private Const SND_ALIAS = &H10000 ' name is a WIN.INI [sounds] entry
Private Const SND_ALIAS_ID = &H110000 ' name is a WIN.INI [sounds] entry
identifier
Private Const SND_ASYNC = &H1 ' play asynchronously
Private Const SND_FILENAME = &H20000 ' name is a file name
Private Const SND_LOOP = &H8 ' loop the sound until next sndPlaySound
Private Const SND_MEMORY = &H4 ' lpszSoundName points to a memory file
Private Const SND_NODEFAULT = &H2 ' silence not default, if sound not
found
Private Const SND_NOSTOP = &H10 ' don't stop any currently playing sound
Private Const SND_NOWAIT = &H2000 ' don't wait if the driver is busy
Private Const SND_PURGE = &H40 ' purge non-static events for task
Private Const SND_RESOURCE = &H40004 ' name is a resource name or atom
Private Const SND_SYNC = &H0 ' play synchronously (default)
Private Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA"
(ByVal lpszName As String, ByVal hModule As Long, ByVal
dwFlags As Long) As Long

Sub JouerSon()
PlaySound "C:WINDOWSMEDIATADA.WAV", ByVal 0&, SND_FILENAME Or
SND_ASYNC
End Sub


Salutations!



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

Bonjour MichDenis,
Effectivement ça marche bien dans 98. Demain je chercherai le fichier
dans
NT2000.
Merci de ton aide.
Pourrais-tu STP m'écrire les lignes qui introduisent "si le système
d'application est ..."?


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

Bonjour ManBas,

Sous toute réserve ...

Le répertoire "System32" n'existe pas sous Windows 98, tu devrais le
remplacer par "System"
dans la ligne de déclaration de l'API.

Mais la meilleure façon, est de rechercher le fichier "winmm.dll " dans
l'arborescence de
l'explorateur windows et d'adapter selon la version du système
d'opération
le chemin
dans la déclaration de l'API.


Salutations!


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

Bonjour à tous,
Selon une solution d'Excelabo j'ai recopié le code suivant pour émettre
un
son wav:

Declare Function sndPlaySound32 Lib "C:WINDOWSSYSTEM32winmm.dll" _
Alias "sndPlaySoundA" (ByVal lpszSoundName As String, _
ByVal uFlags As Long) As Long

Sub SonEssai_wav()
Call sndPlaySound32(ThisWorkbook.Path & "SonEssai.Wav", 0)
End Sub

C'est génial et tout baigne...dans WinXP.
Echec de la ligne:
Call sndPlaySound32(ThisWorkbook.Path & "SonEssai.Wav", 0)
...dans 98 et NT2000.
Que puis-je faire pour corriger l'anomalie ? (restons cool, mon niveau
ne
dépasse guère le mimétisme).
Merci d'avance.


















1 2 3 4