Bonjour, Tu dois ouvrir le classeur pour utiliser les BuiltinDocumentProperties. Tu peux, sans ouvrir le classeur, récupérer certaines propriétés avec FSO :
Set fso = CreateObject("Scripting.FileSystemObject") DateDeCreation = fso.getfile("C:UsersDanielDocumentsDonneesDanielmpfe121211.xlsm").datecreated
Tu peux ainsi récupérer : - la date de création - la date du dernier accès - la date de dernière modification - la taille - le type du fichier
Daniel
bonsoir
j'essaye par une macro dans mon fichier récapitulatif récupérer les infos d'enregistrement d'un autre classeur sans que celui ci s'ouvre
le chemin de celui ci est dans mon fichier en cellule A5
or il s'ouvre :)
voici ma procedure
Sub modif() 'ouverture du fichier concerné
Dim cl As String cl = [a5].Value Workbooks.Open (cl) ' à adapter With ThisWorkbook
comment faire pour que celui ci reste bien sagement fermé
Bonjour,
Tu dois ouvrir le classeur pour utiliser les BuiltinDocumentProperties.
Tu peux, sans ouvrir le classeur, récupérer certaines propriétés avec
FSO :
Set fso = CreateObject("Scripting.FileSystemObject")
DateDeCreation =
fso.getfile("C:UsersDanielDocumentsDonneesDanielmpfe121211.xlsm").datecreated
Tu peux ainsi récupérer :
- la date de création
- la date du dernier accès
- la date de dernière modification
- la taille
- le type du fichier
Daniel
bonsoir
j'essaye par une macro dans mon fichier récapitulatif récupérer les infos
d'enregistrement d'un autre classeur sans que celui ci s'ouvre
le chemin de celui ci est dans mon fichier en cellule A5
or il s'ouvre :)
voici ma procedure
Sub modif()
'ouverture du fichier concerné
Dim cl As String
cl = [a5].Value
Workbooks.Open (cl) ' à adapter
With ThisWorkbook
Bonjour, Tu dois ouvrir le classeur pour utiliser les BuiltinDocumentProperties. Tu peux, sans ouvrir le classeur, récupérer certaines propriétés avec FSO :
Set fso = CreateObject("Scripting.FileSystemObject") DateDeCreation = fso.getfile("C:UsersDanielDocumentsDonneesDanielmpfe121211.xlsm").datecreated
Tu peux ainsi récupérer : - la date de création - la date du dernier accès - la date de dernière modification - la taille - le type du fichier
Daniel
bonsoir
j'essaye par une macro dans mon fichier récapitulatif récupérer les infos d'enregistrement d'un autre classeur sans que celui ci s'ouvre
le chemin de celui ci est dans mon fichier en cellule A5
or il s'ouvre :)
voici ma procedure
Sub modif() 'ouverture du fichier concerné
Dim cl As String cl = [a5].Value Workbooks.Open (cl) ' à adapter With ThisWorkbook
> comment faire pour que celui ci reste bien sagement fermï¿
MichD
Bonjour,
Pour pouvoir retrouver l'information concernant ces propriétés du fichier :
Title Subject Author Keywords Comments Template Last author Revision number Application name Last print date Creation date Last save time Total editing time Number of pages Number of words Number of characters Security Category Format Manager Company Number of bytes Number of lines Number of paragraphs Number of slides Number of notes Number of hidden Slides Number of multimedia clips Hyperlink base Number of characters (with spaces) Content type Content status Language Document version
Je te propose ceci : Tu remplaces dans la procédure, le nom de la propriété Author par celle que tu désires. Le fichier est ouvert mais non visible par l'usager. '------------------------------------------------------------ Sub test() Dim Fichier As String, X As Workbook Dim FileName As String
FileName = "C:ExcelExcel1.xls" 'À adapter If Dir(FileName) <> "" Then Fichier = Mid(FileName, InStrRev(FileName, "") + 1, 100) Set X = GetObject(FileName) MsgBox X.BuiltinDocumentProperties(Author).Value X.Close: Set X = Nothing Else MsgBox "Fichier ou chemin non valide." End If End Sub '------------------------------------------------------------
La DLL requise : DSOFILE.DLL doit être téléchargé du Web, puis intégré à la base de registre avant de pouvoir utiliser sa bibliothèque... Du pain sur la planche!!!
Pour pouvoir retrouver l'information concernant ces propriétés du fichier :
Title
Subject
Author
Keywords
Comments
Template
Last author
Revision number
Application name
Last print date
Creation date
Last save time
Total editing time
Number of pages
Number of words
Number of characters
Security
Category
Format
Manager
Company
Number of bytes
Number of lines
Number of paragraphs
Number of slides
Number of notes
Number of hidden Slides
Number of multimedia clips
Hyperlink base
Number of characters (with spaces)
Content type
Content status
Language
Document version
Je te propose ceci :
Tu remplaces dans la procédure, le nom de la propriété Author par celle que tu désires.
Le fichier est ouvert mais non visible par l'usager.
'------------------------------------------------------------
Sub test()
Dim Fichier As String, X As Workbook
Dim FileName As String
FileName = "C:ExcelExcel1.xls" 'À adapter
If Dir(FileName) <> "" Then
Fichier = Mid(FileName, InStrRev(FileName, "") + 1, 100)
Set X = GetObject(FileName)
MsgBox X.BuiltinDocumentProperties(Author).Value
X.Close: Set X = Nothing
Else
MsgBox "Fichier ou chemin non valide."
End If
End Sub
'------------------------------------------------------------
Pour ne pas à avoir à ouvrir le fichier, regarde ici :
http://frederic.sigonneau.free.fr/code/Fichiers/PropertyReader.txt
Si tu as Windows 64 bits, regarde plutôt ici :
http://www.keysolutions.com/blogs/kenyee.nsf/d6plinks/KKYE-79KRU6
La DLL requise : DSOFILE.DLL doit être téléchargé du Web, puis intégré à la base de registre
avant de pouvoir utiliser sa bibliothèque... Du pain sur la planche!!!
Pour pouvoir retrouver l'information concernant ces propriétés du fichier :
Title Subject Author Keywords Comments Template Last author Revision number Application name Last print date Creation date Last save time Total editing time Number of pages Number of words Number of characters Security Category Format Manager Company Number of bytes Number of lines Number of paragraphs Number of slides Number of notes Number of hidden Slides Number of multimedia clips Hyperlink base Number of characters (with spaces) Content type Content status Language Document version
Je te propose ceci : Tu remplaces dans la procédure, le nom de la propriété Author par celle que tu désires. Le fichier est ouvert mais non visible par l'usager. '------------------------------------------------------------ Sub test() Dim Fichier As String, X As Workbook Dim FileName As String
FileName = "C:ExcelExcel1.xls" 'À adapter If Dir(FileName) <> "" Then Fichier = Mid(FileName, InStrRev(FileName, "") + 1, 100) Set X = GetObject(FileName) MsgBox X.BuiltinDocumentProperties(Author).Value X.Close: Set X = Nothing Else MsgBox "Fichier ou chemin non valide." End If End Sub '------------------------------------------------------------
La DLL requise : DSOFILE.DLL doit être téléchargé du Web, puis intégré à la base de registre avant de pouvoir utiliser sa bibliothèque... Du pain sur la planche!!!
Voici les propriétés que tu peux extraire d'un fichier avec ta procédure :
Name, DateCreated, DateLastModified, DateLastAccessed, Size, Type
| sans ajout de DLL Cette DLL comme tu l'appelles est déjà présente sur l'ordinateur :
Le nom de la bibliothèque : Scripting
Le fichier responsable de cette bibliothèque C:WindowsSysWOW64scrrun.dll 'Pour Windows 64 bits C:WindowsSystem32scrrun.dll 'Pour Windows 32 bits
Le nom descriptif dans la liste de la fenêtre des références : Microsoft Scripting Runtime
La procédure que tu utilises emploie une "liaison tardive" avec cette ligne de code : Set fso = CreateObject("Scripting.FileSystemObject") ce qui permet d'utiliser la bibliothèque dans charger la référence.
Voici les propriétés que tu peux extraire d'un fichier
avec ta procédure :
Name, DateCreated, DateLastModified, DateLastAccessed, Size, Type
| sans ajout de DLL
Cette DLL comme tu l'appelles est déjà présente sur l'ordinateur :
Le nom de la bibliothèque : Scripting
Le fichier responsable de cette bibliothèque
C:WindowsSysWOW64scrrun.dll 'Pour Windows 64 bits
C:WindowsSystem32scrrun.dll 'Pour Windows 32 bits
Le nom descriptif dans la liste de la fenêtre des références :
Microsoft Scripting Runtime
La procédure que tu utilises emploie une "liaison tardive" avec cette ligne
de code : Set fso = CreateObject("Scripting.FileSystemObject")
ce qui permet d'utiliser la bibliothèque dans charger la référence.
Voici les propriétés que tu peux extraire d'un fichier avec ta procédure :
Name, DateCreated, DateLastModified, DateLastAccessed, Size, Type
| sans ajout de DLL Cette DLL comme tu l'appelles est déjà présente sur l'ordinateur :
Le nom de la bibliothèque : Scripting
Le fichier responsable de cette bibliothèque C:WindowsSysWOW64scrrun.dll 'Pour Windows 64 bits C:WindowsSystem32scrrun.dll 'Pour Windows 32 bits
Le nom descriptif dans la liste de la fenêtre des références : Microsoft Scripting Runtime
La procédure que tu utilises emploie une "liaison tardive" avec cette ligne de code : Set fso = CreateObject("Scripting.FileSystemObject") ce qui permet d'utiliser la bibliothèque dans charger la référence.
Bonjour Denis, La fonction "GetObject" ouvre le fichier, il me semble; masqué, mais ouvert. Cordialement. Daniel
DanielCo
Oups, je n'avais pas lu la totalité de ton post. Il est intéressant de mettre avant "GetObject" : Application.EnableEvents = False pour éviter l'exécution des macros Workbook_Open. Et de rétablir après, bien sûr. Daniel
Bonjour Denis, La fonction "GetObject" ouvre le fichier, il me semble; masqué, mais ouvert. Cordialement. Daniel
Oups, je n'avais pas lu la totalité de ton post.
Il est intéressant de mettre avant "GetObject" :
Application.EnableEvents = False
pour éviter l'exécution des macros Workbook_Open.
Et de rétablir après, bien sûr.
Daniel
Bonjour Denis,
La fonction "GetObject" ouvre le fichier, il me semble; masqué, mais ouvert.
Cordialement.
Daniel
Oups, je n'avais pas lu la totalité de ton post. Il est intéressant de mettre avant "GetObject" : Application.EnableEvents = False pour éviter l'exécution des macros Workbook_Open. Et de rétablir après, bien sûr. Daniel
Bonjour Denis, La fonction "GetObject" ouvre le fichier, il me semble; masqué, mais ouvert. Cordialement. Daniel