Son dans tableur

Bonjour,

J'utilise Excel 2010 et voudrais entendre une note quand je clique sur un bouton de commande. Idéalement si on pouvait éviter l'ouverture d'une boite de dialogue à chaque fois qu'on clique…

J'aurais voulu joindre au tableur un fichier wav où on entend un do mais le format n'est pas pris en charge….

Merci d'avance.

7simon.xlsx (13.22 Ko)

Merci mais pour un débutant comme moi qui ne parle pas anglais c'est de l'hébreu

S'il était possible de compléter mon tableur je comprendrais mieux.

A tout hasard le chemin du fichier wav "Do" que je n'arrive pas à ouvrir avec Excel est : Ce PC > Document

Sinon merci quand même.

Bonjour,

Une méthode :

Declare Function PlaySound Lib "Winmm" _
        (ByVal pszsound As String, ByVal hmod As Long, ByVal fdwsound As Long) As Long

Sub Son()
Z = "C:\Documents"
PlaySound Z & "\Do.wav", 0, 0
End Sub

A+

Je te renvoie ton fichier EXCEL modifié :

  • avec l'extension XLSM pour pouvoir stocker des macros.
  • ajouté le code dans feuil1 :
#If Win64 Then
    Private Declare PtrSafe Function PlaySound Lib "winmm.dll" _
        Alias "PlaySoundA" (ByVal lpszName As String, _
        ByVal hModule As LongPtr, ByVal dwFlags As Long) As Boolean
#Else
    Private Declare Function PlaySound Lib "winmm.dll" _
        Alias "PlaySoundA" (ByVal lpszName As String, _
        ByVal hModule As Long, ByVal dwFlags As Long) As Boolean
#End If
Const SND_SYNC = &H0
Const SND_ASYNC = &H1
Const SND_FILENAME = &H20000
Function SoundMe(zFileWAV As String) As String
'Updateby Extendoffice 20161223
    Call PlaySound("c:\windows\media\Speech On.wav", _
      0, SND_ASYNC Or SND_FILENAME)
    SoundMe = ""
End Function

Private Sub CommandButton1_Click()
    SoundMe "C:\Users\215902\Documents\Do.wav" 'A modifier pour indiquer l'emplacement correct du fichier WAV
End Sub

N'oublie pas de modifier le code pour indiquer l'emplacement de ton fichier WAV.

9simon.xlsm (21.06 Ko)

Merci c'est vraiment sympa. Bon ça ne marche toujours pas pourtant le chemin est bon "C:\Documents\Do.wav" Peut être que ça vient de mon vieux portable je vais essayer sur d'autres postes plus récents j'aurais peut être plus de chance. En tout cas encore merci.

J'ai revu le code envoyé et trouvé une erreur. Désolé.

Code corrigé :

#If Win64 Then
    Private Declare PtrSafe Function PlaySound Lib "winmm.dll" _
        Alias "PlaySoundA" (ByVal lpszName As String, _
        ByVal hModule As LongPtr, ByVal dwFlags As Long) As Boolean
#Else
    Private Declare Function PlaySound Lib "winmm.dll" _
        Alias "PlaySoundA" (ByVal lpszName As String, _
        ByVal hModule As Long, ByVal dwFlags As Long) As Boolean
#End If
Const SND_SYNC = &H0
Const SND_ASYNC = &H1
Const SND_FILENAME = &H20000
Function SoundMe(zFileWAV As String) As String
'Updateby Extendoffice 20161223
    Call PlaySound(zFileWAV, _
      0, SND_ASYNC Or SND_FILENAME)
    SoundMe = ""
End Function

Private Sub CommandButton1_Click()
    SoundMe "C:\Users\215902\Documents\Do.wav" 'A modifier pour indiquer l'emplacement correct du fichier WAV
End Sub

J'ai copié le code dans le bouton de commande mais décidément je ne suis pas doué...

11test.xlsm (20.13 Ko)

Bonjour PCI51,

J'ai testé sur ton EXCEL et sur mon PC j'entends bien un "DO" !?!?

As-tu vérifié que ton "speaker" était activé?

Bonjour,

Voir pièce jointe (corriger le chemin)

A+

