[Déplacé VB.NET -> VBA]Probleme : Propriete Fichier

Signaler
-
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
-
Bonjour Tout le monde,

Dans le cadre de mon taf, j'ai construit un outils Excel qui me permet de checker presque en Temps reel mon activité, verifier s'il n'y a pas d'erreurs...Cet outils va recuperer des fichiers un peu partout, les compiler pour en extraire les potentielles anomalies.

J'aimerais rajouter une fonctionnalité "Dernier Rafraichissement" basée sur la derniere Date de modification du principal fichier qui alimente mon outils. Le code ci dessous fonctionne tres bien(je l'ai deja testé plusieurs fois ), seulement voila, dans ce cas, la variable Valeur.value est toujours vide... Comme s'il n'arrivait pas a lire les propriétés du fichier. Impossible de comprendre pourquoi. Est-il possible que ce soit lié au fait que le dossier parcouru soit protégé ? et le fichier en lecture seule ?
***************************************************
'check les proprietes de la derniere sauvegarde
For Each Valeur In ActiveWorkbook.BuiltinDocumentProperties
Propriete_Fichier = Valeur.Name
LstSavedate = Valeur.Value

If Propriete_Fichier = "Last save time" Then
Cells(2, 2).Value = Valeur.Value
GoTo Following
End If
i = i + 1
Next

Following:
***************************************************

Merci de votre aide !

6 réponses

soit plus explicite dans tes codes
Merci pour ta reponse .

Que devrais-je plus expliciter ?

Bonjour,

Je n'ai pas cherché, mais mon petit doigt me dit que tu devrais essayer :


If Propriete_Fichier = "Last saved time" Then 


au lieu de

If Propriete_Fichier = "Last save time" Then 
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
239
Bonjour,
1) regarde ce que fait ceci :
r = 1
Worksheets(1).Activate
For Each p In ActiveWorkbook.BuiltinDocumentProperties
    On Error Resume Next
    Cells(r, 1).Value = p.Name & "  " & p
    r = r + 1
    On Error GoTo 0
Next

La gestion d'erreur est nécessaire dans uin tel cas (si absence de valeur !)
Et adapte ton code.
2) quel vilain GoTo Following ! A remplacer par un simple exit For !
3) drôle de compteur i que tu n'utilises nulle part !

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Merci pour ta reponse ! Effectivement je ne peux te contredire sur mon vilain code ;-) mais j'ai effectué un apprentissage empirique de VB! ( le i ne sert à rien , j'ai oublié de l'enlever )

C'est la propriete "derniere modification" qui m'interesse ( Last Save Date ) . Quand je fais un click droit "Propriete" sur le fichier en question, je peux voir dans l'onglet "General" la derniere date de Modif. Par contre, quand j'utilise ton code ou le mien , ils ne retournent aucune valeur !
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
239
Chez moi, retourne (parmi le "tas") :
Last save time 31/07/2012 11:14:51


A noter, par ailleurs, que si c'est là la seule qui t'intéresse, cette ligne de code (sans boucle aucune) te la retournerait également ! :

MsgBox ActiveWorkbook.BuiltinDocumentProperties("Last save time")

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