Macro affichage "durée" fichier

Fermé
vieuxray - 11 janv. 2017 à 17:05
 vieuxray - 12 janv. 2017 à 18:54
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
A voir également:

7 réponses

Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 779
Modifié par Patrice33740 le 11/01/2017 à 17:56
1
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 779
12 janv. 2017 à 13:55
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
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 779
12 janv. 2017 à 16:49
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
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
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 779
12 janv. 2017 à 11:53
« 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
vieuxray > Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023
12 janv. 2017 à 12:18
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 779
12 janv. 2017 à 15:27
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
vieuxray > Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023
12 janv. 2017 à 15:42
RE

1) oui exactement 2009 en colonne C
2) oui 9 lignes sans durée en colonne C
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 779 > vieuxray
12 janv. 2017 à 15:59
Ou est donc le problème ?
0
vieuxray > Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023
12 janv. 2017 à 16:09
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
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 779 > vieuxray
12 janv. 2017 à 16:13
Pourquoi dis-tu que 3 fichiers merdouillent, puisque la macro fournit leur durée ?
0
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
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 779
12 janv. 2017 à 17:09
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
vieuxray > Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023
12 janv. 2017 à 17:21
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
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