Résolu Récupération de métadonnées depuis les fichiers de l'explorateur Windows ?

  • Auteur de la discussion cecile_help
  • Date de début

cecile_help

Nouveau membre
Bonjour,

Dans le cadre de la migration de documents vers Sharepoint dans la mise en place d'une GED, j'aurais voulu savoir s'il était possible via un script ou un logiciel ou toute autre chose, de récupérer des métadonnées de fichiers se trouvant sur l'explorateur Windows, à savoir, date de création, dernière date de modification, nom du fichier, personne qui l'a créé, éventuellement qui l'a modifié...
Parce que manuellement ce serait vraiment très très long à faire. Donc si jamais il existe une solution pour semi-automatiser tout ça..
A savoir que je ne suis pas du tout dans la technique informatique, la DSI le fera, mais n'a pour l'instant pas le temps de se pencher sur le sujet..

Merci d'avance à tous.
 

BlackPage

Grand Maître
Salut,
Ces données sont récupérables via un langage de programmation tel que VB sans souci.
 

cecile_help

Nouveau membre
Du coup autre question..
J'ai trouvé des cours de VB avec des codes tout fait, mais je ne comprends pas à quel moment et à quel endroit je dois mettre mes données (par exemple le lieu du répertoire) pour que tout fonctionne. Du coup ça ne marche jamais.
Avec celui-ci par exemple :

Option Explicit


Sub triDecroissant_Fichiers_DateDreation()
Dim Fichier As String, Chemin As String
'
'Nécessite d'activer la référence "Microsoft Scripting RunTime"
'
Dim Fso As Scripting.FileSystemObject
Dim FileItem As Scripting.File
Dim Tableau()
Dim Plage As Range
Dim m As Integer, i As Integer
Dim z As Byte, Valeur As Byte
Dim Cible As Variant

'---liste les fichiers du répertoire ---
Chemin = "C:\Documents and Settings\dossier"
Fichier = Dir(Chemin & "\*.*")
'pour filtrer sur un type de fichiers (par exemple xls)
'Fichier = Dir(Chemin & "\*.xls")

'Boucle sur les fichiers
Do

m = m + 1
ReDim Preserve Tableau(1 To 2, 1 To m)
Tableau(1, m) = Fichier

