Liste automatique fichiers explorateur dans Excel

Bonjour à tous et par avance merci à tous ceux qui me liront...

Je suis à la recherche de quelqu'un qui pourrait m'aider à écrire un code VBA pour Excel, j'ai fouillé sur de nombreux forums essayé plein de codes mais aucun ne fait exactement ce que je souhaite et je suis bien incapable de les modifier sans tout casser lol (je ne connais rien au VBA)...

Voici ce que je cherche à faire :

J'ai un dossier avec de nombreux documents tous format (PDF, Word...)

Je souhaite créer un document Excel qui contiendrait en colonne A, le nom des documents (si possible sans l'extension ".doc", ."pdf"...)

Et en colonne G un lien vers le document correspondant

Les colonnes B à F et à partir de H seront remplies manuellement.

Les "difficultés" (et donc ce qui m'a posé problème avec les codes essayés jusqu'à présent):

Je souhaite que mon documents excel soit accesible très facilement dans l'idéal sur mon bureau (et donc pas forcément dans le même dossier que les documents que je souhaite lister), si il faut forcément que le document Excel soit dans le même dossier j'aimerai qu'il n'apparaisse pas dans la liste...

De nouveaux documents viendront s'ajouter au fil du temps dans le dossier et j'aimerai qu'à chaque ouverture du fichier excel celui ci se mette à jour automatiquement (éventuellement avec demande de confirmation) en rajoutant les nouveaux documents mais surtout sans enlever les anciens ni les colonnes saisies manuellement (en gros j'ai besoin que seules les colonnes A et G soient mises à jour)

Voilà j'espère que j'ai été claire sinon n'hésitez pas à me le dire, je ne sais pas si ce que je demande est faisable (j'espère que oui)... si vous avez besoin d'autres informations n'hésitez pas à demander.

Encore un grand merci à tous

Bonjour,

J'ai un dossier avec de nombreux documents tous format (PDF, Word...)

