[EXCEL]Concatener plusieurs fichiers
Paulo69
Messages postés
8
Statut
Membre
-
Kelte -
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
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 -
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 :-) -
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 -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
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 -
-
-
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- 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. - 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-
Je me répond à moi-même ;
Il faut mettre en commentaire transf, car il sert à envoyer via outlook le résultat sous forme Ascii de l'export de la concaténation des données.
Il faut aussi se positionner par défault sur la sheetZ, le résultat sera disposé sur la sheet1.
C'est fini.
Merci de votre attention. -
Tyty, pourrais-tu m'envoyer ton fichier Excel. Je ne connais pas bien encore VBA et je vais en avoir besoin pour faire le même type de traitement de fichiers. Typiquement je dois concaténer plus de 1000 fichiers en un seul (fichiers PRN comportant une vingtaine de lignes de commentaires utiles suivies de colonnes comprenant des données). Le but étant ensuite de traiter ce fichier avec Mathcad pour faire de l'analyse de données. Il faudrait que ce script VBA aille chercher les fichiers tout seul dans un répertoire. Les commentaires présents en en-tête de chacun des fichiers originaux devraient me permettre ensuite dans Mathcad de traiter les bonnes données entre elles.
Merci pour ton aide. -
-
-
-