Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Lecture MP3 via Excel

7 réponses
Avatar
Michel HOLDERITH
Bonjour tout le monde,

J'aimerais une petite interface via excel pour lire des MP3

J'ai reussi via une combobox a lire tous les fichiers se trouvant dans un
repertoire.
Mon idee etait de soit :
- selectionner un fichier specifique puis de le valider pour le lire via
..... ( je ne sais pas si je dois passer par un logiciel ou si excel peut le
lire )

- ou selectionner un repertoire puis valider pour lire les fichiers se
trouvant dedans l'un a la suite des autres (la non plus je ne sais pas
comment faire.... )

Est-ce possible ?

Si oui est-ce que quelqu'un a une idee de la maniere de procede ou une
petite piste ?

D'avance merci,
@+
Michel.

7 réponses

Avatar
Clément Marcotte
Bonjour,

J'aimerais une petite interface via excel pour lire des MP3
Mon idee etait de soit :
- selectionner un fichier specifique puis de le valider pour le lire
via

..... ( je ne sais pas si je dois passer par un logiciel ou si excel
peut le

lire )


Un UserForm avec l'ActiveX de Windows Media Player (dans contrôles
supplémentaires)


J'ai reussi via une combobox a lire tous les fichiers se trouvant
dans un

repertoire.

- ou selectionner un repertoire puis valider pour lire les fichiers
se

trouvant dedans l'un a la suite des autres (la non plus je ne sais
pas

comment faire.... )


Si tu prends l'ocx de MediaPlayer et ton combobox, cela devrait
ressembler (de mémoire) à:

wmp1.file = combobox1.value

Avatar
Michel Pierron
Bonsoir Michel;

Private Declare Function mciSendString Lib "winmm.dll" Alias _
"mciSendStringA" (ByVal lpstrCommand As String _
, ByVal lpstrReturnString As String, ByVal uReturnLength As Long _
, ByVal hwndCallback As Long) As Long
Private Declare Function GetShortPathName Lib "kernel32" _
Alias "GetShortPathNameA" (ByVal lpszLongPath As String _
, ByVal lpszShortPath As String, ByVal lBuffer As Long) As Long

Private Sub PlaySong(Play As Boolean, FullPathSong As String, Optional Reprise As
Long = 0)
On Error Resume Next
Call mciSendString("Stop MPFE", 0&, 0, 0)
Call mciSendString("Close MPFE", 0&, 0, 0)
If Not Play Then Exit Sub
Dim Song As String, msg As String * 255
Song = FullPathSong
If Dir(Song) = "" Then Exit Sub
Song = GetShortPath(Song)
Call mciSendString("Open " & Song & " Alias MPFE", 0&, 0, 0)
Call mciSendString("play MPFE from " & Reprise, 0&, 0, 0)
End Sub

MP

"Michel HOLDERITH" <#nospam# a écrit dans le message de
news:
Bonjour tout le monde,

J'aimerais une petite interface via excel pour lire des MP3

J'ai reussi via une combobox a lire tous les fichiers se trouvant dans un
repertoire.
Mon idee etait de soit :
- selectionner un fichier specifique puis de le valider pour le lire via
..... ( je ne sais pas si je dois passer par un logiciel ou si excel peut le
lire )

- ou selectionner un repertoire puis valider pour lire les fichiers se
trouvant dedans l'un a la suite des autres (la non plus je ne sais pas
comment faire.... )

Est-ce possible ?

Si oui est-ce que quelqu'un a une idee de la maniere de procede ou une
petite piste ?

D'avance merci,
@+
Michel.




Avatar
Michel HOLDERITH
Un tres grand merci a vous deux, je test puis je reviens vers vous....
Tres bonne journee,
@+
Michel.

"Michel Pierron" wrote in message
news:%
Bonsoir Michel;

