Convertir des milièmes en mm:ss

  • Initiateur de la discussion Le Djé
  • Date de début
L

Le Djé

Guest
Bonjour le forum,

Voilà mon problème, je récupère la durée d'un fichier MP3 (par exemple : 501146 millisecondes) dans une cellule mais je voudrais changer le format en minutes et en secondes (mm:ss) sachant que le fichier cité en exemple dure 04:53.

J'ai bien essayé des formats ou des formules mais je n'ai pas encore trouvé...

Merci à vous

Le Djé
 
L

Le Djé

Guest
Bonjour Didier,
En fait j'ai utilisé un code que j'ai eu je ne sais plus où qui est censé me donnder la durée d'un fichier MP3 et celui-ci m'est donné en ms.
Voici ce code :
Code:
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

Je ne vois pas à quelle endroit on pourrait changer le format

Merci de ton aide

LeDjé
 

dg62

XLDnaute Barbatruc
re

vers la fin du code tu trouves

Range('C2') = Val(s)

tu remplaces par : Range('C2') = Val(s)/60000

sur la feuille excel

En c2 tu récupères la valeur en décimal

En c3 =ENT(C2) & 'mn' & ENT((C2-ENT(C2))*60) & 's'


Si tu ne veux pas de formatage, utilises la formule de Pascal76 qu'il t'a donné dans ton premier post.

Message édité par: dg62, à: 13/03/2005 18:04
 
L

Le Djé

Guest
Bonjour Didier,
En fait j'ai utilisé un code que j'ai eu je ne sais plus où qui est censé me donnder la durée d'un fichier MP3 et celui-ci m'est donné en ms.
Voici ce code :
Code:
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

Je ne vois pas à quelle endroit on pourrait changer le format

Merci de ton aide

LeDjé
 
L

Le Djé

Guest
Merci didier pour ton aide mais ça semble ne pas marcher ou alors je m'y prend mal ce qui est probablement le cas.

Exemple : 1 fichier qui, je sais, fait 4 min 53 sec (501146 ms)

tu m'as dit de le diviser par 60000 : 501146 / 60000
Ce qui fait : 8,35243333333333

Et en appliquant ton format cela fait 8mn21s

Peut-être ai-je fait une erreur ???

:eek:
 
L

Le Djé

Guest
Résolu : Convertir des milièmes en mm:ss

Merci pour tout Didier, effectivement j'ai testé avec un autre fichier et le résultat est bon ! Bizarre (Excel ne doit pas apprécier Aqmé !)
Merci encore et bonne fin de week end.

Le Djé
 
L

Le Djé

Guest
Résolu : Convertir des milièmes en mm:ss

Merci pour tout Didier, effectivement j'ai testé avec un autre fichier et le résultat est bon ! Bizarre (Excel ne doit pas apprécier Aqmé !)
Merci encore et bonne fin de week end.

Le Djé
 

Discussions similaires

Statistiques des forums

Discussions
312 790
Messages
2 092 134
Membres
105 231
dernier inscrit
Djemila