[EXCEL]Concatener plusieurs fichiers [Fermé]

Signaler
Messages postés
7
Date d'inscription
samedi 28 octobre 2006
Statut
Membre
Dernière intervention
4 janvier 2010
-
 Kelte -
Bonjour,
J'ai dans une directory plusieurs fichiers Excel avec un format identique (nb colonne, nom colonne, ...).

Comment faire pour concatener tous ces fichiers dans un seul ?

Merci pour votre aide

Paul

11 réponses

Un excellent outils, pour les personnes qui ne savent programmer (comme bibi). Concatener, merger... le plus simplement du monde.

http://www.alternate-tools.com/pages/c_merger.php?lang=GER&nav_option=11111111
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 60769 internautes nous ont dit merci ce mois-ci

Messages postés
1977
Date d'inscription
mercredi 27 juillet 2005
Statut
Membre
Dernière intervention
2 septembre 2020
812
Bonsoir,

marche à suivre :

1) tu décris ton algorithme
ça te forcera à préciser ce que tu veux faire et comment tu veux le faire

2) tu enregistres la macro unitaire via l'enregistreur de macro d'excel
tu auras ainsi 80% de ton code

3) tu adaptes ce code pour qu'il gère les boucles et les variables.

si tu coinces, tu cries

A+
bonjour,
pourquoi faire simple quand on peut faire complique, ou l'inverse!
Le plus simple,
1 - exporter les fichiers xls dans fichiers textes avec sepateur tabulation par exemple
2 - lancer le dos (y compris celui de windows XP)
3 - faire "copy "fichier 1"+"fichier 2" "fichier globale" "
4 - le reimporter sous excel...
et c'est tout.

exemple

fichier1.txt
fichier2.txt
fichierglobale.txt

copy fichier1+fichier2 fichierglobale.txt

cordialement
Messages postés
711
Date d'inscription
samedi 17 mars 2007
Statut
Membre
Dernière intervention
16 novembre 2013
178
Searancher, j'espère qu'il n'y pas plusieurs feuilles dans les fichiers Excel... :-)

Comme dit JvDo, il faut savoir ce que tu veux faire...

Tu veux "juste" copier les colonnes du fichier2 à coté des colonnes du fichier1, ou importer les données du fichier2 et les ajouter en dessous (par exemple) des données du fichier1, ou ajouter les feuilles du fichier2 au classeur fichier1... Bref, plus de précisions s'imposent :-)
ma foi, je pense qu'il a été assez clair, du moins pour moi. Il a plusieurs fichiers excels ayant la meme structure et veut donc ne plus en faire qu'un seul. j'ai tout faux ?
Bonjour, j'ai un soucis similaire mais encore plus fou.

Voila, j'ai Soixante fichiers excel de forme identique avec 5 à 6 onglets toujours de forme identique. (Ne demandez pas pourquoi c'est pour le TAF)

Ces fichiers ne se trouvent pas forcément dans le même dossier et ne sont pas en nombre identiques

Exemple:

DossierA : Dossier1,dossier2,dossier3,dossier4.....

Dossier1 : Exel1
Dossier2 : Excel2,Excel3
Dossier3 : Excel4,Excel5,Excel6
Dossier4 : Excel7,Excel8

Connaissez-vous une macro capable de tout me copier dans un Seul fichier Excel (Tout les fichiers les uns en dessous des autres) en indiquant le fichier dont l'info provient ainsi que l'onglet d'origine)

That is your challenge !!! Good Luck
Bonsoir ;

Le problème est-il résolu ou est-il tjs d'actualité, vu la date de demande?
Pas de problème, envoi moi ton adresse mail
Bonjour,

Je t ecris par rapport au fichier excel que tu as cree pour concatener plusieurs fichiers excel de meme format en un seul. serait-il possible de l envoyer a cette adresse : sham_hieu@msn.com
je serais vraiment contente d'avoir ce fichier aussi, ça me dépannerait. merci beaucoup ! phoenyx2006@free.fr
j'ai opté pour la solution de searancher (janvier 2008 plus haut) sous DOS. Rien à modifer. Effectivement cela marche impec, 51 fichiers concaténés en quelques secondes ! total pres de 30 meg!
Pourquoi faire compliqué
Surprenant que Microsoft ne nous ait pas prévu une fonction sous excell.
Bonjour

Serait il possible d avoir le fichier qui permet de tout concaténer sous Dos, Cela me sera d une grande utilité
Merci d avance

je laisse mon mail : x_mania@live.fr
> x_mania
Bonjour tlm,
En cherchant sur google, j'ai trouvé ça: http://www.fobec.com/logiciel/windows/

j'espère que ça vous aidera.
Pour moi ça était très pratique.
> el_aaroubi
Salut,

