IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Lire un fichier WAV en VBA


Sujet :

Macros et VBA Excel

  1. #1
    Membre éprouvé Avatar de Zebulon777
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 1 327
    Par défaut Lire un fichier WAV en VBA
    Salut la compagnie,

    avant sous Windows XP32 / Excel 2003, pour lire un fichier WAV en VBA j'utilisais le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    Function MessageSonore(P_Fichier_wav)
        Application.ScreenUpdating = False
     
        WFichier_txt = G_DOSSIER_SPEECH & "\" & P_Fichier_wav
        If Test_Fichier(WFichier_txt, False) = True Then
                ShellWait "sndrec32 /play /Close " & WFichier_txt
        Else
                ShellWait "sndrec32 /play /Close " & G_DOSSIER_SPEECH & "\" & "message_sonore_inexistant.wav"
        End If
    End Function
     
    Public Sub ShellWait(ByVal JobToDo As String)
    Dim hProcess As Long, RetVal As Long
     
        hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, False, Shell(JobToDo, vbMinimizedNoFocus))
        Do
            GetExitCodeProcess hProcess, RetVal
            DoEvents
        Loop While RetVal = STILL_ACTIVE
    End Sub
    Mais depuis, je suis sous Seven64 / Excel 2003 et ça ne fonctionne plus, car le fichier SNREC32.EXE n'est plus présent.

    La question est donc comment faire, maintenant ?

    Merci d'avance pour votre aide.

  2. #2
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut heu
    bonjour

    oui effectivement grosse galère avec ce code archaïque

    sinon une piste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    'il y a la fonction mciexecute
    Declare Function mciExecute Lib "winmm.dll" (ByVal lpstrCommand As String) As Long
     
     
     Sub lire_wav()
    'si le fichier existe tu l'entendra
    If Dir("chemin complet de ton fichier") <> "" Then mciExecute ("play " & "chemin complet de ton fichier")
    End Sub
    au plaisir
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  3. #3
    Membre éprouvé Avatar de Zebulon777
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 1 327
    Par défaut
    Merci beaucoup.
    Tout à l'air de fonctionner.
    Pour que ça serve à tout le monde, voici le petit code utilisé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    'Fonctions pour les messages sonores.
    Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
    Private Declare Function GetExitCodeProcess Lib "kernel32" (ByVal hProcess As Long, lpExitCode As Long) As Long
    Private Const STILL_ACTIVE = &H103
    Private Const PROCESS_QUERY_INFORMATION = &H400
    Declare Function mciExecute Lib "winmm.dll" (ByVal lpstrCommand As String) As Long
    '
    Function MessageSonore(P_Fichier_wav)
        Application.ScreenUpdating = False
     
        WFichier_txt = G_DOSSIER_SPEECH & "\" & P_Fichier_wav
        If Test_Fichier("C:\windows\system32\sndrec32.exe", False) = True Then ' Windows XP
            If Test_Fichier(WFichier_txt, False) = True Then
                    ShellWait "sndrec32 /play /Close " & WFichier_txt
            Else
                    ShellWait "sndrec32 /play /Close " & G_DOSSIER_SPEECH & "\" & "message_sonore_inexistant.wav"
            End If
        Else 'Windows SEVEN
            If Test_Fichier(WFichier_txt, False) = True Then
                mciExecute ("play " & WFichier_txt)
            Else
                mciExecute ("play " & G_DOSSIER_SPEECH & "\" & "message_sonore_inexistant.wav")
            End If
        End If
    End Function
     
    Public Sub ShellWait(ByVal JobToDo As String)
        Dim hProcess As Long, RetVal As Long
     
        If Test_Fichier("C:\windows\system32\sndrec32.exe", False) = True Then
            hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, False, Shell(JobToDo, vbMinimizedNoFocus))
            Do
                GetExitCodeProcess hProcess, RetVal
                DoEvents
            Loop While RetVal = STILL_ACTIVE
        End If
    End Sub

  4. #4
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    bonjour

    c'est bien que ton code fonctionne mais pour moi il n'est pas nécessaire de garder l'ancien système

    meme avec XP l'api "mciExecute " est parfaitement gérer aussi par xp
    du moins il me semble d'autre infirmeront ou confirmeront
    au plaisir
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. problème pour lire un fichier wav
    Par r0d dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 03/05/2007, 19h56
  2. Lire DANS un fichier wav avec VBA
    Par SwissEngineer dans le forum Général VBA
    Réponses: 7
    Dernier message: 01/12/2006, 16h56
  3. [debutant] Lire un fichier .wav
    Par r0d dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 22/02/2006, 09h42
  4. Lire un fichier wav
    Par fabnet dans le forum Bibliothèques
    Réponses: 4
    Dernier message: 14/09/2005, 20h23
  5. Lire un fichier WAV
    Par benib8 dans le forum Langage
    Réponses: 1
    Dernier message: 31/08/2005, 12h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo