Flux rss
Collection CommentCaMarche.net
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Non résolu

[EXCEL]Concatener plusieurs fichiers

Paulo69, le samedi 4 novembre 2006 à 18:55:30
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
Répondre à Paulo69  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
JvDo, le dimanche 5 novembre 2006 à 22:49:24
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+
Répondre à JvDo

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
searancher, le jeudi 10 janvier 2008 à 13:51:41
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
Répondre à searancher

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Fxbrg, le jeudi 10 janvier 2008 à 14:00:44
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 :-)
Répondre à Fxbrg

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
simipi, le jeudi 7 février 2008 à 11:11:07
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 ?
Répondre à simipi

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
ttjeremy, le jeudi 14 février 2008 à 15:34:57
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
Répondre à ttjeremy

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
tyty, le vendredi 12 décembre 2008 à 19:11:29
Bonsoir ;

Le problème est-il résolu ou est-il tjs d'actualité, vu la date de demande?
Répondre à tyty

7


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
tyty, le vendredi 12 décembre 2008 à 19:34:18
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
Répondre à tyty

8


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
tyty, le vendredi 12 décembre 2008 à 19:44:49
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.
Répondre à tyty

9


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Fluff, le mardi 16 décembre 2008 à 15:38:09
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.
Répondre à Fluff

10


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
tyty, le mercredi 17 décembre 2008 à 18:48:57
Pas de problème, je l'ai simplifier.
Répondre à tyty

11


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
tyty, le mercredi 17 décembre 2008 à 18:52:23
Pas de problème, je l'ai simplifié, il me faut ton adresse mail.
Répondre à tyty

13


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 mimivba, le mercredi 17 décembre 2008 à 21:54:59
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
Répondre à mimivba
Effacer traces sur mac des doc word et excel (Résolu) Bonjour, lorsque je suis sur word ou excel , dans" fichiers" lorsque le menu se deroule , les 10 derniers docs consultés apparaissent. pareil pour excel . comment effacer ces traces svp? merci www.commentcamarche.net/forum/affich-8901674-effacer-traces-sur-mac-des-doc-word-et-excel
Excel : résultat = cellule de gauche (Résolu) bonjour, je rencontre un pb sur excel, mon fichier comporte plusieurs colonnes et par exemple : A B C D E F G H 12 2 14 3 11 5 16 16 (A1+B1) (C1-D1) (E1+F1) (=G1) si j'insère une colonne elle deviendra "nouvelle colonne" est H et en H1 je colle... www.commentcamarche.net/forum/affich-3498837-excel-resultat-cellule-de-gauche
[excel] Aide recherche (Résolu) Bonjour, Pour poursuivre sur un topic qui a été verouillé, j'ai besoin d'un coup de main pour excel. Le fichier qui pose probleme est ici: http://www.cijoint.fr/cjlink.php?file=cj200806/cij8j1VDiR.zip Je souhaite que quand je selectionne une... www.commentcamarche.net/forum/affich-6722724-excel-aide-recherche
Transformer un fichier Microsoft Excel (.xls) en PDFTransformer en fichier PDF un fichier Microsoft Excel (.xls) Rien de plus simple ! Ouvrez votre fichier *.xls avec OpenOffice.org Réglez éventuellement la mise en page par le menu Format / Page... Dès lors, 2 solutions pour transformer en... www.commentcamarche.net/faq/sujet-5734-transformer-un-fichier-microsoft-excel-xls-en-pdf
[MS-Dos] Ecrire dans un fichier texte en batchPour écrire dans un fichier texte, il suffit d'utiliser une redirection ">" :echo texte_à_ecrire > fichier_de_sortie.txtPour écrire à la fin d'un texte existant (concaténation) :echo "ecriture a la fin du fichier ">> fichier_de_sortie.txt www.commentcamarche.net/faq/sujet-2695-ms-dos-ecrire-dans-un-fichier-texte-en-batch
Eviter les doublons dans ExcelEviter les doublons lors d'un encodage dans un colonne de feuille excel: prendre le format conditionnel sur le première cellule sous les titres (par ex A2) choisir la formule suivante : =NB.SI($A$2:$A$21;A2)>1 mettre là la couleur de fond... www.commentcamarche.net/faq/sujet-1258-eviter-les-doublons-dans-excel
Association recherche aide pour macro Excel (Résolu)Bonjour, En carge d'une partie de la gestion d'une association, je suis confronté à un problème que je ne saurais résoudre sans une aide... Nous avons deux fichier Excel distincts FichierA: qui contient les fiches adhérants FichierB: qui... www.commentcamarche.net/forum/affich-3941403-association-recherche-aide-pour-macro-excel
Conversion de fichier (Résolu)bonjour, j'ai une question comment peut on convertir ou importer vers excel un fichier texte structuré avec des séparateur de champs de la forme "l"? Explications : j'ai une base de données sur un site internet qu'il est possible... www.commentcamarche.net/forum/affich-2206264-conversion-de-fichier
Copie des formules excel (Résolu)Bonjour, je travaille sur excel un fichier inventaire avec plusieur feuille de calcul je ne sais pas pourquoi maintenant ( je pense à une mauvaise manipulation) je ne peux plus copier les formules que j'introduit exemple : dans une celule je crée... www.commentcamarche.net/forum/affich-6660749-copie-des-formules-excel
Télécharger Avant DVD/DivX PlayerLe format DivX est le format de compression par excellence des fichiers DVDs. Il permet d'obtenir le tiers de la taille initiale du fichier vidéo DVD. Artisan DVD & DivX Player est un lecteur destiné au format DVD et DivX avec la technologie... www.commentcamarche.net/telecharger/telecharger-34056303-avant-dvd-divx-player
Fichier CSVFormat CSV Un fichier CSV est un fichier tableur, contenant des données sur chaque ligne séparés par un caractère de séparation (généralement une virgule ou un point-virgule). Comment lire un fichier CSV ? Il peut être lu avec un tableur tel que... www.commentcamarche.net/contents/fichier/csv.php3