Je souhaite créer un document Excel qui contiendrait en colonne A, le nom des documents (si possible sans l'extension ".doc", ."pdf"...)

Et en colonne G un lien vers le document correspondant

Le mieux est de ptocéder par étape.. en premier créer la liste des fichiers Voir ce tuto

Je souhaite que mon documents excel soit accesible très facilement dans l'idéal sur mon bureau

Ne pose aucun problème, tu met le classeur Excel où tu veux ensuite créer un raccourci vers le bureau.

Revient pour la suite

A+

Finalement j'ai commencé pour toi,

Ouvrir le classeur et c'est automatique, je n'ai fais que la liste des fichiers ont verra pour la suite.

Quand tu ouvre le classeur pour la 1ère fois il t'est demandé de sélectionner le répertoire.

Tout les fichiers du répertoire seront lister dans la colonne A de la Feuil1

Le répertoire est mémoriser dans le cellule A1 de la feuil2

Sauve et ferme le classeur

Quand tu ouvre une 2èm fois la fonction vérifie si tu a ajouté des fichiers.

Si oui, les ajoute.

Pour tester tu peu ajouter un ou des fichiers dans ce répertoire ou supprimer un ou deux fichiers déjà lu de la colonne A feuil1, attention EN FIN DE COLONNE A et pas n'importe où.

Attention, quand des fichiers sont ajoutés ça prend un certain temps puisqu'il faut contrôler lesquels ajouter

J'ai tester avec 232 fichiers il faut plus ou moins 20 secondes

Tu dis, si ça convient j'adapteré plus précisément à ta demande.

A+

625majrepertoire.zip (12.49 Ko)

Arf désolée je viens de m'apercevoir que ma réponse n'avait pas été prise en compte

Alors je recommence...

Avant tout un immense merci à toi, ça marche très bien. et quelle rapidité!!!!

.. juste une petite modif si c'est possible (car ça me pose un vrai problème) de n'afficher que le nom du fichier sans extension (j'avoue que j'ai essayé de mon côté mais j'ai plutôt tout cassé lol heureusement que j'avais sauvegardé le code d'origine!!!)

Ensuite et dans l'idéal rajouter le lien hypertexte vers le document correspondant soit en colonne G comme j'avais demandé au départ soit directement en colonne A (finalement c'est peut etre plus simple)

Donc pour résumer et si c'est possible, j'ai des fichiers A a.doc, B b.pdf... et je voudrais avoir mon fichier excel avec en colonne A : A a ,

B b .... et si possible le lien hypertexte dans la meme colonne ou dans la colonne G.

Encore un immense merci

Re,

Regarde si ça convient

Pour adapter à ton classeur voir dans le module ThisWorkBook

A+

651majrepertoire.zip (15.65 Ko)

Bonjour,

SUper ça m'a déjà beaucoup fait avancer, merci de ton aide

J'ai juste encore un souci : lorsque je réouvre le document il ne me met pas simplement la liste à jour il la recrée à la suite...

Je sais pas si c'est très clair donc voici un exemple :

Mon dossier contient les documents : A a, B b et C c

Lorsque j'ouvre la première fois (et choisis le répertoire) la liste se crée :

A a

B b

C c

Lorsque j'ouvre la deuxième fois en activant les macros, j'ai :

A a

B b

C c

A a

B b

C c

(alors que je voudrais que ça reste comme à la première ouverture si je n'ai rien ajouté)

Si ensuite je rajoute dans mon dossier un fichier D d, je me retrouve à la troisième ouverture avec :

A a

B b

C c

A a

B b

C c

A a

B b

C c

D d

alors que je voudrais :

A a

B b

C c

D d

Je n'arrive pas à trouver d'où vient le problème, il me semble que ça marchait bien à la première version...

Encore merci pour ton aide précieuse...

Re,

J'ai pas pensé à adapter aux noms sans les extensions.

Remplace la partie de code..

        Application.ScreenUpdating = False
        For Each F In Fich
            'vérification si existe déjà
             For i = Lig To DerLig
                 If .Cells(i, Col) = F.Name Then Exit For
             Next i
             If i > DerLig Then 'existe pas et l'ajoute
                TB = Split(F.Name, ".")
                .Cells(LigEcrire, Col).Select
                .Hyperlinks.Add Anchor:=Selection, Address:= _
                   Rep & F.Name, TextToDisplay:=TB(0)
                 LigEcrire = LigEcrire + 1
            End If
        Next

par

        Application.ScreenUpdating = False
        For Each F In Fich
            TB = Split(F.Name, ".")
            'vérification si existe déjà
             For i = Lig To DerLig
                 If .Cells(i, Col) = TB(0) Then Exit For
             Next i
             If i > DerLig Then 'existe pas et l'ajoute
                .Hyperlinks.Add Anchor:=.Cells(LigEcrire, Col), Address:= _
                   Rep & F.Name, TextToDisplay:=TB(0)
                 LigEcrire = LigEcrire + 1
            End If
        Next

A+

C'est génial... tout fonctionne comme je le souhaite (et dire que ça fait près de 6 mois que j'essaie de trouver une solution lol)

Un très très grand merci pour ton aide et ta rapidité

Re,

Content d'avoir pu t'aider mais félicitations à toi, tu à le mérite d'avoir bien précisé ta demande et aussi d'avoir expliqué d'une façon compréhensible les problèmes rencontrés, ce qui n'est pas toujours le cas.

Ce fus un plaisir de t'aider.

A+

Salut lermite

Tout d'abord, un grand merci pour ta macro....je cherchais la même chose depuis un bon moment sans y arriver

Donc...la grande classe !

Par contre....est-ce que tu as une idée pour faire la même chose, mais en plus, ajouter les fichiers se trouvant dans les éventuels sous-répertoire ?

Si par hasard t'as 2 sec à perdre et que ca te semble pas trop compliqué....je suis preneur pour une petite information

En tous cas...un grand merci !

Fred

Bonjour dolin,

Pour mon utilisation personnelle j'ai modifié le classeur pour qu'il affiche différent répertoires dans différente feuilles.

Si ça t’intéresse je peu te le mettre en téléchargement.

Mais pour ajouter les sous-répertoires ça ne pose aucun problème voir cette démo, si problème de compréhension reviens.

A+

Hello.

Merci pour ta proposition de fichier. Alors avec plaisir si ca ne te dérange pas.

Et merci pour le lien, je vais aller voir tout ca !

Bonne journée

Fred

Re...

J'ai passé toute la journée sur cette histoire de sous-dossier à ajouter dans ton code....sans réussir quoi que ce soit

Hyper débutant en VBA (je pense que t'avais compris)

Je finalise mon classeur pour les répertoires dans différente feuilles. Pour l'autre solution ont verra après.

Un peu de patience.

A+

Je ne suis pas pressé, je te tenais juste informé

A voir

Tu dis si ça te convient.

A+

Bonjour lermite, bonjour à tous.

Tout d'abord, je tiens à te remercier pour ce travail conséquent !

Ensuite, après avoir jeté un oeil sur le forum pour la même demande que l'OP, je suis donc tombé sur ce post. J'ai essayé de voir ce que donnait le dernier fichier que tu as joints à ton message, et il apparaît que j'ai une erreur dès l'ouverture du fichier.

Erreur de compilation:

Projet ou bibliothèque introuvable

Le problème apparaît donc ici :

Public Sub InitNvRep()
Dim Rep As String, Nom As String
Dim LigAjout
        Rep = SelectionRep()
        If Rep = "" Then Exit Sub
        Nom = Mid(Rep, InStrRev(Rep, "\") + 1)
        Worksheets.Add
        ActiveSheet.Name = Nom
        With Sheets("Data")
            LigAjout = IIf(.[A1] = "", 1, .Cells(Rows.Count, 1).End(xlUp).Row + 1)
            .Cells(LigAjout, 1) = Rep
            .Cells(LigAjout, 2) = Nom
        End With

        MAJRepertoire Rep, Sheets(Nom), Range("A1")

End Sub

La première ligne de code "Public Sub InitNvRep()" étant surlignée en jaune, et le "Mid" de "Nom = Mid(Rep, InStrRev(Rep, "\") + 1)" sélectionné au moment où l'erreur apparaît.

Etant novice en VBA, j'avoue ne pas savoir comment corriger ce problème.

Pour rappel, il s'agit de pouvoir créer un fichier Excel actualisable de l'ensemble des fichiers d'un dossier et de ses sous-dossiers, avec la possibilité d'avoir les liens hypertextes de chaque fichier.

Cordialement, et en te remerciant d'avance.

__ __ __ __

Edit : J'ai essayé sous Excel 2003 et 2010, même erreur, même problème.

Cas typique d'une référence manquante.

Dans l'IDE tu clic sur.. Outils ->> Références.

Dans la fenêtre tu va probablement avoir une référence marquée Manquante

Tu la décoche, tu sauve, tu ferme et tu réouvre et tu dis..

A+

Merci pour ta rapidité !

Cependant, quand je clique sur "Outils", "Références..." est grisé. Aussi, je n'ai pas accès à la fameuse case à décocher.

Une autre idée ?

Cordialement.

C'est tout à fait anormal, il n'y a aucun code sur le classeur.

Quel est ton statut sur ce PC ? , tu est admin ? ou...

Tu est sur un réseau ?


J'ai recharger le classeur en référence dans mon poste précédant et effectivement il y a beaucoup de références inutiles sur ce classeur. Je les ai supprimées.

Essaye avec la version 3

A+

Rechercher des sujets similaires à "liste automatique fichiers explorateur"