il y a un truc que je viens de trouver, bien pratique...
Clic droit sur un des onglets du fichier excel à copier (après l'avoir copié sous un autre nom pour être sur de ne pas paumer les données), utiliser la fonction sélectionner toutes les feuilles, puis la fonction copier ou déplacer vers un autre fichier, sélectionner le fichier où on veut envoyer les données, l'emplacement à l'intérieur de ce fichier, et le tour est joué...
Attention, les feuilles disparaissent du fichier source, Excel ne copie pas les feuilles, il les déplace, d'où l'interêt de copier les données avant toute manipulation...

Voilà voilà, bien le bonjour
Bonsoir ;

Résolu ou pas, ma question est bête, voici un programme qui permet de sélectionner 1 ou +sieurs fichier(s) dans n'importe quel(s) répertoire(s) d'un disque local ou réseau. Les fichiers excel doivent avoir la même structure et comporter la première ligne en commentaire sur chaque fichier excel(sinon, adapter la suppressionde ces lignes).

Ce VB concatène chacun des fichiers excel sélectionnés jusqu'à l'abandon et effectue une destruction de cellules non utiles puis constitue un fichier croisé dynamique en automatique. Il demande peut-être aussi une variable, je ne sais plus.

Bonne analyse. Supprimer les lignes inutiles. Si besoin, je peux envoyer le fichier excel en exemple.

--------------------------------VBA------------------------------------------------------------:

'La variable est de type Variant car elle peut prendre les valeurs:
'Booleenne: (Vrai/Faux) quand l'utilisateur ne sélectionne rien, ou annule l'opération.
'String: pour renvoyer le nom du fichier sélectionné.
Dim file As Variant
Dim fileTemplate As Variant
Dim WorkBookData As Workbook
Dim nbFichiers As Variant
Dim L1 As Variant
Dim LData As Variant
Dim CL As Range
Dim Navire As Variant
Dim Nbl As Integer
Dim Nbf As Integer
Dim f As Integer
Dim nom As String

Private Sub RazMiseEnFormeDatas()
Sheets("Feuil1").Activate
Range("A1").Select
Selection.End(xlDown).Select
Selection.End(xlToRight).Select
Range(Selection, Selection.End(xlToLeft)).Select
Range(Selection, Selection.End(xlUp)).Select
Selection.ClearContents
Selection.Interior.ColorIndex = xlNone
Selection.ClearComments
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlNone
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlNone
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlNone
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlNone
End With
With Selection.Borders(xlInsideVertical)
.LineStyle = xlNone
End With
With Selection.Borders(xlInsideHorizontal)
.LineStyle = xlNone
End With
Selection.Rows.AutoFit
Selection.Columns.AutoFit
End Sub

Private Sub SelectionFichierSimple()

'Affiche la boîte de dialogue "Ouvrir"
file = Application.GetOpenFilename("Tous les fichiers (*.*),*.*")
Nbf = WorksheetFunction.CountA(Columns("a:a"))
nom = file
MsgBox ("nom " & Nbf)
End Sub
Private Sub CopieDatasToTemplate()
' Ouverture du fichier de donnees
Workbooks.Open file
Set WorkBookData = Application.Workbooks.Open(file)
WorkBookData.Sheets(1).Select
Range("A1").Select
' MsgBox ("nombre lignes " & nom)
NbData = 0
NbData = WorksheetFunction.CountA(Columns("a:a"))
Range("A1:O" & NbData).Select
Range(Selection, Selection.End(xlUp)).Select
Range(Selection, Selection.End(xlToLeft)).Select
Selection.Copy
Windows(fileTemplate).Activate
Range("" & L1).Select
ActiveSheet.Paste
Range("" & L1).Select
fichier:
If f < Nbf Then
f = f + 1
Range("S" & f) = nom
GoTo fichier
End If
Application.CutCopyMode = False
WorkBookData.Close
End Sub
Sub Croise()
'
' tyty Macro
' Macro enregistrée le 07/11/2008
'
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
"Feuil1!R1C1:R" & Nbl & "C4").CreatePivotTable TableDestination:="", TableName:= _
"Tableau croisé dynamique4", DefaultVersion:=xlPivotTableVersion10
ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
ActiveSheet.Cells(3, 1).Select
ActiveWorkbook.ShowPivotTableFieldList = True

ActiveSheet.PivotTables("Tableau croisé dynamique4").AddFields RowFields:= _
Array("Stade_Montage", "Référence"), ColumnFields:=Array("Bloc", "Panneau")
ActiveSheet.PivotTables("Tableau croisé dynamique4").PivotFields("Référence"). _
Orientation = xlDataField
End Sub
Sub ImportData()
Nb = 0
Line = 1
f = 1
fileTemplate = ThisWorkbook.name
RazMiseEnFormeDatas
suite:
Nf = Nf + 1
SelectionFichierSimple
If file = "Faux" Then
Nbl = WorksheetFunction.CountA(Columns("a:a"))
Columns("A:B").Select
Selection.Delete Shift:=xlToLeft
Columns("E:O").Select
Selection.Delete Shift:=xlToLeft
' Sheets("Feuil1").Activate
Recommence:
Line = Line + 1
Col = Range("A" & Line)
If Col = "Panneau" Then
Rows(Line).Delete
End If
If Line < Nbl Then
GoTo Recommence
Else
Nbl = WorksheetFunction.CountA(Columns("a:a"))
Navire = InputBox("Code du navire")
Line = 1
Range("E1") = "Navire"
nav:
If Line < Nbl Then
Line = Line + 1
Range("E" & Line) = Navire
GoTo nav
End If

Range("A1:G" & Nbl).Select
Set mafeuille = ActiveWorkbook.ActiveSheet
mafeuille.Copy
ActiveWorkbook.SaveAs Filename:=mafeuille.name, FileFormat:=xlText, CreateBackup:=False
mafeuille.Activate
transf
End If
Else
Nb = WorksheetFunction.CountA(Columns("a:a"))
Nb = Nb + 1
If Nb = 3 Then
Nb = 1
End If
L1 = ("A" & Nb)
'MsgBox ("L1 " & L1)
CopieDatasToTemplate
GoTo suite
End If
End Sub
> Fluff
Pas de problème, je l'ai simplifier.
> Fluff
Pas de problème, je l'ai simplifié, il me faut ton adresse mail.
> Fluff
tyty voici mon mail : mimi_7690@hotmail.fr car je suis très très intéréssé par ton programme c'est ce que je cherche depuis un petit moment ! Merci d'avance
> tyty
Bonjour, tu m'envoyer ton fichier excel stp.
merci
> tyty
Pourrais je bénéficier du fichier permettant de concaténer plusieurs fichiers excel en un seul ?
Merci