Private Declare Function mciSendString Lib "winmm.dll" Alias _
"mciSendStringA" (ByVal lpstrCommand As String _
, ByVal lpstrReturnString As String, ByVal uReturnLength As Long _
, ByVal hwndCallback As Long) As Long
Private Declare Function GetShortPathName Lib "kernel32" _
Alias "GetShortPathNameA" (ByVal lpszLongPath As String _
, ByVal lpszShortPath As String, ByVal lBuffer As Long) As Long

Private Sub PlaySong(Play As Boolean, FullPathSong As String, Optional
Reprise As

Long = 0)
On Error Resume Next
Call mciSendString("Stop MPFE", 0&, 0, 0)
Call mciSendString("Close MPFE", 0&, 0, 0)
If Not Play Then Exit Sub
Dim Song As String, msg As String * 255
Song = FullPathSong
If Dir(Song) = "" Then Exit Sub
Song = GetShortPath(Song)
Call mciSendString("Open " & Song & " Alias MPFE", 0&, 0, 0)
Call mciSendString("play MPFE from " & Reprise, 0&, 0, 0)
End Sub

MP

"Michel HOLDERITH" <#nospam# a écrit dans le message de
news:
Bonjour tout le monde,

J'aimerais une petite interface via excel pour lire des MP3

J'ai reussi via une combobox a lire tous les fichiers se trouvant dans
un


repertoire.
Mon idee etait de soit :
- selectionner un fichier specifique puis de le valider pour le lire via
..... ( je ne sais pas si je dois passer par un logiciel ou si excel
peut le


lire )

- ou selectionner un repertoire puis valider pour lire les fichiers se
trouvant dedans l'un a la suite des autres (la non plus je ne sais pas
comment faire.... )

Est-ce possible ?

Si oui est-ce que quelqu'un a une idee de la maniere de procede ou une
petite piste ?

D'avance merci,
@+
Michel.








Avatar
Michel HOLDERITH
Euh......... micehl, pourrais-je avoir une petite notice d'emploi ou
quelques explications avec ton code ?
D'avance merci..........
@+
Michel.

"Michel Pierron" wrote in message
news:%
Bonsoir Michel;

Private Declare Function mciSendString Lib "winmm.dll" Alias _
"mciSendStringA" (ByVal lpstrCommand As String _
, ByVal lpstrReturnString As String, ByVal uReturnLength As Long _
, ByVal hwndCallback As Long) As Long
Private Declare Function GetShortPathName Lib "kernel32" _
Alias "GetShortPathNameA" (ByVal lpszLongPath As String _
, ByVal lpszShortPath As String, ByVal lBuffer As Long) As Long

Private Sub PlaySong(Play As Boolean, FullPathSong As String, Optional
Reprise As

Long = 0)
On Error Resume Next
Call mciSendString("Stop MPFE", 0&, 0, 0)
Call mciSendString("Close MPFE", 0&, 0, 0)
If Not Play Then Exit Sub
Dim Song As String, msg As String * 255
Song = FullPathSong
If Dir(Song) = "" Then Exit Sub
Song = GetShortPath(Song)
Call mciSendString("Open " & Song & " Alias MPFE", 0&, 0, 0)
Call mciSendString("play MPFE from " & Reprise, 0&, 0, 0)
End Sub

MP

"Michel HOLDERITH" <#nospam# a écrit dans le message de
news:
Bonjour tout le monde,

J'aimerais une petite interface via excel pour lire des MP3

J'ai reussi via une combobox a lire tous les fichiers se trouvant dans
un


repertoire.
Mon idee etait de soit :
- selectionner un fichier specifique puis de le valider pour le lire via
..... ( je ne sais pas si je dois passer par un logiciel ou si excel
peut le


lire )

- ou selectionner un repertoire puis valider pour lire les fichiers se
trouvant dedans l'un a la suite des autres (la non plus je ne sais pas
comment faire.... )

Est-ce possible ?

Si oui est-ce que quelqu'un a une idee de la maniere de procede ou une
petite piste ?

D'avance merci,
@+
Michel.








