lancer un fichier WAV

S

Sophie

Guest
Bonjour tout le monde,

J'ai un fichier Excel avec plusieurs pages où je navigue de page en page par des liens, je souhaiterai que lorsque j'ouvre une page , un fichier WAV, que j'aurai préalablement choisie, se lance. Je voudrais mettre un son Wav différent à chaque page.

J'espère que vous pourrez m'aider.
Je vous en remercie par avance ...

Sophie
 
K

K@d

Guest
Bonjour !

Une solution est d'insérer dans chaque objet feuille de ton classeur le code VBA suivant :

---------------------------------------------------------------------------------

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

Private Sub Worksheet_Activate()

Dim FichierWav As String

'on définit le chemin sur le disque du fichier à jouer
FichierWav = "C:\Mes Documents\PinPon.wav"

'et on utilise la fonction déclarée précedemment
sndPlaySound32 FichierWav, 1

End Sub

----------------------------------------------------------------------------------

Voilà, bon courage ! :0)

Clément
 
S

Sophie

Guest
Re,

apparement avec ton code le fichier wav n'est pas intégré dans la feuille ( il va chercher sur le disque dur) et moi je voudrais qu'il soit dans ma feuille car ce fichier est susceptible d'etre travaillé sur d'autre ordinateur.

Je te laisse un exemple que l'on m'avais donné pour insérer un son wav et qu'il se lance directement à l'ouverture du fichier, peut etre que cela pourra t'aider. Il marche tres bien, mais je ne sais pas ce qu'il faut faire pour qu'un son soit joué quand j'arrive sur une autre page.

Voilà la démarche:

Menu Insertion
Objet
Selectionnes "Son wave"
Clic droit sur le nouvel objet inséré
Objet document magnetoscope
Ouvrir
Menu "édition"
Inserer un fichier
Choisir un fichier Wave à inserer dans la feuille


Insères la macro permettant de jouer le son Wave , à l'ouverture
du classeur ( à placer dans ThisWorkbook ) :
Private Sub Workbook_Open()
Worksheets("Feuil1").OLEObjects("objet 1").Verb
End Sub


En espèrant que j'ai été assez claire, si ce n'est pas le cas, dites le, j'essayerai de mieux m'expliquer.

Encore merci par avance

Soso
 
M

michel

Guest
Bonjour Sophie , bonjour Clément

Je ne suis pas sur d’avoir bien compris , mais tu peux essayer d’insérer la procédure ci dessous ( dans ThisWorkbook , comme la procédure « Private Sub Workbook_Open() » )


Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim maFeuille As String

On Error GoTo Fin

Application.EnableEvents = False
Application.ScreenUpdating = False

maFeuille = ActiveSheet.Name
Worksheets("Feuil1").OLEObjects("objet 1").Verb
Worksheets(maFeuille).Activate

Application.ScreenUpdating = True

Fin:
Application.EnableEvents = True
End Sub


Bonne soirée
MichelXld
 
S

Sophie

Guest
Merci Michel, je vais essayer ta macro.

Juste une question, quand il y a "mafeuille", c'est le nom de la feuille où je veux mettre le son wav? Si oui, quand il y a marqué "feuil1" c'est pareil?

Merci d'avance

Soso
 
M

michel

Guest
rebonsoir Sophie

dans ta première question j'ai interprété que tu souhaitais activer un son Wave lors de chaque changement d'onglet

Dans l'exemple , le son Wave est dans la Feuil1
"maFeuille" est une variable qui récupère le nom de la feuille sélectionnnée .

comme la Feuil1 est activée à chaque lancement du son Wave , la ligne "Worksheets(maFeuille).Activate" permet de revenir ensuite sur la feuille sélectionnée

j'espère que cela pourra t'aider , sinon n'hésite pas à revenir dans ce fil de discussion


bonne soirée
MichelXld
 
S

Sophie

Guest
Re coucou Michel,

je suis désolée, mais je suis plutot novice et je ne comprends pas tout ce que tu me dis.

En fait, ce que que je voudrais faire c'est pouvoir activer un son wav quand je change de page (je change de page avec des liens et non pas par les onglets), mais je voudrais que chaque page puisse avoir son propre son Wav (ex:feuil1 bonjour.wav; feuil2 coucou.wav ...).
J'espere que tu vois ce que je recherche.
Je tiens à te remercier de ton aide et j'espere que cela continura...

Merci

Soso
 
M

michel

Guest
bonjour Sophie

autant pour moi .j'avais mal lu ton premier message qui précisait bien que tu souhaitais lancer un son Wave différent pour chaque feuille

si chaque fichier Wave est inséré dans la feuille correspondante , tu peux essayer :

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
On Error Resume Next
ActiveSheet.OLEObjects("objet 1").Verb
End Sub


bonne journée
MichelXld
 
S

Sophie

Guest
Rere Michel,

je viens de rentrer ta macro mais cela ne marches pas.

J'ai mis la macro sur la feuille où j'ai placé mon objet, j'ai remplacé objet 1 par celui qui correspondait au mien, mais pas de son à l'ouverture de la page.

Ai-je bien mis la macro où il fallait? Que dois je faire?

Merci par avance

Soso
 
M

michel

Guest
rebonjour Sophie

est ce que tu peux tester le fichier joint ?
pour que cela fonctionne les Objets sur chaque page doivent porter le meme nom ("objet 1" dans l'exemple )


bon apres midi
MichelXld
 

Pièces jointes

  • SonWave_DeplacementFeuille.zip
    35.5 KB · Affichages: 77
S

Sophie

Guest
Super Michel !!!

Ca marche !!!

C'etait de ma faute, j'ai compris mon erreur, je mettais ta macro sur les feuilles concernées alors qu'il fallait la mettre dans thisworbook.

Je te remercie beaucoup pour ton aide, sincérement.

Bonne continuation

Soso
 

Discussions similaires

Réponses
8
Affichages
409

Statistiques des forums

Discussions
312 248
Messages
2 086 594
Membres
103 250
dernier inscrit
keks974