recuperer infos d'un fichier sans l'ouvrir

Le
magic-dd
bonsoir

j'essaye par une macro dans mon fichier récapitulatif récupérer les i=
nfos 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

MsgBox "auteur: " & .BuiltinDocumentProperties("Author") & vbLf & _
"le: " & .BuiltinDocumentProperties("creation date") & vbLf=
& _
"dernier enregistrement le " & .BuiltinDocumentProperties("=
last save time") & vbLf & _
" par: " & .BuiltinDocumentProperties("last author")


ThisWorkbook.Close
End With


End Sub


comment faire pour que celui ci reste bien sagement fermé
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 4
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
DanielCo
Le #25055112
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

MsgBox "auteur: " & .BuiltinDocumentProperties("Author") & vbLf & _
"le: " & .BuiltinDocumentProperties("creation date") & vbLf &
_ "dernier enregistrement le " &
.BuiltinDocumentProperties("last save time") & vbLf & _ "
par: " & .BuiltinDocumentProperties("last author")


ThisWorkbook.Close
End With


End Sub


comment faire pour que celui ci reste bien sagement fermé
magic-dd
Le #25055212
merci beaucoup

cela doit il s'ecrire comme cela alors

Sub modif()
'ouverture du fichier concerné


Dim cl As String
cl = [a5].Value

Set fso = CreateObject("Scripting.FileSystemObject")

DateDeModif =fso.getfile(cl).datemodified

range("a5")ÚteDeModif

End Sub

Le jeudi 13 décembre 2012 20:43:40 UTC+1, DanielCo a écrit :
Bonjour,

Tu dois ouvrir le classeur pour utiliser les BuiltinDocumentProperties.

Tu peux, sans ouvrir le classeur, rᅵcupᅵrer certaines pro priᅵ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

>

> MsgBox "auteur: " & .BuiltinDocumentProperties("Author") & vbLf & _

> "le: " & .BuiltinDocumentProperties("creation date") & vbLf &

> _ "dernier enregistrement le " &

> .BuiltinDocumentProperties("last save time") & vbLf & _ "

> par: " & .BuiltinDocumentProperties("last author")

>

>

> ThisWorkbook.Close

> End With

>

>

> End Sub

>

>

> comment faire pour que celui ci reste bien sagement fermᅵ
MichD
Le #25055372
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
'------------------------------------------------------------

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!!!

MichD
--------------------------------------------------------------
magic-dd
Le #25055442
merci michD

mais est ce que cette solution suivante fonctionnerai aussi sans ajout de D LL

Sub modif()
'ouverture du fichier concerné


Dim cl As String
cl = [a5].Value

Set fso = CreateObject("Scripting.FileSystemObject")

DateDeModif =fso.getfile(cl).datemodified

range("a5")ÚteDeModif

End Sub

j'ai bien peur que le responsable informatique ne veuille m'installer cette dll

merci de ton aide

Le jeudi 13 décembre 2012 21:36:53 UTC+1, MichD a écrit :
Bonjour,



Pour pouvoir retrouver l'information concernant ces propriétés du fic hier :



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 c elle 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 in tégré à la base de registre

avant de pouvoir utiliser sa bibliothèque... Du pain sur la planche!!!



MichD

--------------------------------------------------------------
MichD
Le #25055482
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.

MichD
--------------------------------------------------------------
magic-dd
Le #25055542
merci pour l'explication quelque peu technique pour moi

donc quelle sera la bonne facon d'ecrire ma macro?

Sub modif()
'ouverture du fichier concerné


Dim cl As String
cl = [a5].Value

Set fso = CreateObject("Scripting.FileSystemObject")

DateDeModif =fso.getfile(cl).DateLastModified

range("a5")ÚteDeModif

End Sub

est ce correct ?

merci

Le jeudi 13 décembre 2012 22:16:06 UTC+1, MichD a écrit :
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 s ur 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 c ette ligne

de code : Set fso = CreateObject("Scripting.FileSystemObject")

ce qui permet d'utiliser la biblioth�que dans charger la rï¿ ½f�rence.



MichD

--------------------------------------------------------------
MichD
Le #25055652
Une façon de faire :

'-------------------------------------------------
Sub Caractéristiques_Fichier()
Dim Arr(), Fichier As String, FSO As Object

'Tu peux traduire ces expressions en français...
Arr = Array("Name", "DateCreated", _
"DateLastModified", "DateLastAccessed", "Size", "Type")

Fichier = "c:ExcelExcel1.xls" 'à définir

Set FSO = CreateObject("Scripting.FileSystemObject")
Range("A1").Resize(, UBound(Arr) + 1) = Arr
With FSO.getfile(Fichier)
Range("A2") = .Name
Range("B2") = .DateCreated
Range("C2") = .DateLastModified
Range("D2") = .DateLastAccessed
Range("E2") = .Size
Range("F2") = .Type
End With
Range("A1").CurrentRegion.EntireColumn.AutoFit

End Sub
'-------------------------------------------------


MichD
--------------------------------------------------------------
magic-dd
Le #25055752
merci 1000 fois

je test au bureau demain ( apres le café) et je te dis ce qu'il en est

bonne fin de soirée


Le jeudi 13 décembre 2012 22:41:28 UTC+1, MichD a écrit :
Une façon de faire :



'-------------------------------------------------

Sub Caractéristiques_Fichier()

Dim Arr(), Fichier As String, FSO As Object



'Tu peux traduire ces expressions en français...

Arr = Array("Name", "DateCreated", _

"DateLastModified", "DateLastAccessed", "Size", "Type")



Fichier = "c:ExcelExcel1.xls" 'à définir



Set FSO = CreateObject("Scripting.FileSystemObject")

Range("A1").Resize(, UBound(Arr) + 1) = Arr

With FSO.getfile(Fichier)

Range("A2") = .Name

Range("B2") = .DateCreated

Range("C2") = .DateLastModified

Range("D2") = .DateLastAccessed

Range("E2") = .Size

Range("F2") = .Type

End With

Range("A1").CurrentRegion.EntireColumn.AutoFit



End Sub

'-------------------------------------------------





MichD

--------------------------------------------------------------
DanielCo
Le #25056752
Bonjour Denis,
La fonction "GetObject" ouvre le fichier, il me semble; masqué, mais
ouvert.
Cordialement.
Daniel
DanielCo
Le #25056742
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
Publicité
Poster une réponse
Anonyme