VBA détails fichier vidéo

Anonyme
2019-08-08T17:22:36+00:00

Bonjour,

jusqu'à ce matin pour récupérer :

1/ la largeur d'un fichier vidéo j'utilisais : Rep.GetDetailsOf(fichier, 317)

2/ débit image : Left(Rep.GetDetailsOf(fichier, 314), Len(Rep.GetDetailsOf(fichier, 314)) - 8)

Suite à la mise à jour de Windows ce matin ces 2 instructions ne fonctionnent plus, je pense que les numéros (317, 314) ne sont plus les bons.

Quels sont-ils ?

Comment construire un pgr VBA affichant pour chaque numéro les détails, du type :

For i=0 to 350 '350 est un peu grand

     Range("A" & i+1)= i

     Range("B" & i+1) = Rep.GetDetailsOf(fichier, i)

Next

cordialement

Richard

Microsoft 365 et Office | Excel | Pour la maison | Windows

Question verrouillée. Cette question a été migrée à partir de la Communauté Support Microsoft. Vous pouvez voter pour indiquer si elle est utile, mais vous ne pouvez pas ajouter de commentaires ou de réponses ni suivre la question.

0 commentaires Aucun commentaire
Réponse acceptée par l’auteur de la question
Anonyme
2019-08-11T14:05:12+00:00

Bonjour

Dir retourne une chaine de caractères et non un objet,

exemple MonDir = dir(Chemin, vbdirectory)

En gros c'est presque une instruction pour rien puisque vous avez déjà le chemin.

Bonjour,

Oui tout à fait.

L'instruction SET en effet instancie un objet entier.

Là le remarque Geo , il faut recupérer tout le dossier, non pas juste le nom, donc ma proposition dans le contexte n'avance en rien.

Je ne sais pas pourquoi Shell ne fonctionne pas correctement de votre coté, avec des brides d'information c'est un peu compliqué d'aider, il faudra faire un pas à pas puis identifier a quel endroit précis ça coince.

Contournement: si la macro tourne sous Windows exclusivement vous avez FileSystemObject qui permet de coder avec des fonctions toutes faites.

Dans votre code 

Dim Shl As Object, fichier0 As Object

    Set Shl = CreateObject("Shell.Application")

    Set Folder = Dir(Chemin, vbDirectory)

    Set fichier0 = Folder.Items.Item(Fichier)

Devient

    Dim Shl As Object, fichier0 As Object

    Set Shl = CreateObject("Scripting.FileSystemObject")

    Set fichier0 = Shl.GetFile(Chemin & ""& Fichier) 'ici directement récupération du fichier

Si cela ne suffit pas, il faudra fournir un peu plus d'informations précises sur le système d'exploitation, plus d'information sur le plantage.

Cordialement,

Nabran

Cette réponse a-t-elle été utile ?

1 personne a trouvé cette réponse utile.
0 commentaires Aucun commentaire
Réponse acceptée par l’auteur de la question
Anonyme
2019-08-13T09:08:18+00:00

Bonjour

Je n'ai pas de 1903 installée, il faudrait que je le fasse pour des essais. Je suis toujours en 1703 ce qui m'évite justement ces comportements inattendus.

Il semble qu'il y ait 5 valeurs supplémentaires prévues entre 37 et 41 et tout le reste est décalé.

La solution pérenne serait de passer ce code pour enregistrer les valeurs obtenues dans une table.

Ensuite y faire une recherche avec le libellé désiré, en déduire le code et l'utiliser pour les valeurs que vous cherchez.

Cette réponse a-t-elle été utile ?

0 commentaires Aucun commentaire

13 réponses supplémentaires

  1. Anonyme
    2019-08-12T04:42:12+00:00

    Bonjour Geo,

    je n'obtiens pas les mêmes numéros, par exemple pour "Taille totale du fichier" : 57

    Pourquoi ?

    Cordialement

    Richard

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  2. Anonyme
    2019-08-11T19:25:40+00:00

    Si voulez dire qu'il y a "nothing" dans Rep, j'ai effectivement ça dans Rep quand le nom du chemin contient une erreur.

    J'ai fait tourner l'équivalent de votre code dans Word, voici une partie du résultat :

    303         Taille totale du fichier

    304         Marques légales

    305         Compression vidéo

    306         Administration

    307         Débit de données

    308         Hauteur de trame

    309         Fréquence d’images

    310         Largeur de trame

    311         Sphérique

    312         Stéréo

    313         Orientation de la vidéo

    314         Débit total (en bits)

    Le dernier code donné par Aboubacar Nabran donne le même résultat.

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  3. Anonyme
    2019-08-11T09:48:47+00:00

    Bonjour

    Dir retourne une chaine de caractères et non un objet,
    exemple MonDir = dir(Chemin, vbdirectory)
    En gros c'est presque une instruction pour rien puisque vous avez déjà le chemin.

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire