/ / Importer des feuilles avec Excel VBA

Importer des feuilles avec Excel VBA

Ci-dessous, nous examinerons un programme en Excel VBA cette importe des feuilles d'autres fichiers Excel dans un seul fichier Excel.

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

Situation:

Importer des feuilles avec Excel VBA

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 une variable de type Integer.

Dim directory As String, fileName As String, sheet As Worksheet, total As Integer

2. Désactivez la mise à jour de l'écran et l'affichage des alertes.

Application.ScreenUpdating = False
Application.DisplayAlerts = 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 et 8) à la boucle.

5. Il n'existe pas de moyen simple de copier des feuilles de calcul à partir de fichiers Excel fermés. Par conséquent, nous ouvrons le fichier Excel.

Workbooks.Open (directory & fileName)

6. Importez les feuilles du fichier Excel dans import-sheet.xls.

For Each sheet In Workbooks(fileName).Worksheets
    total = Workbooks("import-sheets.xls").Worksheets.count
    Workbooks(fileName).Worksheets(sheet.Name).Copy _
    after:=Workbooks("import-sheets.xls").Worksheets(total)
Next sheet

Explication: la variable total conserve la trace du nombre total de feuilles de calcul de import-sheet.xls. Nous utilisons la méthode Copy de l'objet Worksheet pour copier chaque feuille de travail et la coller après la dernière feuille de travail de import-sheets.xls.

7. Fermez le fichier Excel.

Workbooks(fileName).Close

8. 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.

9. Allumez l'écran en mettant à jour et en affichant à nouveau les alertes (en dehors de la boucle).

Application.ScreenUpdating = True
Application.DisplayAlerts = True

10. Testez le programme.

Résultat:

Résultat des feuilles d'importation

Lisez aussi: