Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
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 !
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
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, ?
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.
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:
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