Importer les feuilles de calcul d’autres fichiers Excel dans un Fichier avec VBA

Nous examinerons un programme dans Excel VBA qui importe des feuilles d’autres fichiers Excel dans un fichier Excel.

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 repertoire As String, nomfichier As String, feuilcal 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 des variables. Nous utilisons la fonction Dir pour trouver le premier fichier *.xl ?? stocké dans ce répertoire.

repertoire = "C:\Users\KAMAJOU\Documents\testvba"
nomfichier = Dir (repertoire & "*.xl ??")

Remarque: La fonction Dir prend en charge l’utilisation de caractères génériques à plusieurs caractères (*) et à un seul caractère (?) pour rechercher tous les différents types de fichiers Excel.
4. La variable nomfichier contient désormais le nom du premier fichier Excel trouvé dans le répertoire. Ajoutez une boucle Do While.

Do While nomfichier <> ""
Loop

Ajoutez les lignes de code suivantes (en 5, 6, 7 et 8) à la boucle.
5. Il n’existe aucun moyen simple de copier des feuilles de calcul à partir de fichiers Excel fermés. Par conséquent, nous ouvrons le fichier Excel.

Workbooks.Open (repertoire & nomfichier)

6. Importez les feuilles du fichier Excel dans importfeuil.xlsx.

For Each feuilcal In Workbooks(nomfichier).Worksheets
total = Workbooks("importfeuil.xlsx").Worksheets.count
Workbooks(nomfichier).Worksheets(sheet.Name).Copy _

after:=Workbooks("importfeuil.xlsx").Worksheets(total)
Next feuilcal

Explication: la variable total conserve la trace du nombre total de feuilles de calcul de importfeuil.xlsx. Nous utilisons la méthode Copy de l’objet Worksheet pour copier chaque feuille de calcul et la coller après la dernière feuille de calcul de importfeuil.xlsx.
7. Fermez le fichier Excel.

Workbooks(nomfichier).Close

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

nomfichier = Dir ()

Remarque: Lorsque plus aucun nom de fichier ne correspond, la fonction Dir renvoie une chaîne de longueur nulle (“”). Par conséquent, Excel VBA quittera la boucle Do While.
9. Activez la mise à jour de l’écran et affichez à nouveau les alertes (en dehors de la boucle).

Application.ScreenUpdating = True
Application.DisplayAlerts = True

10. Testez le programme.

Sub ImporterFeuilleCal()
Dim repertoire As String, nomfichier As String, feuilcal As Worksheet, total As Integer
Application.ScreenUpdating = False
Application.DisplayAlerts = False
repertoire = "C:\Users\KAMAJOU\Documents\testvba"
nomfichier = Dir(repertoire & "*.xl??")
Do While nomfichier <> ""
Workbooks.Open (repertoire & nomfichier)
For Each feuilcal In Workbooks(nomfichier).Worksheets
total = Workbooks("importfeuil.xlsx").Worksheets.Count
Workbooks(nomfichier).Worksheets(Sheet.Name).Copy _
after:=Workbooks("importfeuil.xlsx").Worksheets(total)
Next feuilcal
Workbooks(nomfichier).Close
Loop
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub

 

S’abonner
Notifier de
0 Commentaires
Inline Feedbacks
Voir tous les commentaires

Initiation à Excel

Fonctions Excel

Excel VBA

Macros VBA Utiles

Plus d'outils

Sur Facebook

Sur YouTube

0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x
()
x