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-10T06:03:15+00:00

    Bonjour,

        Dim Rep As Shell32.Folder 

        Set Rep = Shl.Namespace(chemin)

    C'est cette dernière ligne qui pose pb. Si dans chemin j'ai "D:\Films\Z", dans Rep au lieu de récupérer "Z" je récupère une chaîne vide.

    Chemin = chemin contenant le fichier

    Cordialement

    Richard

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

    0 commentaires Aucun commentaire
  2. Anonyme
    2019-08-09T15:59:00+00:00

    Bonjour,

    Et que représente Rep ?

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

    0 commentaires Aucun commentaire
  3. Anonyme
    2019-08-09T10:58:19+00:00

    Bonjour Richard,

    Nous allons voir comment régler cela ensemble.

    Pour tout problème concernant VBA, je vous suggère de vous rendre sur les forums MSDN et d'y poser votre question. En effet, il y a, sur ces forums, des experts ainsi que des agents Microsoft qui vous aideront au mieux.

    Pour cela, rendez-vous ici et cliquez à gauche sur Poser votre question.

    Ce thread restera bien sûr ouvert si quelqu'un a la réponse ici.

    Je reste à disposition pour toute autre question et vous souhaite une bonne journée,

    Melvin

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

    0 commentaires Aucun commentaire