Lister des fichiers d'un dossier dans Excel

Pour plusieurs raisons, le fait de lister les noms de fichiers présents dans un répertoire peut être utile.

Par exemple, en ce moment, je dois faire une recherche des fichiers scannés sur un réseau et faire ressortir les doublons.

A partir de là, vu les 8 000 fichiers présents sur le réseau, je ne vais pas le faire à la main.

Voici donc une macro bien sympa qui permet maintenant à l'entreprise de vérifier plus rapidement et plus facilement les doublons de contrats sur son réseau:

Sub test_import_noms_dossiers()
With Application.FileSearch

' adresse du répertoire
.LookIn = "C:[b]mon répertoire/[/b]" A MODIFIER SELON CONVENANCE

' type ou nom du fichier
.Filename = "*.pdf"  A MODIFIER SELON CONVENANCE

' recherche dans les sous-dossiers
.SearchSubFolders = True A MODIFIER SELON CONVENANCE

' executer la recherche
.Execute

' insertion dans le classeur excel
For i = 1 To .FoundFiles.Count
Cells(i + 2, 1) = .FoundFiles(i) A MODIFIER SELON CONVENANCE
Next
End With
End Sub

Attention, si beaucoup de fichiers sont sur le réseau, cela risque de prendre un peu de temps... ici, environ 7 minutes pour 8 000 fichiers...

Et je ne touche pas à Excel sinon ça bug... (mais ça c'est sans doute parce que j'ai une machine d'avant guerre)

Salut le forum

Attention sous Excel 2007 Application.FileSearch ne fonctionne pas.

Mytå

IL existe un équivalent sous 2007?

Merci!

Salut le forum

Un équivalent oui, c'est une macro complémentaire (Addins)

Mytå

merci !! c'est super utile ca !!

et juste c'est possible de rajouter un lien pour les ouvrir les fichiers quand on clique sur la liste qui est crée ?

merci d'avance !

52attestation-1.docx (238.59 Ko)
77importsouhaite.xlsm (52.89 Ko)

Salut le forum

Pour créer un lien voici un bout de code a adapter au besoin

For i = 1 To .FoundFiles.Count
Cells(i + 2, 1) = .FoundFiles(i) A MODIFIER SELON CONVENANCE
        With ActiveSheet
            .Hyperlinks.Add Anchor:=.Cells(i + 2, 1), _
            Address:=Chemin & "\" & .Cells(i + 2, 1), _
            TextToDisplay:=.Cells(i + 2, 1).Value
            .Hyperlinks(i).ScreenTip = " VERS:" & .Cells(i + 2, 1).Value
        End With
Next i

Mytå

merci mais elle ne marche pas les lignes entre les with sont rouges... je n'arrive pas à la rendre correct...

il dit qu'il ya des erreurs de synthaxe mais je ne les vois pas...

merci d'avance !!

Sub test_import_noms_dossiers()
With Application.FileSearch

' adresse du répertoire
.LookIn = "G:\DT"

' type ou nom du fichier
.Filename = "*.xls"

' recherche dans les sous-dossiers
.SearchSubFolders = True

' executer la recherche
.Execute

' insertion dans le classeur excel
For i = 1 To .FoundFiles.Count
Cells(i + 2, 1) = .FoundFiles(i)
        With ActiveSheet
            .Hyperlinks.Add Anchor:=.Cells(i + 2, 1), _
            Address:=Chemin & "\" & .Cells(i + 2, 1), _
            TextToDisplay:=.Cells(i + 2, 1).Value
            .Hyperlinks(i).ScreenTip = " VERS:" & .Cells(i + 2, 1).Value
        End With
Next i
End With
End Sub

Re le forum

Essaye comme ceci

Sub test_import_noms_dossiers()
With Application.FileSearch
' adresse du répertoire
.LookIn = "G:\DT"
' type ou nom du fichier
.Filename = "*.xls"
' recherche dans les sous-dossiers
.SearchSubFolders = True
' executer la recherche
.Execute
' insertion dans le classeur excel
For i = 1 To .FoundFiles.Count
Cells(i + 2, 1) = .FoundFiles(i)
        With ActiveSheet
            .Hyperlinks.Add Anchor:=.Cells(i + 2, 1), _
            Address:=.Cells(i + 2, 1), _
            TextToDisplay:=.Cells(i + 2, 1).Value
            .Hyperlinks(i).ScreenTip = " VERS:" & .Cells(i + 2, 1).Value
        End With
Next i
End With
End Sub

Mytå

P.S. Remplace & par &

72dombal-v2.xlsx (25.14 Ko)

Trop merci !!! c'est niquel et ca marche !!!!

c'est pratique ca quand meme

et je pensais enfait pour linstant je fait ca avec des fichiers 1 onglet, et un tableau 2 colone (Crtiere = données)

mais enfait j'ai plusieur onglet avec le meme tableau dans chaque

est ce que cest possible de créer des liens hypertexte pour chaque onglet meme si c'est le meme fichier ?

je sais pas si je suis clair...

quand la liste sort, qu'il te mette

G:/A.xls(onglet"X4E")

G:/A.xls(onglet"DA2")

tu crois que ca serait possible, ca serait super classe...

En tout cas merci beaucoup pour ce code génial !

-- 23 Mar 2010, 10:52 --

J'ai trouvé ca pour lister les onglets présents

j'aimerais bien pouvoir grouper ces 2 macros pour que les liens utilise cette liste d'onglet présent pour aussi les mettre dans la liste des liens hypertexte...

quelqu'un aurait-il une idée de génie ?

merci d'avance

For i = 1 To Sheets.Count
    msge = msge & vbNewLine & Sheets(i).Name
Next i

MsgBox "Le classeur comporte les onglets " _
    & "suivant : " & vbNewLine & msge, , "Liste des onglets"

Bonjour,

J'ai testé le complément recherche des fichiers d'un dossier pour Excel 2007, et cela marche très bien.

Seulement ce qui m'intéresserait, ce serait de lister les dossiers présents dans un répertoire déterminé...

Le but ensuite est de proposer à un opérateur les dossiers disponibles, pour complèter de proche en proche un chemin vers un fichier précis...

Comment faire ?

Merci beaucoup.

Bonjour à tous,

Je sais que le sujet date mais je n'arrive pas à exécuter cette macro.

Message obtenu :

2013 09 22 13 52 55 microsoft excel classeur1

Et voici le code :

2013 09 22 13 54 12 microsoft visual basic pour applications classeur1 feuil1 code

Bonsoir,

FileSearch n'est plus disponible avec Excel 2010.

Tu dois te tourner vers d'autres solutions.

Cdlt

OK

Je l'ignorais...

Merci de ton aide.

Bonsoir,

Post super utile sauf que je comprends pas tout.

Pouvez-vous me réexpliquer tout cela plus simplement ?

Merci

Bonjour et merci de m'accueuillir,

Votre site est genial, mais helas microsoft fait evoluer ses produits, ce qui est normal, et les recettes que vous avez données à un instant donné, ne sont plus compatibles avec les versions ulterieures C'est le cas de cette application ce qui m'embete bien d'autant que je suis un vieux Monsieur et que là le codage ca me depasse quelque peu Lol

Merci si quelqu'un pouvait actualiser cette macro

Ca y est j'ai trouvé merci a tous

Je pensais l'avoir fait en temps et en heure, j'avais lu avec attention les règles du forum Lol

Probablement dans l'autre post celui qui m'a apporté la solution SORRY mais merci quand même ça m'a été fort utile?

Pour ce post je l'ai aussi fermé maintenant bien que ce ne soit pas moi qui l'ai ouvert. Ai-je bien fait ou non ?

Rechercher des sujets similaires à "lister fichiers dossier"