voici un début de piste, un fonction trouvé sur le net qui retourne en secondes la durée d'un fichier AVI. Tu n'as fournir le nom complet du fichier en paramêtre ( répertoire + nom )
Private Declare Function mciExecute Lib "winmm.dll" (ByVal lpstrCommand As String) As Long
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
Function GetAviDuration(ByVal sPath As String) As Long
' retourne la durée du fichier AVI en secondes
Dim sAlias As String
Dim lRet As Long
Dim sBuffer As String
sAlias = "FONCTION_MCI_" & CStr(CLng(Now))
' chargement
Call mciExecute("OPEN " & sPath & " TYPE AVIVIDEO ALIAS " & sAlias & " STYLE POPUP")
' on récupère les ms totales
sBuffer = String$(128&, vbNullChar)
Call mciSendString("SET " & sAlias & " TIME FORMAT MS", sBuffer, Len(sBuffer), 0&)
lRet = mciSendString("STATUS " & sAlias & " LENGTH", sBuffer, Len(sBuffer), 0&)
' retour
GetAviDuration = Val(LeftB$(sBuffer, InStrB(sBuffer, vbNullChar))) \ 1000
' stop
Call mciExecute("CLOSE " & sAlias)
End Function