OVH Cloud OVH Cloud

Activer un son lorsqu'une cellule change de valeur

5 réponses
Avatar
Super
Bonjour, sauriez vous comment faire cela ?
Merci pour votre aide

5 réponses

Avatar
AV
Jouer un son (.wav) si la valeur de la cellule A1 = 1 :
(Adapter le chemin d'accès du fichier .wav)
Dans le module de la feuille :

Private Declare Function PlaySound Lib "winmm.dll" _
Alias "PlaySoundA" (ByVal lpszName As String, _
ByVal hModule As Long, ByVal dwFlags As Long) As Long
Const SND_SYNC = &H0
Const SND_ASYNC = &H1
Const SND_FILENAME = &H20000

Private Sub Worksheet_Change(ByVal zz As Range)
If zz.Address <> "$A$1" Then Exit Sub
If [zz] = 1 Then jouer_SON
End Sub

Sub jouer_SON()
leSon = "C:WINDOWSMEDIAtada.wav"
Call PlaySound(leSon, 0&, SND_ASYNC Or SND_FILENAME)
End Sub

AV

"Super" a écrit dans le message news:

Bonjour, sauriez vous comment faire cela ?
Merci pour votre aide


Avatar
Super
Thank you, ça marche du tonnerre.
Enfin j'ai un autre problème, c'est que la cellule est mise à jour mais non
manuellement et du coup, ce n'est pas pris comme un worksheet event et le
worksheet_change n'est pas activé.
As tu une idée pour résoudre ce problème ?

"AV" wrote:

Jouer un son (.wav) si la valeur de la cellule A1 = 1 :
(Adapter le chemin d'accès du fichier .wav)
Dans le module de la feuille :

Private Declare Function PlaySound Lib "winmm.dll" _
Alias "PlaySoundA" (ByVal lpszName As String, _
ByVal hModule As Long, ByVal dwFlags As Long) As Long
Const SND_SYNC = &H0
Const SND_ASYNC = &H1
Const SND_FILENAME = &H20000

Private Sub Worksheet_Change(ByVal zz As Range)
If zz.Address <> "$A$1" Then Exit Sub
If [zz] = 1 Then jouer_SON
End Sub

Sub jouer_SON()
leSon = "C:WINDOWSMEDIAtada.wav"
Call PlaySound(leSon, 0&, SND_ASYNC Or SND_FILENAME)
End Sub

AV

"Super" a écrit dans le message news:

Bonjour, sauriez vous comment faire cela ?
Merci pour votre aide







Avatar
AV
Enfin j'ai un autre problème, c'est que la cellule est mise à jour mais non
manuellement et du coup, ce n'est pas pris comme un worksheet event et le
worksheet_change n'est pas activé.


Elle est mise à jour par quoi ? Une formule ? Une macro ?
T'es sous quelle version d'XL ?

AV

Avatar
Super
elle est mise à jour par bloomberg, un fournisseur de prix en live, je dirai
donc une formule.
Sinon, je suis sous XP.


"AV" wrote:

Enfin j'ai un autre problème, c'est que la cellule est mise à jour mais non
manuellement et du coup, ce n'est pas pris comme un worksheet event et le
worksheet_change n'est pas activé.


Elle est mise à jour par quoi ? Une formule ? Une macro ?
T'es sous quelle version d'XL ?

AV








Avatar
AV
Remplacer

Private Sub Worksheet_Change(ByVal zz As Range)
If zz.Address <> "$A$1" Then Exit Sub
If [zz] = 1 Then jouer_SON
End Sub

par

Private Sub Worksheet_Calculate()
If [A1] = 1 Then jouer_SON
End Sub


PS : il est préférable de rester dans le fil d'origine plutôt que d'en ouvrir un
autre
AV