Salut la communauté, je développe un formulaire sous Excel pour rechercher des informations, l'idée est la suivante :
L'utilisateur écrit ce qu'il veut rechercher dans un champ texte, puis Click sur un bouton.
Le bouton en Question doit rechercher dans un répertoire tous les sous répertoires dont les noms correspondent avec sa recherche.

voici mon code :

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
Private Sub CommandButton1_Click()
    Dim Search As String
    Dim myFolder1 As String
    Dim myPath1 As String
    Dim myFolder2 As String
    Dim myPath2 As String
 
    '' TextBox1 correspond à la chaine de caractères tapée par l'utilisateur
    Search = Me.TextBox1.Value
 
    'chemin du répertoire parent dans lequel la recherche à lieu
    myPath1 = "C:\Users\a874495\Stage\ATA\N°ATA\"
    myFolder1 = Dir(myPath1, vbDirectory)
 
    Do While myFolder1 <> ""
        If GetAttr(myPath1 & myFolder1) = vbDirectory And myFolder1 <> "." And myFolder1 <> ".." Then
            myPath2 = "C:\Users\a874495\Stage\ATA\N°ATA\" & myFolder1 & "\"
            myFolder2 = Dir(myPath2, vbDirectory)
 
            Do While myFolder2 <> ""
                If GetAttr(myPath2 & myFolder2) = vbDirectory And myFolder2 <> "." And myFolder2 <> ".." And myFolder2 Like "*" & Search & "*" Then
                'j'ajoute le répertoire qui match avec la recherche dans une listBox
                Me.ListBox1.AddItem myFolder2
 
                End If
                'Je test le repertoire suivant
                 myFolder2 = Dir()
            Loop
        End If
        myFolder1 = Dir()
    Loop
End Sub
J'ai effectué la compilation en mode debug mais je ne comprend toujours pas.

Lorsque j'exécute le code, cela fonctionne correctement pour les sous répertoires (myFolder2) mais lorsque j'arrive à la boucle principale qui est censé parcourir tous les dossiers parents elle bloque à la 3eme itération, je m'explique :

En mode debug je vois bien la variable myFolder1 qui prend les valeurs suivante : ".." "." "repertoire 1" puis Erreur d'exécution.
Elle parcours donc les deux répertoires cachés ".." et "." puis le Premier répertoire visible "repertoire 1" et au moment de passer au répertoire 2 ça m'affiche une erreur d’exécution, alors que le code est très claire, il faut passer au répertoire suivant, le pire c'est que ça à l'air de fonctionner pour les 3 premiers si on considère "." et ".." comme des répertoires.

Je vous remercie d'avance pour votre aide