Fusion de plusieurs fichiers

zek

XLDnaute Nouveau
Bonjour à tous,



J’ai 8 fichiers Excel (A,B,C,D,E,F,G,H) dans un même répertoire.

Ils sont tous structurés de la même façon ; tableau avec les mêmes entêtes de colonnes mais les données sont différentes entre les tableaux et un nombre de lignes différentes.

Aujourd’hui pour exploiter ces données (reporting consolidé) je suis obligé de les ouvrir un par un, afin de copier-coller ces données les unes à la suite des autres pour avoir un tableau global.

Qui aurait un bout de code pour :

1-J’ouvre le fichier A

2-Je sélectionne la plage de A2 :K (nombre de ligne non fixe)

3- J’ouvre le fichier synthèse.xls

4-Je vais sur la première ligne vide en colonne A du fichier synthèse

5-Je colle les données

6-Je ferme le fichier A

7-J’ouvre le fichier B, et même procédé,

8- ET IDEM avec C,D,E,F,G,H

D’avance je vous remercie.
 

sousou

XLDnaute Barbatruc
Bonjour
en fonction de ton organisation de fichier, ce code non testé à adapter
Sub synthese()
cheminsyn = " le chemin à ton répertoire contenant synthèse.xls"
cheminfichs = " le chemin à ton répertoire contenant tes fichiers"
tablefich = Array("a.xls", "b.xls", "c.xls") 'et les autres
Set synt = Workbooks.Add(cheminsyn & "\synthèse.xls")
For n = o To UBound(tablefich)
Call copier(tablefich(n), synt)
Next
MsgBox "Opération terminée"
End Sub

Sub copier(fich, synt)
Set dest = synt.Sheets(1) ' si la synthèse ce fait dans la feuille 1
Set fichier = Workbooks.Add(cheminfichs & "/" & fich)
With fichier.Sheets(1) ' si la synthèse ce fait dans la feuille 1
Set Source = .Range(.Cells(2, 11), .Cells(dernièreligne(fichier.Sheets(1)), 11))
End With
Source.Copy (dest.cell(dernièreligne(dest), 1))
End Sub

Function dernièreligne(dest)
nbl = dest.UsedRange.Rows.Count
lg = dest.UsedRange.End(xlDown).Row
If lg > nbl Then
lg = dest.Rows(lg).End(xlUp).Row
End If
dernièreligne = lg
End Function
 

Discussions similaires

Réponses
1
Affichages
164

Statistiques des forums

Discussions
312 147
Messages
2 085 765
Membres
102 968
dernier inscrit
Tmarti