Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

recuperer infos d'un fichier sans l'ouvrir

32 réponses
Avatar
magic-dd
bonsoir

j'essaye par une macro dans mon fichier r=E9capitulatif r=E9cup=E9rer 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=E9
=20

Dim cl As String
cl =3D [a5].Value
Workbooks.Open (cl) ' =E0 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
=20
=20
End Sub
=20

comment faire pour que celui ci reste bien sagement ferm=E9

10 réponses

1 2 3 4
Avatar
magic-dd
J ai essayé de construire une boucle mais cela plante avec un MSG d'erreu r d'automation.

Voici le code

Sub test2()

Dim fichier As String, x As Workbook, filename As String
For i = 5 To 32

filename = Range("a" & i).Value

Set x = GetObject(filename)

'lors de la boucle lorsque i prend la valeur 6 erreur d'automation dans le set x =getobject(filename)

fichier = Mid(filename, InStrRev(filename, "") + 1, 100)


Range("g" & i).Value = x.BuiltinDocumentProperties("last save time").Valu e

x.Close savechages = False

Set x = Nothing

Next i

End Sub


Je pense que cela bloque sur le set x
Avatar
DanielCo
Ca m'arrive aussi sur un classeur protégé par mot de passe si je
n'entre pas le mot de passe.
Daniel


J ai essayé de construire une boucle mais cela plante avec un MSG d'erreur
d'automation.

Voici le code

Sub test2()

Dim fichier As String, x As Workbook, filename As String
For i = 5 To 32

filename = Range("a" & i).Value

Set x = GetObject(filename)

'lors de la boucle lorsque i prend la valeur 6 erreur d'automation dans le
set x =getobject(filename)

fichier = Mid(filename, InStrRev(filename, "") + 1, 100)


Range("g" & i).Value = x.BuiltinDocumentProperties("last save time").Value

x.Close savechages = False

Set x = Nothing

Next i

End Sub


Je pense que cela bloque sur le set x
Avatar
MichD
Bonjour Daniel,

| La fonction "GetObject" ouvre le fichier

Relie mon message, et c'est clairement indiqué.

Concernant ta remarque sur "Application.EnableEvents"
elle est justifiée si le fichier contient des procédures

Mais le demandeur semblait intéressé hier soir par
l'autre approche!

MichD
---------------------------------------------------------------
"DanielCo" a écrit dans le message de groupe de discussion :
50cae8a6$0$6139$

Bonjour Denis,
La fonction "GetObject" ouvre le fichier, il me semble; masqué, mais
ouvert.
Cordialement.
Daniel
Avatar
magic-dd
Daniel et MichD

en effet les classeurs pour lesquels je souhaite recuperer des infos sont p rotegés mais cela ne me semble pas important dans la mesure ou je n'ecris pas dedans.

peut etre que le Application.EnableEvents fonctionne

seulement dans mes fichiers il n'y a aucune macro donc aucun workbook-open


dois je donc ecrire ma procedure comme suit ?

Sub test2()

Dim fichier As String, x As Workbook, filename As String
For i = 5 To 32

Application.EnableEvents = False

filename = Range("a" & i).Value

Set x = GetObject(filename)

'lors de la boucle lorsque i prend la valeur 6 erreur d'automation dans le set x =getobject(filename)

fichier = Mid(filename, InStrRev(filename, "") + 1, 100)


Range("g" & i).Value = x.BuiltinDocumentProperties("last save time").Valu e

x.Close savechages = False

Set x = Nothing

Application.EnableEvents = True

Next i

End Sub


Le vendredi 14 décembre 2012 17:04:21 UTC+1, MichD a écrit :
Bonjour Daniel,



| La fonction "GetObject" ouvre le fichier



Relie mon message, et c'est clairement indiqué.



Concernant ta remarque sur "Application.EnableEvents"

elle est justifiée si le fichier contient des procédures



Mais le demandeur semblait intéressé hier soir par

l'autre approche!



MichD

