Macro affichage "durée" fichier

vieuxray -  
 vieuxray -
Bonjour,


Re Patrice33740

Je croyais pouvoir arriver a copier les infos que tu affiches a la fin du code dans le (MsgBox)

Dans la colonne (E:E1) de cette manière ci-dessous, mais j'ai une "erreur 400"

E1 = Manque de durée :
E2 = 1) Film n°487
E2 = 2) Film n°
E3 = etc etc

et a la fin afficher du MsgBox (Terminé en etc etc)

But pas besoin du "MsgBox" dans mon programme.

j'ai chercher, modifier, essayer, ce qui m'étonne c'est toujours même message qui revient.

Si tu peux svp me faire ca, a moins que cela viendrai du code, mais j'en voie pas vraiment la raison, je t'en remercie, je retourne essayer.

Cdlt Ray

7 réponses

  1. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 783
     
    Re Raymond,

    Je ne comprends pas pourquoi il manque des films sans durée !
    Chez moi, je n'ai pas de fichier sans durée qui ne soient pas détectés. il s'agit probablement de cas particuliers.

    On va essayer une autre méthode :
    ' Ajouter une référence à "abcAVI Info Library"
    ' (barre des menus/Outils/Références...)
    Option Explicit
    Public Sub Listing_Affiche_la_Durée()
    ' Liste la durée des films
    '
    Const chemin$ = "F:\Films\Action"          'Adapter le répertoire
    Const nbmax% = 5000                        'Adapter nbre max de films
    Dim tag As New abcAVI.ExtendedAVITags
    Dim AviInfos As Variant
    Dim lgr(1 To nbmax) As Variant
    Dim fichier As String
    Dim manque As String
    Dim début As Single
    Dim temps As Single
    Dim ctr As Integer
    Dim cte As Integer
    
      début = Timer
      Application.EnableEvents = False
      Range("C1:C" & nbmax).ClearContents
      Range("E1:C" & nbmax).ClearContents
      Application.ScreenUpdating = False
      fichier = Dir(chemin & "\*.avi")
      ctr = 1
      Do While Len(fichier) > 0
        Cells(ctr, 3).Value = fichier
        tag.ReadAVITags chemin & "\" & fichier, PM_Lite_Mode + _
                        PM_Tech_Info, 0, AviInfos
        lgr(ctr) = tag.GetInfo(AviInfos, IDI_Video_Stream, IDV_Duration)
        If IsNumeric(lgr(ctr)) Then
          lgr(ctr) = Val(lgr(ctr)) / (24# * 3600# * 1000#)
        Else
          lgr(ctr) = ""
          cte = cte + 1
          manque = manque & cte & ") Film n° " & ctr & vbCrLf
        End If
        ctr = ctr + 1
        fichier = Dir
      Loop
      Range("C1").Resize(ctr).Value = Application.Transpose(lgr)
      Range("C1").Resize(ctr).NumberFormat = "hh:mm:ss"
      Application.ScreenUpdating = True
      Application.EnableEvents = True
      
      temps = Timer - début
      If manque > "" Then
        manque = "Manque durée de : " & vbCrLf & manque & vbCrLf
        Range("E1").Resize(cte + 1).Value = _
           Application.Transpose(Split(manque, vbCrLf))
      End If
      MsgBox "Terminé en " & Int(temps / 60) & " min. " & _
             Int(temps Mod 60) & " sec. " & _
             Int(temps * 1000 Mod 1000) & " milièmes"
    End Sub
    1
  2. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 783
     
    Re,

    T'es pas cohérent dans tes réponses !

    Tu écris : « Sur mon D-D 2009 fichiers exactement sous Windows »

    et aux questions suivantes voici tes réponses :
    1) Y a-t-il bien autant de lignes que de fichiers (i.e. 2009) en colonne C ?
    1) oui exactement 2009 en colonne C

    2) Y a-t-il 9 ou 12 lignes sans durée en colonne C ?
    2) oui 9 lignes sans durée en colonne C

    Et tu dis :
    « et moi j'en trouve 12 sur mon DD
    il reste 3 fichiers qui n'ont pas de durée et ne sont pas détecter par ton code »


    Tu devrais dire l'inverse : Il y a sur mon DD 3 fichiers pour lesquels ton code trouve la durée et que moi je ne trouve pas avec Windows !!!!
    1
  3. vieuxray
     
    Salut Patrice,

    Merci pour ta réponse,

    J'avais effectivement la réponse mais je n'ai pas penser a remonter les réponses, je suis désoler.

    (1) Pour le temps ça c'est bon, ça varie juste entre 2 a 3 secondes et c'est bien comme ca.

    (2) Pour le test des fichiers qui n'ont pas une durée, quelque chose ne va pas.

    Sur mon DD il ni a que des fichiers avi et absolument rien d'autres.

    Quand je test avec le code, il me trouve 9 fichiers qui n'ont pas de durée.

    J'ai vérifier si cela correspondais bien avec le répertoire de mon DD et moi, j'en trouve 12 qui n'ont pas de durée.

    Bien entendu, j'ai vérifier plusieurs fois et je trouve toujours les mêmes 12 fichiers qui n'ont pas de durée.

    Comme sous Windows c'est beaucoup plus long pour afficher la longueur(durée) j'ai rebooter laisser faire tranquillement l'affichage et re essais idem toujours 12 fichiers qui n'ont pas de durée.

    Je n'ai rien vu qui serait différents des autres fichiers.

    Voila c'est presque bon, je te souhaite une très bonne journée.

    Cdlt Raymond
    0
    1. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 783
       
      « Quand je test avec le code, il me trouve 9 fichiers qui n'ont pas de durée. »
      Et combien manque-t-il de durées dans la liste du fichier ???
      Qu'y a-t-il d'écrit dans les cellules sans durée ? rien ? zéro ? un espace ?
      Utilises-tu exactement le code de cette la réponse :
      https://forums.commentcamarche.net/forum/affich-34239137-comment-accelerer-cette-petite-macro#25
      0
      1. vieuxray > Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention  
         
        Re Patrice,

        Merci pour ta réponse.

        Le code affiche sur 2009 fichiers exactement, 9 fichiers sans durée.
        La liste de 1 a 9 fichiers sans durée.

        Dans les cellules sans durée (rien de rien) d'écrit.

        J'utilise la dernière version proposer du 11 janv. 2017 à 17:50 et je n'ai rien modifier au code.
        J'ai bien fait des essais mais sur une copie, pour voir comment ca marche et de voir qui fait quoi.

        Sur mon D-D 2009 fichiers exactement sous Windows, même H:\ je compte 12 fichiers sans durée, dont 9 fichiers trouver par le code.

        Et moi j'en compte 12 trouvés donc manque 3 par le code, j'ai vérifier plusieurs fois.

        Si il te faut d'autres infos, je reste a ton écoute.

        je te remercie a plus tard

        Cdlt Ray
        0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. vieuxray
     
    re Patrice

    j'ai essayer le dernier code il fonctionne très bien

    il trouve toujours 9 fichiers sans durée et pour le temps toujours pareil nickel

    et sur mon D-D re vérifiera nouveau il a bien 12 fichiers sans durée donc 3 que le code trouve pas et tout les films sont nommés normalement et en .avi

    je comprends pas pourquoi ??

    rien bricoler sur le nouveau code

    Voila merci a toi

    Cdlt Ray
    0
    1. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 783
       
      Après exécution de la macro,
      1) Y a-t-il bien autant de lignes que de fichiers (i.e. 2009) en colonne C ?
      2) Y a-t-il 9 ou 12 lignes sans durée en colonne C ?
      0
    2. vieuxray > Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention  
       
      RE

      1) oui exactement 2009 en colonne C
      2) oui 9 lignes sans durée en colonne C
      0
    3. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 783 > vieuxray
       
      Ou est donc le problème ?
      0
    4. vieuxray > Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention  
       
      Je ne sais pas, non plus.

      Peut être dans l'entète de ces 3 fichiers qui merdouille

      Je vais essayer de me re-procurer un de ces 3 fichiers si possible et je remplacerai.

      si ca fonctionne ca devrai vouloir dire que c'est le fichier

      Je te tiens au courant dès si je réussi.

      Merci a toi

      je regarde Cdlt Ray
      0
    5. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 783 > vieuxray
       
      Pourquoi dis-tu que 3 fichiers merdouillent, puisque la macro fournit leur durée ?
      0
  6. vieuxray
     
    Re

    bon je suis un peu perdu du coup

    pour j'ai sur mon DD et sous Windows 2009 fichiers

    dont 12 fichiers qui n'ont pas de durée

    le code trouve 9 fichiers qui n'ont pas de durée

    Donc 3 fichiers qui reste sans durée et qui ne sont pas trouver par le code

    on va y arriver ihihhiih

    Cdlt Ray
    0
    1. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 783
       
      Non,
      Le code VBA affiche la durée de 2009 - 9 = 2000 fichiers
      Windows affiche la durée de 2009 - 12 = 1997 fichiers
      Donc le code fournit la durée de 3 fichiers de plus (et pas de moins) que Windows !
      0
      1. vieuxray > Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention  
         
        Re Patrice

        Heu, baht oui, je me tue a te le dire ihihhi non je déconne.

        Je n'avais pas compris, comme ca donc conclusion ton code est bon et même
        très bon puisqu'il me trouve 3 de plus.

        A bas Windows LOL

        Excuse moi de l'embrouille, je n'ai pas été bon sur ce coup la.

        Cdlt Ray
        0
  7. vieuxray
     
    Salut Patrice,

    J'ai adapter a mon programme et tout fonctionne bien.

    Je te dois un énorme merci, je ne serai pas arriver a faire tout ça sans ta précieuse aide.

    Encore merci pour ta patience et pour la sympathie de tes réponses, c'est
    très apprécier.

    Je te salut et a bientôt sans aucun doute.

    Bien cordialement Raymond
    0