11simon.xlsm (20.84 Ko)

Ca y est ça marche! C'était effectivement un problème de chemin incomplet et d'ailleurs, comme c'est pour aller sur plusieurs postes il va peut être falloir que je prévois plusieurs tableurs mais bon, ça marche c'est le plus important je vais pouvoir avancer. Un grand grand merci à Gérard (et à Galopin)!

Bonjour,

Le meilleur moyen de ne pas être enquiquiné par ces problèmes de chemin (Quand on à la maîtrise du choix !) est de mettre les fichiers wav dans le même dossier (ou dans un dossier enfant) que le classeur Excel (ou dans un dossier enfant)

Ainsi il n'y a pas besoin de spécifier le chemin on récupère le ThisWorkbook.Path au besoin on concatène avec le nom du répertoire enfant et basta...

Declare Function PlaySound Lib "Winmm" _
        (ByVal pszsound As String, ByVal hmod As Long, ByVal fdwsound As Long) As Long        
Sub Son() ' Les fichiers wav sont dans le même dossier
Z = ThisWorkbook.Path
PlaySound Z & "\Coyote.wav", 0, 0
End Sub

ou :

Declare Function PlaySound Lib "Winmm" _
        (ByVal pszsound As String, ByVal hmod As Long, ByVal fdwsound As Long) As Long        
Sub Son() ' Les fichiers wav sont dans le dossier enfant ("SONS")
Z = ThisWorkbook.Path & "\SONS"
PlaySound Z & "\Coyote.wav", 0, 0
End Sub

Nota : Il existe d'autres possibilités ou l'on n'a même pas besoin d'avoir les wav sur l'ordi hôte. Il suffit d'embarquer les wav DANS le classeur... mais c'est nettement plus compliqué !

A+

Pour le moment j'ai tout mis dans un même répertoire et sur une clé pour que le chemin reste le même et ça marche, du moment que je ne me trompe pas de port Je suis bien content d'être arrivé au bout de mon projet grâce à l'aide de ce forum mais effectivement, mettre les sons dans le tableur serait l'idéal. Je sais faire ça sur d'autre logiciel mais Excel je découvre alors il me faudra plus de temps.

Encore merci à tous ceux qui m'ont mis le pied à l'étrier.

bonjour,

Une application utilisant ce principe sous ce lien

A+

Bonjour,

Me revoilà pour un complément d'information en vue d'un autre projet reprenant l'idée de base : Cliquer sur un bouton pour entendre un fichier vidéo. Plutôt qu'une macro allant chercher la note "do", peut on lui demander de sortir aléatoirement un fichier vidéo par cinq rassemblés dans un même répertoire? Si oui, j'ai juste besoin de la modification de la macro de Gérard.

Merci d'avance.

Bonsoir PCI51,

Une proposition :

Private Sub CommandButton1_Click()
    Const cPath = "C:\Documents"
    Dim iIndex As Integer, i As Integer, sFile As String

    Randomize
    'Nombre al?atoire entier entre 1 et 5 :
    iIndex = Int(5 * Rnd) + 1

    sFile = Dir(cPath & "\*.wav")
    Do While sFile <> ""
        i = i + 1
        If i = iIndex Then
            Exit Do
        End If
        sFile = Dir
    Loop

    SoundMe sFile
    MsgBox iIndex
End Sub

Bonjour,

Je n'ai pas été assez clair. Ce n'est pas un chiffre entre 1 et 5 que je voudrais mais que le bouton de commande 2 aille plus loin en me jouant le son affilié au N° qu'il tire. Ci joint le fichier que je suis en train de me faire pour retenir les leçons qu'on me donne. Colonnes A/B les généralités et colonnes C/D les applications.

Merci d'avance.

3test.rar (293.13 Ko)

Tu peux m'envoyer plutôt un .zip (ma licence WINZIP a expiré...)

Je n'ai pas de Winzip. J'ai recompressé en zip à partir de Winrar j'espère que ça ira, sinon j'essaierai de le faire sur le net quand je rentrerai ce soir.

5test.zip (356.81 Ko)

C'est OK, PCI51, Je regarde ça et te reviens dès que possible...

Rechercher des sujets similaires à "tableur"