Option Explicit
''*********************** durée fichiers WAV , MPEG , MP3 ****************************
Declare Function mciSendString Lib 'winmm.dll' Alias _
'mciSendStringA' (ByVal lpstrCommand As String, ByVal _
lpstrReturnString As Any, 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 cchBuffer As Long) As Long
Sub dureeFichierMP3()
Dim s As String * 255
Dim i As Long
Dim ShortName As String
''ouvrir la session
ShortName = GetShortName('C:\\MP3\\Ton fichier.mp3' )
i = mciSendString('open ' & ShortName & ' type MPEGVideo alias Voix1', 0&, 0, 0)
''reuperer les infos
i = mciSendString('status voix1 length', s, 255, 0)
MsgBox Val(s) & ' millisecondes'
Range('C2') = Val(s)
''fermer la session
i = mciSendString('close voix1', 0&, 0, 0)
End Sub
Public Function GetShortName(ByVal sLongFileName As String) As String
Dim lRetVal As Long, sShortPathName As String, iLen As Integer
sShortPathName = Space(255)
iLen = Len(sShortPathName)
lRetVal = GetShortPathName(sLongFileName, sShortPathName, iLen)
GetShortName = Left(sShortPathName, lRetVal)
End Function