Set Fso = CreateObject("Scripting.FileSystemObject")
Set FileItem = Fso.GetFile(Chemin & "\" & Fichier)

'Récupère la date de création
Tableau(2, m) = Left(FileItem.DateCreated, 10)
'Pour récupérer la date de dernière modification
'Tableau(2, m) = Left(FileItem.DateLastModified, 10)
'Pour récupérer la taille du fichier
'Tableau(2, m) = Left(FileItem.Size, 10)

Fichier = Dir
Loop Until Fichier = ""


'---Trie les fichiers par ordre décroissant de création ---
Do
Valeur = 0
For i = 1 To m - 1
If CDate(Tableau(2, i)) < CDate(Tableau(2, i + 1)) Then
For z = 1 To 2
Cible = Tableau(z, i)
Tableau(z, i) = Tableau(z, i + 1)
Tableau(z, i + 1) = Cible
Next z

Valeur = 1
End If
Next i
Loop While Valeur = 1


'--- Transfère les données dans la feuille de calcul ---
Set Plage = Worksheets("Feuil2").Range("A1")
Set Plage = Plage.Resize(UBound(Tableau(), 2), UBound(Tableau()))
Plage = Application.Transpose(Tableau())

End Sub

Merci !
 

BlackPage

Grand Maître
Je ne fais plus de VB depuis quelques années mais à priori :

Chemin = "C:\Documents and Settings\dossier"

Là tu précise le dossier ou sont stockés tes fichiers. Ensuite ca boucle dedans et ca récupère les données que tu veux et ca les met dans un tableau.

A la fin, la fonction colle le contenu du tableau dans une feuille excel, mais par contre je sais pas d'ou elle sort elle... Peut etre qu'il faut qu'elle soit déjà ouverte dans excel quand tu exécute le code. Sinon il manque quelque chose...

Bon courage !
 

cecile_help

Nouveau membre
En effet ça a marché, merci !
Cependant, ça m'a juste affiché le nom du document et la date de création, rien d'autre.. :/
Pfiou c'est bien compliqué tout ça
 

BlackPage

Grand Maître
Normalement tu devrais récupérer ca :

'Récupère la date de création
Tableau(2, m) = Left(FileItem.DateCreated, 10)
'Pour récupérer la date de dernière modification
'Tableau(2, m) = Left(FileItem.DateLastModified, 10)
'Pour récupérer la taille du fichier
'Tableau(2, m) = Left(FileItem.Size, 10)

Par contre y'a une erreur : a chaque fois y'a Tableau(2,m), faut augmenter le 2 :

'Récupère la date de création
Tableau(2, m) = Left(FileItem.DateCreated, 10)
'Pour récupérer la date de dernière modification
'Tableau(3, m) = Left(FileItem.DateLastModified, 10)
'Pour récupérer la taille du fichier
'Tableau(4, m) = Left(FileItem.Size, 10)

La ca devrait être mieux

 

BlackPage

Grand Maître
Si ca fonctionne pas, essaie de modifier ca aussi :

ReDim Preserve Tableau(1 To 2, 1 To m) -> ReDim Preserve Tableau(1 To 4, 1 To m)

Et supprime la partie tri si tu en as pas besoin, j'ai l'impression qu'elle est buggée aussi ( trie pas toutes les colonnes )
 

cecile_help

Nouveau membre
Merci !
Du coup il me reste ça :

Option Explicit


Sub triDecroissant_Fichiers_DateDreation()
Dim Fichier As String, Chemin As String
'
'Nécessite d'activer la référence "Microsoft Scripting RunTime"
'
Dim Fso As Scripting.FileSystemObject
Dim FileItem As Scripting.File
Dim Tableau()
Dim Plage As Range
Dim m As Integer, i As Integer
Dim z As Byte, Valeur As Byte
Dim Cible As Variant

'---liste les fichiers du répertoire ---
Chemin = "G:\Recherches"
Fichier = Dir(Chemin & "\*.*")
'pour filtrer sur un type de fichiers (par exemple xls)
'Fichier = Dir(Chemin & "\*.xls")

'Boucle sur les fichiers
Do

m = m + 1
ReDim Preserve Tableau(1 To 4, 1 To m)
Tableau(1, m) = Fichier

Set Fso = CreateObject("Scripting.FileSystemObject")
Set FileItem = Fso.GetFile(Chemin & "\" & Fichier)

'Récupère la date de création
Tableau(2, m) = Left(FileItem.DateCreated, 10)
'Pour récupérer la date de dernière modification
'Tableau(3, m) = Left(FileItem.DateLastModified, 10)
'Pour récupérer la taille du fichier
'Tableau(4, m) = Left(FileItem.Size, 10)

Fichier = Dir
Loop Until Fichier = ""


'--- Transfère les données dans la feuille de calcul ---
Set Plage = Worksheets("Feuil3").Range("A1")
Set Plage = Plage.Resize(UBound(Tableau(), 2), UBound(Tableau()))
Plage = Application.Transpose(Tableau())

End Sub


Mais j'ai toujours que le nom du document et la date de création.. :/
 

Thore

Grand Maître
J'utilise SharePoint mais je ne voie pas ta problématique

car nativement tu peu exporté au format Excel / Access / Serveur SQL / XML


 

Thore

Grand Maître
Les méta données des fichiers

http://silkyroad.developpez.com/VBA/ProprietesClasseurs/
 

cecile_help

Nouveau membre
Ma question c'était quelle requête VB faire du coup (puis qu'apparemment c'est la solution) pour récupérer les métadonnées des documents qui sont sur serveurs pour pas les rentrer une par une.

 

cecile_help

Nouveau membre
Re bonjour,

J'ai réussi grâce à la requête du dessus à récupérer nom du fichier, date de création, dernière date de modification, mais je n'arrive pas à récupérer l'auteur du document. J'ai essayé en mettant "Author" mais ça me dit "Erreur de compilation...".

Quelqu'un sait-il comment faire ?

Merci !
 

BlackPage

Grand Maître
Meilleure réponse
Re,
De mémoire, l'auteur ne fait pas partie des métadonnées d'un document mais est lié à format de document ( Word, Excel ) donc tu ne pourras pas récupérer cela comme tu voudrais.
Pour cette donnée, il faut ouvrir le document et lire la métadonnée qui doit être planquée quelque part à l'intérieur du doc.
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 136
Messages
6 718 121
Membres
1 586 398
Dernier membre
mookie767
Partager cette page
Haut