Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Fusionner plusieurs fichier csv

  • Initiateur de la discussion Initiateur de la discussion sylvain77
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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, ?


 
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
 
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
 
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
 
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.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
15
Affichages
593
D
  • Question Question
2
Réponses
28
Affichages
2 K
Deleted member 441486
D
Réponses
0
Affichages
141
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…