Récupérer des informations de fichier (nom, répertoire, date) + boite explorateur

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

krystof_ii

XLDnaute Occasionnel
Bjr à tous,

Je souhaiterais récupérer des informations sur un fichier (à sélectionner avec une boite de dialogue explorateur de fichier).

Après sélection du fichier, il faudrait que je récupère les infos :
- répertoire du fichier,
- nom complet du fichier (avec son extension),
- date de son dernier enregistrement

Le tout consolidé dans des cellules différentes.
 

Pièces jointes

Re : Récupérer des informations de fichier (nom, répertoire, date) + boite explorateu

Bonjour
ci-joint code créée par F SIGONNEAU -va voir son site , une mine d'or
Sub TousFichiersDunDossier()
' de F Sigonneau
Dim Fso As Object, Dossier As Object, NomDossier
Dim Files As Object, File As Object, i As Integer
Dim Sh As Worksheet
Dim EnTetes, ArrFSO
Feuil2.Activate' à adapter
Application.ScreenUpdating = False
Set Fso = CreateObject("Scripting.FileSystemObject")
'adapter le dossier racine si besoin
NomDossier = ChoixDossierFichier("")
If NomDossier = "" Then Exit Sub
Set Dossier = Fso.GetFolder(NomDossier)
Set Files = Dossier.Files
If Files.Count <> 0 Then
Set Sh = ActiveSheet 'Sheets.Add
Sh.UsedRange.Clear

EnTetes = Array("Chemin", "Nom", _
"Date création", "Date dernière modification", _
"Date dernier accès", "Taille", "Type", "Attribut(s)")
'mise en forme
With ActiveSheet.Range("A1:H1")
.Value = EnTetes
.Font.Bold = True
.Interior.ColorIndex = 43
.Borders.LineStyle = xlContinuous
.HorizontalAlignment = xlCenter
End With
i = 1
For Each File In Files
i = i + 1
With File
ArrFSO = Array(.ParentFolder & "\", .Name, .DateCreated, _
.DateLastModified, .DateLastAccessed, .Size, .Type)
End With
Sh.Cells(i, 1). _
Resize(1, UBound(ArrFSO) - LBound(ArrFSO) + 1).Value = ArrFSO
Sh.Cells(i, UBound(ArrFSO) + 2).Value = Attributs(File.Attributes)
Next
End If
Sh.UsedRange.EntireColumn.AutoFit
Set Fso = Nothing: Set Sh = Nothing
Set Dossier = Nothing: Set File = Nothing
End Sub
Cordialement
Flyonets
 
Re : Récupérer des informations de fichier (nom, répertoire, date) + boite explorateu

Bonjour,

Teste ceci. Attribue la macro "Recup" au bouton :
Code:
Sub Recup()

Dim Fso As Object
Dim F As Object
Dim Fichier As Variant

Fichier = RetourFichier(Range("B7").Value)

If Fichier <> False Then

    Range("B8") = Dir(Fichier)
    
    Set Fso = CreateObject("Scripting.FileSystemObject")
    
    If Fso.FileExists(Fichier) = True Then
        
        Set F = Fso.GetFile(Fichier)
        
        Range("B7") = Left(F.Path, InStrRev(F.Path, "\"))
        Range("B8") = Dir(F.Path)
        Range("B9") = F.DateLastModified
        
    End If
End If

End Sub

Function RetourFichier(Chemin As String) As Variant
    
    '1 ouvrir un fichier
    '2 enregistrement de fichier
    '3 sélection de fichier
    '4 sélection de dossier
    
    With Application.FileDialog(3)
    
        .AllowMultiSelect = False
        .Filters.Add "Classeurs Excel", "*.xls", 1
        .InitialFileName = Chemin
        .Show
        
        On Error Resume Next 'si annuler
        RetourFichier = .SelectedItems(1)
        
        If Err.Number <> 0 Then RetourFichier = False
    
    End With
        
End Function

Hervé.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour