IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Afficher une liste de fichiers dans Excel


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2007
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Afficher une liste de fichiers dans Excel
    Bonjour,

    J'espère que je suis dans le bon forum.

    j'ai trouvé le script visual basic ci-dessous. Il permet d'afficher dans excel la liste des fichiers contenus dans un dossier, avec pour chaque fichier, certains attributs, comme la date de création par exemple.

    Ce script est exactement ce qu'il me fallait. Le seul hic, c'est que j'ai absolument besoin d'afficher l'auteur du fichier.

    J'ai essayé d'ajouter

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Formula = FileItem.Author
    Mais ça ne fonctionne pas.

    Voici le script en entier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    '========================================
    Option Explicit
     
    Sub TestListFilesInFolder()
    Dim RootFolder$
     
    ' dossier à scanner
    RootFolder = ChoisirDossier
    If RootFolder = "" Then Exit Sub
     
    ' create a new workbook for the file list
    Workbooks.Add
     
    ' add headers
    With Range("A1")
    .Formula = " Contenu du dossier : " & RootFolder
    .Font.Bold = True
    .Font.Size = 12
    End With
     
    Range("A3").Formula = "Chemin : "
    Range("B3").Formula = "Nom : "
    Range("C3").Formula = "Date Création : "
    Range("D3").Formula = "Date Dernier Accès : "
    Range("E3").Formula = "Date Dernière Modif : "
     
    With Range("A3:E3")
    .Font.Bold = True
    .HorizontalAlignment = xlCenter
    .VerticalAlignment = xlCenter
    .WrapText = True
    End With
     
    ' list all files included subfolders
    ListFilesInFolder RootFolder, True
     
    Columns("A:H").AutoFit
     
    End Sub
     
    Sub ListFilesInFolder(SourceFolderName As String, IncludeSubfolders As Boolean)
    ' lists information about the files in SourceFolder
    ' example: ListFilesInFolder "C:\FolderName\", True
    ' Ole P Erlandsen (modifié fs 11/8/01)
     
    Dim FSO 'As Scripting.FileSystemObject
    Dim SourceFolder 'As Scripting.Folder
    Dim SubFolder 'As Scripting.Folder
    Dim FileItem 'As Scripting.File
    Dim r As Long
     
    Set FSO = CreateObject("Scripting.FileSystemObject")
    Set SourceFolder = FSO.GetFolder(SourceFolderName)
    r = Range("A65536").End(xlUp).Row + 1
     
    For Each FileItem In SourceFolder.Files
    ' display file properties
    Cells(r, 1).Formula = FileItem.ParentFolder
    Cells(r, 2).Formula = FileItem.Name
    Cells(r, 3).Formula = FileItem.DateCreated
    Cells(r, 3).NumberFormatLocal = "jj/mm/aa"
    Cells(r, 4).Formula = FileItem.DateLastAccessed
    Cells(r, 5).Formula = FileItem.DateLastModified
    Cells(r, 5).NumberFormatLocal = "jj/mm/aa"
    ' next row number
    r = r + 1
    Next FileItem
     
    If IncludeSubfolders Then
    For Each SubFolder In SourceFolder.SubFolders
    ListFilesInFolder SubFolder.Path, True
    Next SubFolder
    End If
     
    Set FileItem = Nothing
    Set SourceFolder = Nothing
    Set FSO = Nothing
     
    ActiveWorkbook.Saved = True
     
    End Sub
     
    Private Function ChoisirDossier()
    Dim objShell, objFolder, chemin, SecuriteSlash
     
    Set objShell = CreateObject("Shell.Application")
    Set objFolder = _
    objShell.BrowseForFolder(&H0&, "Choisisser un répertoire", &H1&)
    On Error Resume Next
    chemin = objFolder.ParentFolder.ParseName(objFolder.Title). Path & ""
    If objFolder.Title = "Bureau" Then
    chemin = "C:\Windows\Bureau"
    End If
    If objFolder.Title = "" Then
    chemin = ""
    End If
     
    SecuriteSlash = InStr(objFolder.Title, ":")
     
    If SecuriteSlash > 0 Then
    chemin = Mid(objFolder.Title, SecuriteSlash - 1, 2) & ""
    End If
    ChoisirDossier = chemin
    End Function
     
    '============================================

    merci d'avance si quelqu'un peut m'expliquer comment faire.

  2. #2
    Membre confirmé

    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 453
    Points : 520
    Points
    520
    Par défaut
    Tu n'as pas accès à cette propriété (même si elle est définie pour le fichier en question, ce qui n'est pas toujours le cas) à partir des fonctionalités de la référence Scripting.

    Il te faut charger le fichier pour accéder à la propriété BuiltInDocumentProperties("Author") de l'objet Workbook en mémoire.

    Voir le topic DocumentProperty dans l'aide en ligne d'Excel.

    Du moins, je ne connais pas d'autres méthodes...

  3. #3
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 144
    Points
    20 144
    Par défaut
    bonsoir

    Dans l'hypothèse que le répertoire contient uniquement des docuements Office, il est possible d'utiliser la bibliothèque DSO qui ne nécessite pas d'ouvrir les fichiers:

    http://silkyroad.developpez.com/VBA/...lasseurs/#LIII




    Il est aussi possible d'accéder à l'ensemble des propriétés avancées (onglet Résumé) en utilisant la bibliothèque "Microsoft Shell Controls and Automation".

    http://silkyroad.developpez.com/VBA/...asseurs/#LIV-C



    bonne soirée
    michel

Discussions similaires

  1. [Débutant] Afficher une liste de fichiers dans un ListBox
    Par Zwblirgx dans le forum Interfaces Graphiques
    Réponses: 4
    Dernier message: 03/10/2007, 09h47
  2. [Débutant] Afficher une liste de fichier dans un popupmenu
    Par Maickeul dans le forum Interfaces Graphiques
    Réponses: 10
    Dernier message: 17/07/2007, 09h46
  3. Réponses: 4
    Dernier message: 19/10/2006, 17h19
  4. Recheche commande AWK pour afficher une liste de fichiers
    Par Krispy dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 21/07/2006, 11h36
  5. Réponses: 1
    Dernier message: 24/05/2006, 11h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo