Obtenir une date de modification de plusieurs fichiers

Résolu/Fermé
Elodie - Modifié par Elodie le 23/02/2015 à 14:16
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 6 mars 2015 à 13:41
Bonjour à tous,

Voilà, étant nule sur Excel et en programmation, je vous pose cette question:

Je cherche à mettre dans un fichier excel les différentes dates de modification de plusieurs fichier d'un répertoire.

Exemple: A.doc modifié le 01/02/2015 à 12h15
B.doc modifié le 03/02/2015 à 08h12
C.doc modifié le 05/02/2015 à 09h45

J'aimerai que tous ces fichiers soit mis dans ce fichier Excel afin de voir la différence de traitement entre les fichiers. (Dans l'exemple il y en a 3 donc facile mais beaucoup moins quand je dois en faire 800).

Pouvez-vous m'aider?

Merci d'avance

NB: les fichiers sont dans le même dossier
A voir également:

3 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
23 févr. 2015 à 14:13
Et où sont tous ces fichiers ? dans le m^me dossier ?
0
Oui, ils sont tous dans le même dossier
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303 > Elodie
23 févr. 2015 à 15:51
OK , ce sera une macro pas trop compliquée et rapide...
dès que j'ai un moment, je te fais çà
0
Merci beaucoup!!
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié par michel_m le 23/02/2015 à 18:18
Et voilà
La macro te propose une boite de dialogue te permettant de choisir ton dosiet
les fichiers listés sont des classeurs Excel
https://www.cjoint.com/?3BxsxxiQ7xe

ze code:
Option Explicit
Dim Chemin As String
'-------
Function recherchedossier()
'Auteurs: @+thierry_xld et michel_m
Dim ObjShell As Object, ObjFolder As Object
Dim Message As String

Message = "Faire la Sélection du Repertoire de sauvegarde:"
Set ObjShell = CreateObject("Shell.Application")
Set ObjFolder = ObjShell.BrowseForFolder(&H0&, Message, 1)

On Error Resume Next 'Si on sort sans sélection
Chemin = ObjFolder.ParentFolder.ParseName(ObjFolder.Title).Path & ""
If Chemin = "" Then End
recherchedossier = Chemin
End Function
'---------------------------------------------------
Sub dire_fichiers_date()
Dim Dico As Object
Dim Fich As String
'-----initialisations
Application.ScreenUpdating = False 'fige l'écran
Set Dico = CreateObject("scripting.dictionary")
'boite dialogue sélection dossier
recherchedossier
'rendre le dosiier actif
ChDir Chemin

'-----parcours
Fich = Dir("*.xls*")
While Fich <> ""
'mémorise le nom du fichier et la date de modif
If Not Dico.exists(Fich) Then Dico.Add Fich, FileDateTime(Fich)
Fich = Dir
Wend
'-------restitution
With ThisWorkbook.Sheets(1)
.Range("A2:B2000").Clear
.Range("A2").Resize(Dico.Count, 1) = Application.Transpose(Dico.Keys)
.Range("B2").Resize(Dico.Count, 1) = Application.Transpose(Dico.items)
.Range("A2:B" & Dico.Count + 1).Borders.Weight = xlThin
End With
End Sub

Enespérant que...
Tu dis
Michel
0
C'est quasiement parfait!!!!
Quasiement car c'est des fichiers .doc(Word) que je voulais et pas des .xls (Excel). Et quand je lui donne le chemin d'accès, il me sort "Mes Documents".

En tout cas un très très grand merci déjà!!!

NB: En cherchant n peu à comprendre, j'ai pu modifier les fichiers Excel en fichiers word!!! (Je sais c'est pas un exploit mais je suis quand même contente!)

Dir("*.xls*") => Dir("*.doc*")
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303 > Elodie
24 févr. 2015 à 10:46
Si tu ne travailles toujours que sur le m^me dossier
tu pourrais supprimer la fonction recherchedossier et écrire le chemin: gain de temps et pas de manipulation de la boite de dialogue
Sub dire_fichiers_date()
Dim Dico As Object
Dim Fich As String
'-----initialisations
Application.ScreenUpdating = False 'fige l'écran
Set Dico = CreateObject("scripting.dictionary")
'boite dialogue sélection dossier
recherchedossier
'rendre le dosiier actif
ChDir "C:\..... emplacement de ton dossier"
0
C'est bien ça!!!!

Par contre quand je le modifie avec mon lien ca me l'affiche en rouge, apparement c'est du au espace dans le nom du dossier. Comment le peux arriver à faire svp???? Exemple: ChDir "X:\Access\ Dossiers Archives\Archives"
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303 > Elodie
Modifié par michel_m le 24/02/2015 à 12:02
"X:\Access\ Dossiers Archives\Archives"
espace entre \ et D !!!

et peut-être changer avec Windows
Dossiers Archives en Dossiers_Archives
0
Excuse moi, c'est une erreur de frappe de ma part =).

Le problème c'est que je n'ai pas le droit de modifier le dossier en question. Il me dit que j'ai pas les droits pour pouvoir le faire.

Sinon il y a pas un moyen comme avec les adresses internet de remplacer les espace par un code spécial?


Merciiiiiii =)
0
Roger_Lapin Messages postés 1 Date d'inscription vendredi 6 mars 2015 Statut Membre Dernière intervention 6 mars 2015
6 mars 2015 à 12:55
En fait j'ai exactement la même question qu'élodie mais je ne comprend pas comment faire ^^
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié par michel_m le 6/03/2015 à 13:44
Suite à ta demande en message personnel

ci dessous le code avec le chemin du dossier connu
les fichiers ayant un suffixe txt (je n'ai pas en t^te les autres suffixes possibles)
à adaper à ton contexte
Option Explicit
'---------------------------------------------------
Sub dire_fichiers_date()
Dim Chemin As String
Dim Dico As Object
Dim Fich As String
'-----initialisations
Application.ScreenUpdating = False 'fige l'écran
Set Dico = CreateObject("scripting.dictionary")
'boite dialogue sélection dossier
recherchedossier
'rendre le dosiier actif
Chemin = "X:\Access\ Dossiers Archives\Archives" 'A ADAPTER A TON CONTEXTE
ChDir Chemin

'-----parcours
Fich = Dir("*.txt*") 'FICHIER SUFFIXE TXT
While Fich <> ""
'mémorise le nom du fichier et la date de modif
If Not Dico.exists(Fich) Then Dico.Add Fich, FileDateTime(Fich)
Fich = Dir
Wend
'-------restitution
With ThisWorkbook.Sheets(1)
.Range("A2:B2000").Clear
.Range("A2").Resize(Dico.Count, 1) = Application.Transpose(Dico.Keys)
.Range("B2").Resize(Dico.Count, 1) = Application.Transpose(Dico.items)
.Range("A2:B" & Dico.Count + 1).Borders.Weight = xlThin
End With
End Sub
0