Avatar
Michel Pierron
Bonjour Michel;
Dans Sub PlaySong(Play As Boolean, FullPathSong As String, Optional Reprise& = 0)
Le paramètre FullPathSong correspond toujours au chemin complet du fichier
(exemple: "C:My DownloadsAlannah Myles - Black Velvet.mp3").
Maintenant, supposons 3 bouttons (Play / Pause / Stop)
Il est souhaitable d'avoir une variable d'état:
Dim Clicked As Boolean

Bouton Play:
Clicked = True ' Début; donc Reprise = 0 (par défaut)
PlaySong True, "C:MyMusicBlack Velvet.mp3"

Bouton Stop:
Clicked = False
PlaySong False

Bouton Pause:
Dim msg As String * 255
Static iPos As Long
Static nb As Integer ' Simule un Toggle button
If Clicked Then
If nb Then
' iPos indique la valeur à prendre pour le paramètre Reprise
PlaySong True, "C:MyMusicBlack Velvet.mp3", iPos
Else
' On mémorise la position en cours
mciSendString "status MPFE position", msg, 255, 0
iPos = Str(msg)
mciSendString "Pause MPFE", 0, 0, 0
End If
End If
nb = Not nb

Reviens à la charge si besoin.
MP

"Michel HOLDERITH" <#nospam# a écrit dans le message de
news:
Euh......... micehl, pourrais-je avoir une petite notice d'emploi ou
quelques explications avec ton code ?
D'avance merci..........
@+
Michel.

"Michel Pierron" wrote in message
news:%
Bonsoir Michel;

Private Declare Function mciSendString Lib "winmm.dll" Alias _
"mciSendStringA" (ByVal lpstrCommand As String _
, ByVal lpstrReturnString As String, ByVal uReturnLength As Long _
, ByVal hwndCallback As Long) As Long
Private Declare Function GetShortPathName Lib "kernel32" _
Alias "GetShortPathNameA" (ByVal lpszLongPath As String _
, ByVal lpszShortPath As String, ByVal lBuffer As Long) As Long

Private Sub PlaySong(Play As Boolean, FullPathSong As String, Optional
Reprise As

Long = 0)
On Error Resume Next
Call mciSendString("Stop MPFE", 0&, 0, 0)
Call mciSendString("Close MPFE", 0&, 0, 0)
If Not Play Then Exit Sub
Dim Song As String, msg As String * 255
Song = FullPathSong
If Dir(Song) = "" Then Exit Sub
Song = GetShortPath(Song)
Call mciSendString("Open " & Song & " Alias MPFE", 0&, 0, 0)
Call mciSendString("play MPFE from " & Reprise, 0&, 0, 0)
End Sub

MP

"Michel HOLDERITH" <#nospam# a écrit dans le message de
news:
Bonjour tout le monde,

J'aimerais une petite interface via excel pour lire des MP3

J'ai reussi via une combobox a lire tous les fichiers se trouvant dans
un


repertoire.
Mon idee etait de soit :
- selectionner un fichier specifique puis de le valider pour le lire via
..... ( je ne sais pas si je dois passer par un logiciel ou si excel
peut le


lire )

- ou selectionner un repertoire puis valider pour lire les fichiers se
trouvant dedans l'un a la suite des autres (la non plus je ne sais pas
comment faire.... )

Est-ce possible ?

Si oui est-ce que quelqu'un a une idee de la maniere de procede ou une
petite piste ?

D'avance merci,
@+
Michel.












Avatar
Michel HOLDERITH
Re-salut,
Merci de tes explications, mais je dois etre trop......... hum...hum....
il me met un message d'erreur :
GetShortPathName

vu que je n'y comprend rien...... je pensais etre +/- top pour les macros
mais la.... cette declaration je ne la comprend pas... je ne sais meme pas
si je veux.... :o)
une idee ou un exemple fichier si oui ?
merci de te preoccuper de moi........

Voila ce que j'ai fait :

