VBA Chercher fichier dans dossier et sous dossier

Bonjour,

Comme le titre l'indique je cherche un fichier qui se trouve dans un dossier où sous dossier

Je connais le nom du fichier je connais le nom du dossier et des sous dossiers

Mais je n'arrive pas à faire le programme, je suis un peu perdu ..

Exemple:

Je recherche où se trouve : Pierre.xlsx

Dans le dossier et sous dossiers

Dossiers/a/b/c/d/e/f

Msgbox " Ton fichier se trouve dans le dossier : ......."

Merci pour votre aide, je ne peux pas vous donner de source vu que je nage complètement

Bonsoir Tufekoi, bonsoir le forum,

Imagine le chemin du dossier principal en A1 de l'onglet actif et le nom du fichier en A2 de l'onglet actif.

Le code ci-dessous :

Sub Macro1()
Dim DP As String 'déclare la variable DP (Dossier Principal)
Dim NF As String 'déclare la variable NF (Nom Fichier)
Dim F As String 'déclare la variable F (Fichier)
Dim EF As Object 'déclare la variable EF (Explorateur de Fichiers)
Dim DS As Object 'déclare la variable DS (Dossier Source)
Dim ESD As Object 'déclare la variable ESD (Ensemble des Sous Dossiers)
Dim D As Object 'déclare la variable D (Dossier)

DP = Range("A1").Value & "\" 'définit le dossier principal DP
NF = Range("A2").Value 'définit le nom du fichier NF

'Dossier principal
F = Dir(DP & NF) 'définit le premier fichier F du dossier DP ayant NF comme nom
Do While F <> "" 'exécute tant qu'il exite des fichier F dans le dossier DP ayant NF comme nom
    'si le nom est égal à NF affiche un message indiquant le dossier principal DP
    If F = NF Then MsgBox NF & " se trouve dans le dossier : " & DP
    Exit Sub 'sort de la procédure
Loop 'boucle

'sous-dossiers
Set EF = CreateObject("Scripting.FileSystemObject") 'définit l'explorateur de fichier EF
Set DS = EF.GetFolder(DP) 'définit le doassier source DS
Set ESD = DS.SubFolders 'définit l'ensemble des sous-dossiers ESD du dossier source DS
For Each D In ESD 'boucle sur tous les dossiers D de ESD
    F = Dir(D & "\" & NF) 'définit le premier fichier F du dossier D ayant NF comme nom
    Do While F <> "" 'exécute tant qu'il exite des fichier F dans le dossier D ayant NF comme nom
        'si le nom est égal à NF affiche un message indiquant le dossier D
        If F = NF Then MsgBox NF & " se trouve dans le dossier : " & D
        Exit Sub 'sort de la procédure
    Loop 'boucle
Next D 'prochain dossier D de ESD
End Sub

Bonsoir,

Une autre proposition de recherche sur le nom du fichier avec ou sans son extension

Bonsoir,

Merci à vous deux :)

Super :)

Bonjour,

Finalement j'ai utilisé la source de ThauThème (fallait faire un choix)

J'ai juste un souci

Dans mon dossier de départ j'ai trois dossiers

et dans l'un des trois dossiers j'ai des sous dossiers et c'est là le hic il ne trouve pas le ou les fichiers des sous sous dossiers

Merci

Bonjour Jefekoi

Finalement j'ai utilisé la source de ThauThème (fallait faire un choix)

Donc tu as fait le mauvais choix

ThauThème que je salue t'as donné un code non récursif

En revanche Thev (que je salue également) lui oui

A+

Bon finalement je vais en rester là pas besoin d'utiliser les sous sous sous dossiers

Merci à vous trois

Rechercher des sujets similaires à "vba chercher fichier dossier"