Fusionner plusieurs fichier csv

sylvain77

XLDnaute Nouveau
Bonjour,

Débutant sur vba, j'aurais besoin d'un coup de main. Voilà
J'ai plusieurs fichiers csv que j'aimerais fusionner en un fichier excel.
Mais après avoir passé plusieurs heures à chercher, je dois me résoudre à demander de l'aide.
Merci
 

sylvain77

XLDnaute Nouveau
Salut Kiki

Merci pour ton aide, mais ça ne prends pas en compte les .csv.
Après avoir changer l'extension en .txt j'obtiens cette erreur si je prends le fichier xls et non lorsque je prends le fichier xlsb, ?

upload_2017-6-28_15-26-29.png

upload_2017-6-28_15-22-27.png
 

zebanx

XLDnaute Accro
Bjr Sylvain 77

J'utilise ce code bien pratique.
Il suffit de mettre tous tes csv avec le fichier excel contenant cette macro avant de l'exécuter.
En changant le code *.cs* par *.xl* on charge sinon les xls.

cdlt
thierry

------
Sub CsvConsolider()
' Insère dans ce fichier tous les CSV du répertoires + format xls directement
ChDir ActiveWorkbook.Path
Set classeurMaitre = ActiveWorkbook
compteur = 1
nf = Dir("*.cs*")
Do While nf <> ""
If nf <> classeurMaitre.Name Then
Workbooks.Open Filename:=nf
For k = 1 To Sheets.Count
Sheets(k).Copy After:=classeurMaitre.Sheets(classeurMaitre.Sheets.Count)
'classeurMaitre.Sheets(classeurMaitre.Sheets.Count).Name = "" & compteur
compteur = compteur + 1
Next k
Workbooks(nf).Close False
End If
nf = Dir
Loop
End Sub
 

sylvain77

XLDnaute Nouveau
Bonjour Zebanx,
Tout d'abord merci pour ta réponse, mais ça réponds à moitié à ce que j'aimerais.
La macro importe bien tous les fichiers csv dans un classeur, mais ne les fusionnes pas en un seul.
Chaque fichier se place dans un onglet.

Cdt
 

zebanx

XLDnaute Accro
Bjr sylvain77.

Une macro pour transférer dans un onglet RECAP sur xls 2003 une fois que les CSV sont importés.
A moduler sur la dernière colonne (pour moi c'est j).
---
Sub transfert()
'Macro Dan pour CecileCosma - 20/09/12
Dim dlgR, dlgi As Double
Dim i As Byte
Application.ScreenUpdating = False
Sheets("Recap").Select
Rows("2:65536").Delete Shift:=xlUp
On Error GoTo FIN
For i = 1 To Worksheets.Count
If UCase(Sheets(i).Name) <> "RECAP" Then
dlgR = Sheets("RECAP").Range("a" & Rows.Count).End(xlUp).Row
With Sheets(i)
dlgi = .Range("a" & Rows.Count).End(xlUp).Row

.Range("a2:j" & dlgi).Copy Sheets("RECAP").Range("a" & dlgR + 1)
End With
End If
Next
FIN:

End Sub
 

florian25

XLDnaute Nouveau
bonjour, merci pour le code, j'ai un soucis, pour ma part je doit récupérer tout les .csv mais j'aimerais les renommer directement lors du transfert ?
j'ai fais une macro en apprentissage afin de les renommer, mais c'est une mauvaise solution étant donné que mes fichiers n'auront jamais le même nom.
si qq à une idée je suis preneur.
 

Discussions similaires

Réponses
9
Affichages
385

Statistiques des forums

Discussions
311 737
Messages
2 082 036
Membres
101 878
dernier inscrit
1475214