/ / Fichiers dans un répertoire dans Excel VBA

Fichiers dans un répertoire dans Excel VBA

Ci-dessous, nous examinerons un programme en Excel VBA cette parcourt tous les classeurs et feuilles de calcul fermés dans un annuaireet affiche tous les noms.

Téléchargez Book1.xls, Book2.xls, Book3.xls, Book4.xls et Book5.xls et ajoutez-les à "C: test"

Situation:

Fichiers dans un exemple de répertoire

Ajoutez les lignes de code suivantes au bouton de commande:

1. Tout d'abord, nous déclarons deux variables de type String, un objet Worksheet et deux variables de type Integer.

Dim directory As String, fileName As String, sheet As Worksheet, i As Integer, j As Integer

2. Pour éviter le scintillement de l'écran, désactivez la mise à jour de l'écran.

Application.ScreenUpdating = False

3. Initialisez le répertoire de variables. Nous utilisons la fonction Dir pour trouver le premier * .xl ?? fichier stocké dans ce répertoire.

directory = "c:test"
fileName = Dir(directory & "*.xl??")

Remarque: la fonction Dir prend en charge l'utilisation de caractères génériques à plusieurs caractères (*) et à un caractère (?) Pour rechercher tous les différents types de fichiers Excel.

4. La variable nomFichier contient maintenant le nom du premier fichier Excel trouvé dans le répertoire. Ajouter une boucle Do While.

Do While fileName <> ""

Loop

Ajoutez les lignes de code suivantes (en 5, 6, 7, 8 et 9) à la boucle.

5. Initialisez les variables de type Integer et ajoutez le nom du fichier Excel à la première colonne de la ligne i.

i = i + 1
j = 2
Cells(i, 1) = fileName

6. Il n'existe pas de moyen simple d'extraire des données (ou des noms de feuille) à partir de fichiers Excel fermés. Par conséquent, nous ouvrons le fichier Excel.

Workbooks.Open (directory & fileName)

7. Ajoutez tous les noms de feuille du fichier Excel aux autres colonnes de la ligne i.

For Each sheet In Workbooks(fileName).Worksheets
    Workbooks("files-in-a-directory.xls").Worksheets(1).Cells(i, j).Value = sheet.Name
    j = j + 1
Next sheet

8. Fermez le fichier Excel.

Workbooks(fileName).Close

9. La fonction Dir est une fonction spéciale. Pour obtenir les autres fichiers Excel, vous pouvez à nouveau utiliser la fonction Dir sans argument.

fileName = Dir()

Remarque: lorsqu'il n'y a plus de noms de fichiers correspondants, la fonction Dir renvoie une chaîne de longueur nulle (""). En conséquence, Excel VBA quittera la boucle Do While.

10. Réactivez la mise à jour de l'écran (en dehors de la boucle).

Application.ScreenUpdating = True

11. Testez le programme.

Résultat:

Fichiers dans un répertoire dans Excel VBA

Lisez aussi: