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

  1. #1
    Inactif  
    Lister les fichiers d'un répertoire avec FSO avec ou sans liens hypertextes
    Ne nécessite pas d'activer la référence "Microsoft Scripting RunTime"
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub ListeFichiers_avec_fso()
    Dim fso As Object, NomFich As Object, i As Long, Chemin$
    Chemin = InputBox("Saisir le chemin du répertoire ", "", "D:\Doc")
     
        Set fso = CreateObject("Scripting.FileSystemObject")
        With fso.GetFolder(Chemin) 'Liste les fichiers du répertoire
            For Each NomFich In .Files
                Selection.TypeText Text:=NomFich.Name 'Place leurs noms ds le document
                Selection.TypeParagraph
            Next
        End With
    End Sub
    La même procédure avec Dir se trouve dans l'aide en ligne

    Le même avec lien hypertexte sur le nom de fichier
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub ListeFichiers_avec_fso()
    Dim fso As Object, NomFich As Object, i As Long, Chemin$
    Chemin = InputBox("Saisir le chemin du répertoire ", "", "D:\Doc")
     
        Set fso = CreateObject("Scripting.FileSystemObject")
        With fso.GetFolder(Chemin) 'Liste les fichiers du répertoire
            For Each NomFich In .Files
                ActiveDocument.Hyperlinks.Add Anchor:=Selection.Range, Address:= _
                Chemin & "\" & NomFich.Name, TextToDisplay:=NomFich.Name
                Selection.TypeParagraph
            Next
        End With
    End Sub
    pour ouvrir le lien, appuyer sur Ctrl + sélection du nom de fichier

  2. #2
    Inactif  
    Le même avec lien hypertexte à partir d'un combobox placé dans le document.

    Ajouter un combobox issu de la barre d'outils "Boîte à outils contrôles" dans le document.

    Dans un module standard, placer ce code :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub ListeFichiers_avec_hyperlink()
    Dim fso As Object, NomFich As Object, Chemin$
        Chemin = InputBox("Saisir le chemin du répertoire ", "", "D:\Doc")
        Set fso = CreateObject("Scripting.FileSystemObject")
        ActiveDocument.ComboBox1.Clear
        With fso.GetFolder(Chemin) 'Liste les fichiers du répertoire
            For Each NomFich In .Files
                ActiveDocument.ComboBox1.AddItem Chemin & "\" & NomFich.Name
            Next
        End With
    End Sub
    Dans ThisDocument ( -> Editeur VBA -> 2 clics sur ThisDocument ouvre la feuille de code ) placer ce code
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub ComboBox1_Click()
        ActiveDocument.Hyperlinks.Add Address:=ComboBox1, _
            Anchor:=Selection.Range
        ActiveDocument.Hyperlinks(1).Follow
    End Sub


    Pour que le combobox soit renseigné à l'ouverture du fichier, ajouter ce code dans ThisDocument
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Document_Open()
    ListeFichiers_avec_hyperlink
    End Sub

  3. #3
    Membre éclairé
    Est-ce que cette macro existe mais pour obtenir les sous répertoire aussi?
    __________________________________
    Une question bien posée est à moitié résolue!

    Merci de ne pas oublier de mettre RÉSOLU quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche

  4. #4
    Rédacteur/Modérateur

    Salut Souriane,

    Oui, on la trouve dans les sources Access.

    http://access.developpez.com/sources...ercheRecursive

    Elle fonctionne aussi sous Word.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

###raw>template_hook.ano_emploi###