Private Declare Function mciSendString Lib "winmm.dll" Alias _
"mciSendStringA" (ByVal lpstrCommand As String _
, ByVal lpstrReturnString As String, ByVal uReturnLength As Long _
, ByVal hwndCallback As Long) As Long
Private Declare Function GetShortPathName Lib "kernel32" _
Alias "GetShortPathNameA" (ByVal lpszLongPath As String _
, ByVal lpszShortPath As String, ByVal lBuffer As Long) As Long
Dim Clicked As Boolean

Private Sub PlaySong(Play As Boolean, FullPathSong As String, Optional
Reprise As Long = 0)
On Error Resume Next
Call mciSendString("Stop MPFE", 0&, 0, 0)
Call mciSendString("Close MPFE", 0&, 0, 0)
If Not Play Then Exit Sub
Dim Song As String, msg As String * 255
Song = FullPathSong
If Dir(Song) = "" Then Exit Sub
Song = GetShortPath(Song)
Call mciSendString("Open " & Song & " Alias MPFE", 0&, 0, 0)
Call mciSendString("play MPFE from " & Reprise, 0&, 0, 0)
End Sub

Private Sub BOUTTON_PAUSE_Click()
Dim msg As String * 255
Static iPos As Long
Static nb As Integer ' Simule un Toggle button
If Clicked Then
If nb Then
' iPos indique la valeur à prendre pour le paramètre Reprise
PlaySong True, "C:WINDOWSDesktopMP34 love profusion.mp3", iPos
Else
' On mémorise la position en cours
mciSendString "status MPFE position", msg, 255, 0
iPos = Str(msg)
mciSendString "Pause MPFE", 0, 0, 0
End If
End If
nb = Not nb
End Sub

Private Sub BOUTTON_PLAY_Click()
Clicked = True ' Début; donc Reprise = 0 (par défaut)
PlaySong True, "C:WINDOWSDesktopMP34 love profusion.mp3"
End Sub

Private Sub BOUTTON_STOP_Click()
Clicked = False
PlaySong False
End Sub




"Michel Pierron" wrote in message
news:
Bonjour Michel;
Dans Sub PlaySong(Play As Boolean, FullPathSong As String, Optional
Reprise& = 0)

Le paramètre FullPathSong correspond toujours au chemin complet du fichier
(exemple: "C:My DownloadsAlannah Myles - Black Velvet.mp3").
Maintenant, supposons 3 bouttons (Play / Pause / Stop)
Il est souhaitable d'avoir une variable d'état:
Dim Clicked As Boolean

Bouton Play:
Clicked = True ' Début; donc Reprise = 0 (par défaut)
PlaySong True, "C:MyMusicBlack Velvet.mp3"

Bouton Stop:
Clicked = False
PlaySong False

Bouton Pause:
Dim msg As String * 255
Static iPos As Long
Static nb As Integer ' Simule un Toggle button
If Clicked Then
If nb Then
' iPos indique la valeur à prendre pour le paramètre Reprise
PlaySong True, "C:MyMusicBlack Velvet.mp3", iPos
Else
' On mémorise la position en cours
mciSendString "status MPFE position", msg, 255, 0
iPos = Str(msg)
mciSendString "Pause MPFE", 0, 0, 0
End If
End If
nb = Not nb

Reviens à la charge si besoin.
MP

"Michel HOLDERITH" <#nospam# a écrit dans le message de
news:
Euh......... micehl, pourrais-je avoir une petite notice d'emploi ou
quelques explications avec ton code ?
D'avance merci..........
@+
Michel.

"Michel Pierron" wrote in message
news:%
Bonsoir Michel;

Private Declare Function mciSendString Lib "winmm.dll" Alias _
"mciSendStringA" (ByVal lpstrCommand As String _
, ByVal lpstrReturnString As String, ByVal uReturnLength As Long _
, ByVal hwndCallback As Long) As Long
Private Declare Function GetShortPathName Lib "kernel32" _
Alias "GetShortPathNameA" (ByVal lpszLongPath As String _
, ByVal lpszShortPath As String, ByVal lBuffer As Long) As Long

Private Sub PlaySong(Play As Boolean, FullPathSong As String, Optional
Reprise As

Long = 0)
On Error Resume Next
Call mciSendString("Stop MPFE", 0&, 0, 0)
Call mciSendString("Close MPFE", 0&, 0, 0)
If Not Play Then Exit Sub
Dim Song As String, msg As String * 255
Song = FullPathSong
If Dir(Song) = "" Then Exit Sub
Song = GetShortPath(Song)
Call mciSendString("Open " & Song & " Alias MPFE", 0&, 0, 0)
Call mciSendString("play MPFE from " & Reprise, 0&, 0, 0)
End Sub

MP

"Michel HOLDERITH" <#nospam# a écrit dans le message de
news:
Bonjour tout le monde,

J'aimerais une petite interface via excel pour lire des MP3

J'ai reussi via une combobox a lire tous les fichiers se trouvant
dans




un
repertoire.
Mon idee etait de soit :
- selectionner un fichier specifique puis de le valider pour le lire
via




..... ( je ne sais pas si je dois passer par un logiciel ou si excel
peut le


lire )

- ou selectionner un repertoire puis valider pour lire les fichiers
se




trouvant dedans l'un a la suite des autres (la non plus je ne sais
pas




comment faire.... )

Est-ce possible ?

Si oui est-ce que quelqu'un a une idee de la maniere de procede ou
une




petite piste ?

D'avance merci,
@+
Michel.
















Avatar
Michel Pierron
Re Michel;
Je me confonds en mille excuses; j'ai oublié de te donner la fonction de
conversion pour GetShortPath qui retourne le nom court obtenu avec
GetShortPathName.

Private Function GetShortPath(strFileName As String) As String
Dim lngRes As Long, strPath As String
strPath = String(165, 0)
lngRes = GetShortPathName(strFileName, strPath, 164)
GetShortPath = Left(strPath, lngRes)
End Function

Dis nous si ça marche; amicalement,
Michel

"Michel HOLDERITH" <#nospam# a écrit dans le message de
news:%23Pl8%
Re-salut,
Merci de tes explications, mais je dois etre trop......... hum...hum....
il me met un message d'erreur :
GetShortPathName

vu que je n'y comprend rien...... je pensais etre +/- top pour les macros
mais la.... cette declaration je ne la comprend pas... je ne sais meme pas
si je veux.... :o)
une idee ou un exemple fichier si oui ?
merci de te preoccuper de moi........

Voila ce que j'ai fait :

Private Declare Function mciSendString Lib "winmm.dll" Alias _
"mciSendStringA" (ByVal lpstrCommand As String _
, ByVal lpstrReturnString As String, ByVal uReturnLength As Long _
, ByVal hwndCallback As Long) As Long
Private Declare Function GetShortPathName Lib "kernel32" _
Alias "GetShortPathNameA" (ByVal lpszLongPath As String _
, ByVal lpszShortPath As String, ByVal lBuffer As Long) As Long
Dim Clicked As Boolean

Private Sub PlaySong(Play As Boolean, FullPathSong As String, Optional
Reprise As Long = 0)
On Error Resume Next
Call mciSendString("Stop MPFE", 0&, 0, 0)
Call mciSendString("Close MPFE", 0&, 0, 0)
If Not Play Then Exit Sub
Dim Song As String, msg As String * 255
Song = FullPathSong
If Dir(Song) = "" Then Exit Sub
Song = GetShortPath(Song)
Call mciSendString("Open " & Song & " Alias MPFE", 0&, 0, 0)
Call mciSendString("play MPFE from " & Reprise, 0&, 0, 0)
End Sub

Private Sub BOUTTON_PAUSE_Click()
Dim msg As String * 255
Static iPos As Long
Static nb As Integer ' Simule un Toggle button
If Clicked Then
If nb Then
' iPos indique la valeur à prendre pour le paramètre Reprise
PlaySong True, "C:WINDOWSDesktopMP34 love profusion.mp3", iPos
Else
' On mémorise la position en cours
mciSendString "status MPFE position", msg, 255, 0
iPos = Str(msg)
mciSendString "Pause MPFE", 0, 0, 0
End If
End If
nb = Not nb
End Sub

Private Sub BOUTTON_PLAY_Click()
Clicked = True ' Début; donc Reprise = 0 (par défaut)
PlaySong True, "C:WINDOWSDesktopMP34 love profusion.mp3"
End Sub

Private Sub BOUTTON_STOP_Click()
Clicked = False
PlaySong False
End Sub




"Michel Pierron" wrote in message
news:
Bonjour Michel;
Dans Sub PlaySong(Play As Boolean, FullPathSong As String, Optional
Reprise& = 0)

Le paramètre FullPathSong correspond toujours au chemin complet du fichier
(exemple: "C:My DownloadsAlannah Myles - Black Velvet.mp3").
Maintenant, supposons 3 bouttons (Play / Pause / Stop)
Il est souhaitable d'avoir une variable d'état:
Dim Clicked As Boolean

Bouton Play:
Clicked = True ' Début; donc Reprise = 0 (par défaut)
PlaySong True, "C:MyMusicBlack Velvet.mp3"

Bouton Stop:
Clicked = False
PlaySong False

Bouton Pause:
Dim msg As String * 255
Static iPos As Long
Static nb As Integer ' Simule un Toggle button
If Clicked Then
If nb Then
' iPos indique la valeur à prendre pour le paramètre Reprise
PlaySong True, "C:MyMusicBlack Velvet.mp3", iPos
Else
' On mémorise la position en cours
mciSendString "status MPFE position", msg, 255, 0
iPos = Str(msg)
mciSendString "Pause MPFE", 0, 0, 0
End If
End If
nb = Not nb

Reviens à la charge si besoin.
MP

"Michel HOLDERITH" <#nospam# a écrit dans le message de
news:
Euh......... micehl, pourrais-je avoir une petite notice d'emploi ou
quelques explications avec ton code ?
D'avance merci..........
@+
Michel.

"Michel Pierron" wrote in message
news:%
Bonsoir Michel;

Private Declare Function mciSendString Lib "winmm.dll" Alias _
"mciSendStringA" (ByVal lpstrCommand As String _
, ByVal lpstrReturnString As String, ByVal uReturnLength As Long _
, ByVal hwndCallback As Long) As Long
Private Declare Function GetShortPathName Lib "kernel32" _
Alias "GetShortPathNameA" (ByVal lpszLongPath As String _
, ByVal lpszShortPath As String, ByVal lBuffer As Long) As Long

Private Sub PlaySong(Play As Boolean, FullPathSong As String, Optional
Reprise As

Long = 0)
On Error Resume Next
Call mciSendString("Stop MPFE", 0&, 0, 0)
Call mciSendString("Close MPFE", 0&, 0, 0)
If Not Play Then Exit Sub
Dim Song As String, msg As String * 255
Song = FullPathSong
If Dir(Song) = "" Then Exit Sub
Song = GetShortPath(Song)
Call mciSendString("Open " & Song & " Alias MPFE", 0&, 0, 0)
Call mciSendString("play MPFE from " & Reprise, 0&, 0, 0)
End Sub

MP

"Michel HOLDERITH" <#nospam# a écrit dans le message de
news:
Bonjour tout le monde,

J'aimerais une petite interface via excel pour lire des MP3

J'ai reussi via une combobox a lire tous les fichiers se trouvant
dans




un
repertoire.
Mon idee etait de soit :
- selectionner un fichier specifique puis de le valider pour le lire
via




..... ( je ne sais pas si je dois passer par un logiciel ou si excel
peut le


lire )

- ou selectionner un repertoire puis valider pour lire les fichiers
se




trouvant dedans l'un a la suite des autres (la non plus je ne sais
pas




comment faire.... )

Est-ce possible ?

Si oui est-ce que quelqu'un a une idee de la maniere de procede ou
une




petite piste ?

D'avance merci,
@+
Michel.