---------------------------------------------------------------

"DanielCo" a écrit dans le message de groupe de discussion :

50cae8a6$0$6139$



Bonjour Denis,

La fonction "GetObject" ouvre le fichier, il me semble; masqué, mais

ouvert.

Cordialement.

Daniel
Avatar
MichD
Bonjour,

Si l'ouverture de certains fichiers est protégée par un mot de passe,
ces fichiers ne pourront pas être traités.

La méthode "GetObjet" utilisée ouvre le fichier, mais ce dernier est
masqué donc invisible pour l'usager durant l'exécution. L'ouverture
ne peut pas procéder si l'ouverture du classeur est protégée.

MichD
---------------------------------------------------------------
Avatar
magic-dd
Si l'ouverture de certains fichiers est protégée par un mot de passe,

ces fichiers ne pourront pas être traités.




étrange quand meme car le premier de ma boucle fonctionne bien

au pire il faudrait mettre dans ma procedure un bout de code pour desactive r le mot de passe et le reactiver avant le set x= nothing
Avatar
MichD
Je suis sous Excel 2010, et si le classeur a été enregistré
avec mot de passe OBLIGATOIRE pour ouvrir le fichier,
et bien il me le demande lors de l'exécution de la procédure.

De quel type de protection tes classeurs sont-ils affublés?

MichD
---------------------------------------------------------------
Avatar
magic-dd
je suis sous 2003

en fait j'ai une partie de ma feuille qui est protegee

avec le traditionnel outils/protection/proteger la feuille



Le vendredi 14 décembre 2012 19:05:44 UTC+1, MichD a écrit :
Je suis sous Excel 2010, et si le classeur a �t� enregist r�

avec mot de passe OBLIGATOIRE pour ouvrir le fichier,

et bien il me le demande lors de l'ex�cution de la proc�d ure.



De quel type de protection tes classeurs sont-ils affubl�s?



MichD

---------------------------------------------------------------
Avatar
MichD
Si ton classeur est protégé par des commandes situées à l'intérieur
du classeur ou si les feuilles sont protégées, cette procédure devrait
s'exécuter normalement.

'------------------------------------------
Sub test()
Dim Fichier As String, X As Workbook, FileName As String
Application.EnableEvents = False
For i = 5 To 32
FileName = Range("a" & i).Value
If Dir(FileName) = "" Then
Set X = GetObject(FileName)
Fichier = Mid(FileName, InStrRev(FileName, "") + 1, 100)
Range("g" & i).Value = X.BuiltinDocumentProperties("last save
time").Value
X.Close savechages = False
Set X = Nothing
Else
MsgBox "Ce fichier """ & FileName & """ & est introuvable."
End If
Next i
Application.EnableEvents = True
End Sub
'------------------------------------------

MichD
---------------------------------------------------------------
Avatar
magic-dd
Je vais essayer des ludi matin en esperant que cela fonctionne car c'est su r un serveur collaboratif.

je te tiens au courant de tout ca, vais quand meme pas aller au bureau dema in ;)

merci encore

et bon week end


Le vendredi 14 décembre 2012 19:40:42 UTC+1, MichD a écrit :
Si ton classeur est protégé par des commandes situées à l'intér ieur

du classeur ou si les feuilles sont protégées, cette procédure devr ait

s'exécuter normalement.



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

Sub test()

Dim Fichier As String, X As Workbook, FileName As String

Application.EnableEvents = False

For i = 5 To 32

FileName = Range("a" & i).Value

If Dir(FileName) = "" Then

Set X = GetObject(FileName)

Fichier = Mid(FileName, InStrRev(FileName, "") + 1, 100)

Range("g" & i).Value = X.BuiltinDocumentProperties("last save

time").Value

X.Close savechages = False

Set X = Nothing

Else

MsgBox "Ce fichier """ & FileName & """ & est introuvable."

End If

Next i

Application.EnableEvents = True

End Sub

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



MichD

---------------------------------------------------------------
1 2 3 4