Ci-dessous, nous examinerons un programme dans Excel VBA qui importe des feuilles d’autres fichiers Excel dans un fichier Excel.

Télécharger Book4.xlsx, Book5.xlsx et les ajouter à « C: \ test \ »

Situation:

Import Sheets using 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 feuille de calcul et une variable de type entier.

Dim directory As String, fileName As String, sheet As Worksheet, total As Integer
  1. Désactivez la mise à jour de l’écran et des alertes d’affichage.

Application.ScreenUpdating = False

Application.DisplayAlerts = False
  1. Initialiser le répertoire variable. Nous utilisons la fonction Dir pour trouver la première .xl ?? fichier stocké dans ce répertoire.

directory = "c:\test\"

fileName = Dir(directory & ".xl??")

Note: (?) Fonction La Dir prend en charge l’utilisation de plusieurs caractères (*) et le caractère unique des caractères génériques pour rechercher tous les différents types de fichiers Excel.

  1. La variable fileName détient maintenant le nom du premier fichier Excel dans le répertoire. Ajouter une boucle Do While.

Do While fileName <> ""

Loop

Ajouter les lignes de code suivants (en 5, 6, 7 et 8) à la boucle.

  1. Il n’y a aucun moyen simple de copier des feuilles de calcul à partir des fichiers Excel fermés.

Par conséquent, nous ouvrons le fichier Excel.

Workbooks.Open (directory & fileName)
  1. Importez les feuilles du fichier Excel dans l’import-sheet.xlsm.

For Each sheet In Workbooks(fileName).Worksheets

total = Workbooks("import-sheets.xlsm").Worksheets.count

Workbooks(fileName).Worksheets(sheet.Name).Copy _

after:=Workbooks("import-sheets.xlsm").Worksheets(total)

Next sheet

Explication: le total variable contient une trace du nombre total de feuilles d’import-sheet.xlsm. Nous utilisons la méthode de copie de l’objet feuille de calcul pour copier chaque feuille de calcul et de le coller après la dernière feuille d’import-sheets.xlsm.

  1. Fermez le fichier Excel.

Workbooks(fileName).Close
  1. La fonction Dir est une fonction spéciale. Pour obtenir les autres fichiers Excel, vous pouvez utiliser à nouveau la fonction Dir sans arguments.

fileName = Dir()

Remarque: En l’absence de plusieurs noms de fichiers correspondent, la fonction Dir renvoie une chaîne de longueur nulle ( « »). Par conséquent, Excel VBA quittera la boucle Do While.

  1. Allumez la mise à jour de l’écran et affiche à nouveau des alertes (en dehors de la boucle).

Application.ScreenUpdating = True

Application.DisplayAlerts = True
  1. Tester le programme.

Résultat:

Import Sheets Result