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

Pièces jointes

  • Screenshot 2023-01-13 134118.png
    Screenshot 2023-01-13 134118.png
    37.5 KB · Affichages: 23
  • Screenshot 2023-01-13 134058.png
    Screenshot 2023-01-13 134058.png
    10.2 KB · Affichages: 25

Dadi147

XLDnaute Occasionnel
Re, faux, inutile de mentir car visiblement tu n'as rien compris. atchao !
Malgré mes adieux, je tiens à vous remercier pour cet effort incroyable. Merci beaucoup, un programme très agréable et précis... Quant à votre dernier commentaire. Je n'ai vraiment (pas menti) peut-être que je n'ai pas très bien compris. Mais lorsque j'ai essayé le fichier sur plusieurs appareils, dont Office 32 et Windows 64, cela a très bien fonctionné pour moi.
 

kiki29

XLDnaute Barbatruc
Salut, tjs dans procédure FusionFichiers dans
VB:
.....
                        Else
                            .Range(.Cells(iEntete + 1, "A"), .Cells(iLastRow, iLastCol)).Copy _
                                    WkbFusion.Worksheets(1).Cells(Rows.Count, "A").End(xlUp)
                        End If
                        .....
rajouter .offset(5)
Code:
.....
                        Else
                            .Range(.Cells(iEntete + 1, "A"), .Cells(iLastRow, iLastCol)).Copy _
                                    WkbFusion.Worksheets(1).Cells(Rows.Count, "A").End(xlUp).Offset(5)
                        End If
                        .....
Eventuellement rajouter à l'endroit idoine
VB:
WkbFusion.Worksheets(1).Rows("1:" & iOff).Delete Shift:=xlUp
avec iOff égal à 5
 

Pièces jointes

  • 1.png
    1.png
    49.6 KB · Affichages: 20
Dernière édition:

job75

XLDnaute Barbatruc
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 colonne B
        .Rows("1:" & h).Copy F.Cells(lig, 1) 'copier-coller
        lig = lig + h + 3 '3 lignes vides
        .Parent.Close False 'fermeture du fichier
    End With
Next
End Sub
A+
 

Pièces jointes

  • Dossier.zip
    44.2 KB · Affichages: 6

Dadi147

XLDnaute Occasionnel
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 colonne B
        .Rows("1:" & h).Copy F.Cells(lig, 1) 'copier-coller
        lig = lig + h + 3 '3 lignes vides
        .Parent.Close False 'fermeture du fichier
    End With
Next
End Sub
A+
Bonjour job75
Merci de l'intérêt que vous portez à ma demande. Je ne sais pas comment vous décrire mon sentiment lorsque j'ai essayé le code. Facile et simple. Très précis. En fait, j'avais du mal à gérer les feuilles de calcul et à les copier dans le même Bien que l'idée du programme kiki29 soit
Très impressionnant. Et dynamique. Mais je n'ai pas pu copier les feuilles dans le même format d'origine. Merci. Merci.
 

chindou

XLDnaute Occasionnel
Bonjour le forum
Si j'ai bien compris
À mettre tous les fichiers à importer dans un seul dossier dans mes documents
Il faut que les feuilles ou se trouve les données cibles ont le même nom
La macro va importer ces données sans ouvrir les 7 fichiers et les coller dans la feuille base.
Cordialement
 

Pièces jointes

  • Dadi.xlsm
    23.9 KB · Affichages: 6

job75

XLDnaute Barbatruc
Bonjour chindou,
Si j'ai bien compris
Eh non vous n'avez pas compris.

Il est bien précisé au post #1 que les 7 fichiers ont le même nom et se trouvent dans 7 dossiers différents.

Et ensuite il est clair que les lignes des titres sont à copier 7 fois avec 3 ou 4 lignes de séparation.

Il est clair aussi que les formats doivent être copiés.

Vous auriez quand même pu faire l'effort de tester (ou lire) ma solution du post #26 pour comprendre :rolleyes:

A+
 

Dadi147

XLDnaute Occasionnel
Bonjour chindou,

Eh non vous n'avez pas compris.

Il est bien précisé au post #1 que les 7 fichiers ont le même nom et se trouvent dans 7 dossiers différents.

Et ensuite il est clair que les lignes des titres sont à copier 7 fois avec 3 ou 4 lignes de séparation.

Il est clair aussi que les formats doivent être copiés.

Vous auriez quand même pu faire l'effort de tester (ou lire) ma solution du post #26 pour comprendre :rolleyes:

A+
Mais heureusement, le fichier que vous avez joint a résolu tous mes problèmes. Merci. C'est maintenant mon fichier principal. 👍
 

Discussions similaires

Statistiques des forums

Discussions
312 097
Messages
2 085 261
Membres
102 844
dernier inscrit
atori2