Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 Importer les données de plusieurs fichiers Excel portant le même nom dans un nouveau fichier

Dadi147

XLDnaute Occasionnel
Bonjour. Renseignements pour ceux qui ont de l'expérience. J'ai 7 fichiers Excel avec le même nom, (summary).ils ont été placés dans 7 dossiers dans un dossier, et je veux un moyen de les copier dans un nouveau fichier en dessous l'un de l'autre. Pouvons-nous faire cela
 
Dernière édition:
Solution
Bonjour Dadi147, le forum,

L'importation se fait très simplement avec cette macro :
VB:
Sub Importer()
Dim chemin$, dossier, fichier, F As Worksheet, lig&, i%, h&
chemin = ThisWorkbook.Path & "\"
dossier = Array("Dossier1", "Dossier2", "Dossier3", "Dossier4", "Dossier5", "Dossier6", "Dossier7") 'liste à adapter
fichier = "Summary.xls" 'à adapter
Set F = ActiveSheet
lig = 2 '1ère ligne de destination
Application.ScreenUpdating = False
F.Rows(lig & ":" & F.Rows.Count).Delete 'RAZ
For i = 0 To UBound(dossier)
    With Workbooks.Open(chemin & dossier(i) & "\" & fichier).Sheets(1) 'ouverture du fichier
        If .FilterMode Then .ShowAllData 'si la feuille est filtrée
        h = .Range("B" & .Rows.Count).End(xlUp).Row 'dernière ligne en...

Dadi147

XLDnaute Occasionnel
Bonjour @Hasco , @BrunoM45 ,

Je ne fais que copier. Donc, je dis bonjour qu'aux personnes polies.
David devrait instaurer des sanctions envers ceux et celles qui dérogent aux règles du forum.

Bonne journée.
Il y a un malentendu, je n'ai juste pas fait attention et j'ai écrit un mot (bienvenue)
je ne savais pas qu'il y avait une différence
Il a été modifié dans le post, désolé encore......
 

kiki29

XLDnaute Barbatruc
Salut, de l'archéologie informatique (2014), perfectible sans doute, à toi de le tester/modifier/adapter à ton contexte.
 

Pièces jointes

  • 5.png
    63.4 KB · Affichages: 25
Dernière édition:

Dadi147

XLDnaute Occasionnel
Bonjour. Très, très, très beau. Il me manque un ajout simple, à savoir que j'ai des espaces entre les lignes de la colonne A. J'ai essayé de modifier le code, mais je n'ai pas réussi. Pouvez-vous m'aider ?
 

kiki29

XLDnaute Barbatruc
Re,
Dans la procédure FusionFichiers, ajouter :
VB:
.Range("A3:A" & Rows.Count).Delete Shift:=xlToLeft
ici
Code:
.....
With WkbDecoupage.Worksheets(sFeuille)
                    If FeuilleVide(WkbDecoupage.Worksheets(sFeuille)) = False Then
            >>>>>>      .Range("A3:A" & Rows.Count).Delete Shift:=xlToLeft
                        iLastCol = .Cells(1, Columns.Count).End(xlToLeft).Column
                        .....
 

Pièces jointes

  • 3.png
    192.1 KB · Affichages: 21

Dadi147

XLDnaute Occasionnel
Lorsque vous essayez d'ouvrir le fichier sur un ordinateur 64 bits, ce message est apparu
VB:
Private Declare Function FindClose Lib "kernel32" (ByVal hFindFile As Long) As Long
Private Declare Function FindFirstFile Lib "kernel32" _
                                       Alias "FindFirstFileA" _
                                       (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long
Private Declare Function FindNextFile Lib "kernel32" _
                                      Alias "FindNextFileA" _
                                      (ByVal hFindFile As Long, lpFindFileData As WIN32_FIND_DATA) As Long
Private Declare Function lstrlen Lib "kernel32" Alias "lstrlenW" (ByVal lpString As Long) As Long
Private Declare Function PathMatchSpec Lib "shlwapi" _
                                       Alias "PathMatchSpecW" _
                                       (ByVal pszFileParam As Long, ByVal pszSpec As Long) As Long
 

Pièces jointes

  • Screenshot 2023-01-13 014709.png
    33.1 KB · Affichages: 19

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…