> Tous les forums > Forum Bureautique
 Insérer fichier audio dans vba
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
flamel
  Posté le 31/05/2011 @ 21:22 
Aller en bas de la page 
Petit astucien

Bonjour,

Je voudrais insérer un fichier audio dans un programme Excel-VBA pour que ce fichier audio soit chargé en même temps que le logiciel.

Est-ce possible ?

Merci à qui pourrais m'aider.

Publicité
gilbert_rgi
 Posté le 31/05/2011 à 21:50 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Bonjour

Mettre ce code dans un module standard

Public Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" _
(ByVal lpstrCommand As String, ByVal lpstrReturnString As String, _
ByValuReturnLength As Long, ByVal hwndCallback As Long) As Long _

Public Declare Function GetShortPathName Lib "kernel32" Alias _
"GetShortPathNameA" (ByVal lpszLongPath As String, ByVal lpszShortPath As _
String, ByVal cchBuffer As Long) As Long

'mettre les fichiers wma dans le path du classeur
Sub LanceMP3()
X = ThisWorkbook.Path
morceau = Feuil1.[E7].Value
joueMP3 (X & morceau) ' ex: "\01 Piste 1.wma")
End Sub


Public Sub joueMP3(ByVal Mp3 As String)
Dim Tmp As Long, Tmp2 As String
Tmp2 = NomCourt(Mp3)
Tmp = mciSendString("close MP3_Device", vbNullString, 0&, 0&)
Tmp = mciSendString("open " & Tmp2 & " type MPEGVideo alias MP3_Device", _
vbNullString, 0&, 0&)
If Tmp = 0 Then
Tmp = mciSendString("play Mp3_Device", vbNullString, 0&, 0&)
If Tmp <> 0 Then
Screen.MousePointer = 0
MsgBox "Incapable de jouer ce Mp3"
End If
Else
MsgBox "Incapable de jouer ce Mp3"
End If
End Sub
Public Sub StopMP3()
Dim Tmp As Long
Tmp = mciSendString("close MP3_Device", vbNullString, 0&, 0&)
End Sub

Private Function NomCourt(ByVal Fichier As String) As String
Dim Tmp As String * 255, Tmp2 As Byte
Tmp2 = GetShortPathName(Fichier, Tmp, Len(Tmp))

If Tmp2 > 0 Then
NomCourt = Left(Tmp, Tmp2)
End If
End Function


puis celui ci dans le thisworkbook

Private Sub Workbook_Open()
LanceMP3
End Sub

les fichiers MP3 doivent être dans le path du fichier

flamel
 Posté le 02/06/2011 à 08:08 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Merci gilbert_rgi pour la réponse.

Ça me semble très compliqué.

Je souhaite seulement utiliser des petits fichiers .wav de 40 Ko. Il ne présentent chacun qu'une syllabe, ou un chiffre parlé

Actuellement, je les place dans un dossier à la racine du disque C: , de telle façon que, à quelqu'endroit que se trouve le logiciel appelant, ce soit la même adresse.

Je voudais seulement que ces petits fichiers audio .wav soient partie intégrante du logiciel.

Peut-être est-ce impossible ?

Cordialement.


ferrand
 Posté le 02/06/2011 à 13:17 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Bonjour,

Essaie ceci :

Private Sub Workbook_Open()
Shell "C:\Program Files (x86)\Windows Media Player\wmplayer.exe " & """chemin du fichier\nom du fichier""", vbMinimizedNoFocus
End Sub

La macro est à mettre dans le module ThisWorkbook.

Remplacer chemin du fichier et nom du fichier, respectivement par le chemin complet et le nom du fichier avec son extension. Les triple guillemets encadrant cette chaîne ne sont nécessaires que si ladite chaîne inclut des espaces.

Ne pas omettre espace après wmplayer.exe. Dans le chemin du programme : habituellement ...Program Files... pour un système 32 bits, ...Program Files (x86)... pour un système 64 bits.

L'argument vbMinimizedNoFocus devrait faire en sorte que le lecteur WMP demeure invisible.

On peut ne mettre qu'une seule chaîne incluant programme et fichier à jouer comme premier argument de l'instruction Shell. Il est cependant plus simple de gérer les guillemets nécessaires (voir ci-dessus) en la scindant en deux parties concaténées avec &.

Le son devrait se faire entendre à l'ouverture du classeur, une fois les macros autorisées. Il peut y avoir un délai pour que WMP reconnaisse le type de fichier et charge le codec, s'il n'a pas encore été lancé durant la session.

Bonne continuation.

galopin01
 Posté le 02/06/2011 à 13:31 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Bonjour,

Je voudais seulement que ces petits fichiers audio .wav soient partie intégrante du logiciel.

Peut-être est-ce impossible ?

Non ce n'est pas impossible, mais ce n'est pas vraiment du domaine du bricoleur.

