Renvoi des propriétés de fichier

Akka_31 -  
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,



Je souhaite faire afficher les propriétés des fichiers .xls spécifiques dans une boite de dialogue avec la possibilité de continuer ou non le déroulement du reste de la macro.

C'est fichier sont contenus dans un répertoire spécifique et porte des noms spécifiques.
Il me faudrait faire remonter les dates de modification des fichiers respectifs.

Est ce que quelqun peut me donner un exemple.

Merci
A voir également:

3 réponses

Patrice33740 Messages postés 8930 Statut Membre 1 782
 
Pour obtenir la date de la dernière modification d'un fichier actif, utiliser :
ActiveWorkbook.BuiltinDocumentProperties("Last save time").Value

Patrice
0
Akka_31
 
Comment procède t-on quand le fichier n'est pas actif ?
0
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
bonjour,

Voici une proposition sans ouvrir les classeurs

Option Explicit 

Sub Lister_Fichiers_DateDreation() 
     'source à partir de l'auteur Silkyroad sur 
     'http://excel.developpez.com/faq/?page=FichiersDir#TriFichiersRep 
    Dim Fichier As String, Chemin As String 
    Dim Fso As Object 
    Dim FileItem As Object 
    Dim Tableau() 
    Dim cptr As Integer 
             
    Chemin = recherchedossier 
    Fichier = Dir(Chemin & "\*.xls") 
    'Boucle sur les fichiers 
    Do 
        cptr = cptr + 1 
        ReDim Preserve Tableau(1 To 2, 1 To cptr) 
        Tableau(1, cptr) = Fichier 
                        
        Set Fso = CreateObject("Scripting.FileSystemObject") 
        Set FileItem = Fso.GetFile(Chemin & "\" & Fichier) 
         
        'récupére la date de dernière modification 
        Tableau(2, cptr) = Left(FileItem.DateLastModified, 10) 
         
        Fichier = Dir 
    Loop Until Fichier = "" 
          
    '--- Transfère les données dans la feuille de calcul --- 
   With Sheets("Feuil2") 
          .Range("A1").Resize(cptr, 2) = Application.Transpose(Tableau) 
    End With 
End Sub 

'------------------------------------------------------- 
Function recherchedossier() 
'Auteurs: @+thierry_xld et michel_m 
Dim ObjShell As Object, ObjFolder As Object 
Dim Message As String 
Dim Chemin As String 
     
Message = "Faire la Sélection du Repertoire de travail:" 

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

Michel
0
Akka_31
 
Bonjour,

En creusant un peu voila ce que j'ai fait, mais il y a un problème
Rappel :
3 fichiers sont concernés, la boite de dialogue doit récapituler les propriétés des 3 fichiers en une seule.

'Sub Date_Fichier()
' proprietesFichier_getFileF "\\Mon-file\departement_documentation_technique\Prj_MAINTENANCE\Prj_AMM\2- Gestion_AMM_TSM_SERIE\OGI\Exp_par_Programme\Fexport.xls"
' proprietesFichier_getFileL "\\Mon-file\departement_documentation_technique\Prj_MAINTENANCE\Prj_AMM\2- Gestion_AMM_TSM_SERIE\OGI\Exp_par_Programme\Lexport.xls"
' proprietesFichier_getFileN "\\Mon-file\departement_documentation_technique\Prj_MAINTENANCE\Prj_AMM\2- Gestion_AMM_TSM_SERIE\OGI\Exp_par_Programme\Nexport.xls"
'
'End Sub
'
'
'Sub proprietesFichier_getFile(Fichier As String)
' '
' 'Nécessite d'activer la référence Microsoft Scripting Runtime
' '
' Dim CibleF As Scripting.FileSystemObject
' Dim CibleL As Scripting.FileSystemObject
' Dim CibleN As Scripting.FileSystemObject
'
' Dim ValeurF As Scripting.File
' Dim ValeurL As Scripting.File
' Dim ValeurN As Scripting.File
'
' Dim ResultatF As String
' Dim ResultatL As String
' Dim ResultatN As String
'
' Set CibleF = CreateObject("Scripting.fileSystemObject")
' Set CibleL = CreateObject("Scripting.fileSystemObject")
' Set CibleN = CreateObject("Scripting.fileSystemObject")
'
'
' Set ValeurF = CibleF.GetFile(Fichier)
' Set ValeurL = CibleL.GetFile(Fichier)
' Set ValeurN = CibleN.GetFile(Fichier)
'
' ResultatF = "Nom fichier : " & CibleF.GetFileName(ValeurF) & Chr(10) & Chr(10) & _
' "Derniere modification : " & ValeurF.dateLastModified & Chr(10) & Chr(10)
' ResultatL = "Nom fichier : " & CibleL.GetFileName(ValeurL) & Chr(10) & Chr(10) & _
' "Derniere modification : " & ValeurL.dateLastModified & Chr(10) & Chr(10)
' ResultatN = "Nom fichier : " & CibleN.GetFileName(ValeurN) & Chr(10) & Chr(10) & _
' "Derniere modification : " & ValeurN.dateLastModified & Chr(10) & Chr(10)
'
' MsgBox (ResultatF & ResultatL & ResultatN; vbOk; Date Fichiers Sources)
' 'MsgBox (ResultatF + ResultatL + ResultatN)
'
'End Sub

Pourriez vous me dire ce qui cloche .....

Merci par avance

Un développeur débutant
0
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
Peut-^tre regarder ce que j'ai fait....
0
Patrice33740 Messages postés 8930 Statut Membre 1 782
 
il ne faut qu'un seul FSO et il faudrait 3 Fichiers différents, un pour chaque valeur !
0
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
bonjour Patrice,
de plus,la macro d'Akka est une recopie et le param^tre "last modified" est en commentaire...

cordialement
0