Trouver un répertoire et sous-répertoires en utilisant Visual Basic pour Applications ( VBA ) n'est pas aussi compliqué que vous ne le pensez. Dans VBA, vous pouvez utiliser la fonction " Dir" pour obtenir des noms de répertoires dans un chemin . Une fois que vous avez trouvé le répertoire que vous cherchez , vous pouvez utiliser le chemin du répertoire de trouver des sous-répertoires . Ce processus est utile lorsque vous avez besoin d'enregistrer un fichier dans un répertoire particulier , mais n'ont pas le chemin complet pour cela. Choses que vous devez Microsoft Office Excel Voir Plus Instructions 1 lancement de Microsoft Office Excel , cliquez sur l'onglet « Développeur » et cliquez sur « Visual Basic ». Cliquez sur le menu "Insertion " et cliquez sur "Module" pour insérer un nouveau module de code 2 Tapez la suivante pour créer un nouveau sous procédure : . FindDirectories Private Sub ( ) 3 Ajoutez le code suivant pour créer trois variables que vous allez utiliser pour trouver le répertoire d'intérêt : startPath Dim As String mon_nom Dim As String Photos dirFound As Boolean 4 Définir le lecteur sur lequel vous souhaitez effectuer la recherche pour le répertoire et obtenir le premier annuaire : startPath = " C: \\" Photos mon_nom = Dir ( startPath , vbDirectory ) 5 Créer une boucle while , rechercher tous les répertoires dans "C: \\ " jusqu'à ce que le répertoire " Temp" a été trouvé, et appeler les « getSubDirectories " sous procédure pour obtenir tous les sous-répertoires présents dans le répertoire "Temp" : faire pendant dirFound = False Si mon_nom <> " . " Et mon_nom <> ".." Puis ( GetAttr ( startPath & mon_nom ) et vbDirectory ) = vbDirectory Puis Si mon_nom = " Temp" Alors dirFound = True Appel getSubDirectories ( startPath & mon_nom & "\\" ) End If End If End If ( dirFound = False ) Puis mon_nom = Dir End If boucle End Sub 6 Copiez et collez le code suivant pour créer les « getSubDirectories "sub procédure et afficher tous les sous-répertoires présents dans le répertoire" Temp " dans la fenêtre immédiate: Photos getSubDirectories Private Sub ( startPath As String ) de myname Dim As String mon_nom = Dir ( startPath , vbDirectory ) Do While mon_nom <> "" Si mon_nom <> " . " Et mon_nom <> ".." Puis ( GetAttr ( startPath & mon_nom ) et vbDirectory ) = vbDirectory Puis Debug.Print mon_nom End If End If mon_nom = Dir boucle End Sub 7 Appuyez sur "Ctrl " et " G " pour afficher la fenêtre Exécution. Cliquez à l'intérieur " findDirectories " et appuyez sur "F5" pour exécuter le programme .
|