Euh... Il m'étonnerait que tu trouves ce genre d'explications dans les forums (car je suppose que cela s'apparente un peu à implanter des fichiers indésirables ) mais en récupérant des classeurs de jeux excel et en décortiquant ceux qui ont des sons particuliers, tu arriveras peut-être à comprendre le truc !

Grosso modo (pour ce que j'ai compris) YAKA importer le code hexadecimal du WAV et le coller dans une feuille cachée.

Ensuite YAPUKA "reconstruire" le fichier WAV à l'ouverture du classeur à l'endroit voulu...

A+



Modifié par galopin01 le 02/06/2011 13:35
flamel
 Posté le 05/06/2011 à 15:13 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonjour galopin01,

J'ai essayer d'incorporer le .wav dans mon logiciel sous forme de code hexadecimal, obtenu avec HxD, puis de le reconstitué, mais ça n'a pas marché.

J'attebds de voir si une autre solution se présente.

Cordialement.

galopin01
 Posté le 05/06/2011 à 16:40 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

bonjour,

Je ne pense pas qu'un éditeur Hexa fasse l'affaire.

Il faut récupérer le code par la méthode Open Binary Access (en Read) et utiliser la fonction Hex() puis saucissonner le tout en tranche de 256 caractères pour le faire tenir dans une succession de cellules.

Pour ce qui concerne cette première partie, je n'ai pas eu le temps de me pencher sur la question.

Ensuite comme je le disais précédemment YAPUKA faire le contraire pour restituer le fichier original...

Bon ça fait quand même appel à l'API PlaySound32 et... quelques notions peu documentées !

Pour cette deuxième partie (YAPUKA...) tu peux trouver un exemple sur le téléchargement proposé ici

flamel
 Posté le 05/06/2011 à 16:52 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Merci galopin01,

Je pense YAPUKA abandonner.

Je mets mon fichier audio.wav à la racine du disque C:/

Ainsi quelque soit l'endroit où mon logiciel est placé, l'adresse qu'il a pour charcher le fichier audio reste la même.

Je croyais pouvoir simplifier et faire comme avec PHP dans la construction d'un site avec audio, mais je vois que c'est trop compliqué pour moi.

Merci et cordialement.

Dois-je mettre résolu ou attendre une autre idée ?

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour participer à la discussion.
Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !
Recevoir PC Astuces par e-mail


La Lettre quotidienne +226 000 inscrits
Avec l'actu, des logiciels, des applis, des astuces, des bons plans, ...

Les bonnes affaires
Une fois par semaine, un récap des meilleurs offres.

Les fonds d'écran
De jolies photos pour personnaliser votre bureau. Une fois par semaine.

Les nouveaux Bons Plans
Des notifications pour ne pas rater les bons plans publiés sur le site.

Les bons plans du moment PC Astuces

Tous les Bons Plans
39,40 €Carte mémoire microSDXC UHS-I U3 SanDisk Extreme 256 Go (160 Mo/s) à 39,40 €
Valable jusqu'au 25 Janvier

Amazon fait une promotion sur la carte mémoire microSDXC UHS-I U3 A2 SanDisk Extreme 256 Go qui passe à 39,40 € livrée gratuitement alors qu'on la trouve ailleurs autour de 70 €. Cette carte mémoire offre des vitesses jusqu'à 160 Mo/s et est idéale pour les téléphones, caméras et appareils photo HD/4K.


> Voir l'offre
18,90 €Switch Gigabit TP-Link 8 ports métal à 18,90 €
Valable jusqu'au 28 Janvier

Amazon propose actuellement le switch Gigabit TP-Link TL-SG108 8 ports (10/100/1000) dans un boîtier métal à 18,90 €. On le trouve habituellement autour de 30 €. 


> Voir l'offre
289,99 €Processeur AMD Ryzen 7 3700X (8 coeurs/16 threads) à 289,99 €
Valable jusqu'au 24 Janvier

Cdiscount propose le processeur AMD Ryzen 7 3700X à 289,99 € livré gratuitement. On le trouve ailleurs à partir de 350 €. Ce processeur à 8 coeurs à 3.6 GHz (4.4 GHz en turbo) est accompagné du ventilateur Wraith Spire LED (silencieux et efficace).


> Voir l'offre

Sujets relatifs
Word insérer date du jour dans nom du fichier
Insérer un fichier audio
Insérer un fichier Excel dans Powerpoint
insérer un fichier dans un document word
Fichier audio dans powerpoint
inserer menu déroulant dans un fichier excel
Insérer un fichier pps dans un post
cmt inserer 1 anim flash dans un fichier ppt
Images plus visibles dans fichier Word 2013
Inserer simplement une image dans un Post
Plus de sujets relatifs à Insérer fichier audio dans vba
 > Tous les forums > Forum Bureautique