Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2019 Lire propriété (vidéo) à partir d'une boite de dialogue ?

re4

XLDnaute Occasionnel
Bonjour,
Il est encore temps de vous souhaiter une bonne et heureuse année.

J'ai adapté le code ci-dessous pour mes besoins, pouvez-vous m'aider pour aller chercher le fichier avec une boite de dialogue à la place de ce code :
Set objFolder = objShell.Namespace("D:\temp test\video")
Set objFolderItem = objFolder.ParseName("test.mp4")
Mon expérience VBA étant limitée, je n'ai peut -être pas utilisé les bons termes... :-(

Merci par avance
Bonne journée


VB:
Sub ProprieteVideo()

'Extraction de tous les codes sur le pc qui utilise ce fichier dans une feuille ""Code""
Call M2_code_champs1.code_champs1
    
'\
    Dim strHauteurVideo As String
    Dim strLargeurVideo As String
    Dim strHauteur As String
    Dim strLargeur As String
    Dim strTaille As String
    Dim strDebite As String
    
    Largeur = Worksheets("Code").Range("C2").Value  'Win 10 sur mon poste en 2022 => Code 316
    Hauteur = Worksheets("Code").Range("D2").Value 'win 10 sur mon poste en 2022 => Code 314
    Taille = Worksheets("Code").Range("E2").Value        'win 10 sur mon poste en 2022 => code 1
    Debit = Worksheets("Code").Range("F2").Value        'win 10 sur mon poste en 2022 => code 320
    
    Worksheets("Datas").Select
    Set objShell = CreateObject("shell.application")
    
    '***
    Set objFolder = objShell.Namespace("D:\temp test\video")
    Set objFolderItem = objFolder.ParseName("test.mp4")
    '***
    
    strLargeurVideo = objFolder.GetDetailsOf(objFolderItem, Largeur)
    strHauteurVideo = objFolder.GetDetailsOf(objFolderItem, Hauteur)
    Range("A1") = strLargeurVideo & "x" & strHauteurVideo
    strTaille = objFolder.GetDetailsOf(objFolderItem, Taille)
    Range("B1") = strTaille
      strDebit = objFolder.GetDetailsOf(objFolderItem, Debit)
    Range("C1") = strDebit
    
    Set objFolderItem = Nothing
    Set objFolder = Nothing
    Set objShell = Nothing

End Sub
 

patricktoulon

XLDnaute Barbatruc
re

late binding= déclaration tardive (utilisation de createobject) (pas de référence a activer )

l'object shel.application ---> object (late binding)(createobject)
l'object folder ---> object =membre de shell.application
l'object folderitem ---> object = membre de shell.application (child de folder )

namespace(dossier) ---> dossier en string ou variant
ParseName(Fichier) ---> fichier en variant obligatoirement

dans beaucoup d'autres librairies des qu' il y a un parse ("analyser")l'objet (et non l'Object) du parse doit être une structure pas une chaîne string qui est une chaîne et n'est pas structuré
 
Dernière édition:

re4

XLDnaute Occasionnel
@Marcel32
Je pense que le problème vient plus du type de fichier que de l'OS.
Je suis sous Windows 10 Pro 64 21H1 et Excel 2016.
C'est peut-être vrai pour les vidéos mais les tests et les utilisations que j'en fait sont jusqu'a présent qu'avec des jpg et qui peuvent être sur differentes machines et suivant l'os je n'avais pas les mêmes codes d'ou la procédure pour identifier les codes de chaque pc ou le fichier était lancé. Mais peut-être que l'on ne parle pas de la même chose. Comme toi sur différentes machine win famille ou pro je n'avait pas le même résultat.
 

TooFatBoy

XLDnaute Barbatruc
Mais peut-être que l'on ne parle pas de la même chose.
Si on parle bien de la même chose.

J'ai compris que tu dis qu'en fonction de l'OS on n'a pas les mêmes résultats pour un même fichier.
Moi, ce que je disais, c'est que sous un même OS, on n'a pas les mêmes résultats selon le type de fichier.
 
Dernière édition:

patricktoulon

XLDnaute Barbatruc
bon ben le dernier test confirme
tout les attributs sont les memes pour tout les fichiers
bien sur les attributs sont renseignés ou pas

kado
 

Pièces jointes

  • VBA Files_ properties and methods (FSO et shell.application.pdf
    280 KB · Affichages: 17

re4

XLDnaute Occasionnel
Bonjour,
exact, j'ai testé pour ceux que j'utilise le plus souvent avec *.jpg - *.mov - *.mts - *.mp4
Avec du vba il n'est peut-être pas possible d'obtenir les mêmes infos que nous donne par exemple MediaInfo.

Pour terminer peut-être, J'ai une préférence pour le code du post #27, qui me suffit pour l'instant, comment remplacer l'appel des fichiers en ''dur'' par l'ouverture d'un explorer ?

Code:
Sub test_Avec_1_fichier()
    [A1].CurrentRegion.ClearContents
    Chemin = "I:\FILM TV\deja visionné\2 drame policier"
    Fichier$ = "une vie de mensonge.mp4"
        Get_Attributes_Fich Fichier, 3
End Sub

Merci à vous deux, c'est un super boulot
 
Dernière édition:

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…