Convertir plusieurs fichiers CSV en Xlsx
Fermé
HEMIYELY
Messages postés
61
Date d'inscription
mercredi 10 mai 2017
Statut
Membre
Dernière intervention
25 janvier 2022
-
Modifié le 25 oct. 2021 à 13:10
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 - 26 oct. 2021 à 11:02
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 - 26 oct. 2021 à 11:02
A voir également:
- Csv to xlxs
- Qwerty to azerty - Guide
- Video to video - Télécharger - Conversion & Codecs
- Majuscule to minuscule - Guide
- Mb to mo ✓ - Forum Matériel & Système
- Jpg to pdf - Télécharger - PDF
3 réponses
jee pee
Messages postés
40616
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
2 janvier 2025
9 474
Modifié le 25 oct. 2021 à 13:10
Modifié le 25 oct. 2021 à 13:10
Bonjour,
Pourquoi ne pas avoir essayé cette solution : https://forums.commentcamarche.net/forum/affich-37383583-fusionner-des-fichers-csv#8
Le script indiqué fusionne bien des CSV et en modifiant le SKIP=1 en SKIP=14 il devrait correspondre à tes fichiers.
PS : Pour la mise en forme des sources, au dessus de la zone d'édition de tes messages, il y a des icônes pour l'enrichissement du texte. Celle qui a cet aspect
Un petit tuto là : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Pourquoi ne pas avoir essayé cette solution : https://forums.commentcamarche.net/forum/affich-37383583-fusionner-des-fichers-csv#8
Le script indiqué fusionne bien des CSV et en modifiant le SKIP=1 en SKIP=14 il devrait correspondre à tes fichiers.
PS : Pour la mise en forme des sources, au dessus de la zone d'édition de tes messages, il y a des icônes pour l'enrichissement du texte. Celle qui a cet aspect
<> ▼permet d'appliquer au code, suivant une liste de valeurs, le format correspondant à sa nature.
Un petit tuto là : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
25 oct. 2021 à 14:34
25 oct. 2021 à 14:34
Bonjour,
voir ceci qui est opérationnel:
https://www.mrexcel.com/board/threads/vba-convert-csv-to-xlsx.1056318/
voir ceci qui est opérationnel:
https://www.mrexcel.com/board/threads/vba-convert-csv-to-xlsx.1056318/
Option Explicit Sub ConvertCSVToXlsx() Dim myfile As String Dim oldfname As String, newfname As String Dim workfile Dim folderName As String Application.DisplayAlerts = False Application.ScreenUpdating = False ' Capture name of current file myfile = ActiveWorkbook.Name ' Set folder name to work through folderName = "C:\Users\LePivert\Documents\Nouveau dossier\" 'adapter chemin du dossier où se trouve les CSV ' Loop through all CSV filres in folder workfile = Dir(folderName & "*.CSV") Do While workfile <> "" ' Open CSV file Workbooks.Open Filename:=folderName & workfile ' Capture name of old CSV file oldfname = ActiveWorkbook.FullName ' Convert to XLSX newfname = folderName & Left(ActiveWorkbook.Name, Len(ActiveWorkbook.Name) - 4) & ".xlsx" ActiveWorkbook.SaveAs Filename:=newfname, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False ActiveWorkbook.Close ' Delete old CSV file 'Kill oldfname Windows(myfile).Activate workfile = Dir() Loop Application.DisplayAlerts = True Application.ScreenUpdating = True End Sub
HEMIYELY
Messages postés
61
Date d'inscription
mercredi 10 mai 2017
Statut
Membre
Dernière intervention
25 janvier 2022
Modifié le 25 oct. 2021 à 15:09
Modifié le 25 oct. 2021 à 15:09
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
>
HEMIYELY
Messages postés
61
Date d'inscription
mercredi 10 mai 2017
Statut
Membre
Dernière intervention
25 janvier 2022
25 oct. 2021 à 15:49
25 oct. 2021 à 15:49
il doit y avoir une erreur dans les captures d'écran!
celle du haut est un xlsx et celle du bas un csv!
celle du haut est un xlsx et celle du bas un csv!
HEMIYELY
Messages postés
61
Date d'inscription
mercredi 10 mai 2017
Statut
Membre
Dernière intervention
25 janvier 2022
>
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
25 oct. 2021 à 17:42
25 oct. 2021 à 17:42
Non, le fichier de la capture d'écran et bien en cvs et la capture 2 en xlsx (après la macro).
jee pee
Messages postés
40616
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
2 janvier 2025
9 474
>
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
25 oct. 2021 à 17:49
25 oct. 2021 à 17:49
il est vraisemblable que la macro ne fait pas la même chose que l'ouverture d'un fichier .cvs qui est converti en colonnes sur les ; on dirait que la macro effectue une coupure sur la virgule
Yoyo01000
Messages postés
1639
Date d'inscription
samedi 2 février 2019
Statut
Membre
Dernière intervention
7 mars 2022
167
>
HEMIYELY
Messages postés
61
Date d'inscription
mercredi 10 mai 2017
Statut
Membre
Dernière intervention
25 janvier 2022
25 oct. 2021 à 17:50
25 oct. 2021 à 17:50
Bonsoir,
c'est du .csv, à partir de la ligne 15 sur la première copie d'écran ?!
c'est du .csv, à partir de la ligne 15 sur la première copie d'écran ?!
Utilisateur anonyme
25 oct. 2021 à 18:34
25 oct. 2021 à 18:34
Bonjour,
Excel utilise par défaut la virgule comme séparateur de colonnes. Or, les fichiers d'origine utilisent le point virgule.
En modifiant la macro comme ceci on automatise la répartition des données dans des colonnes avant d'enregistrer le fichier en xls :
Excel utilise par défaut la virgule comme séparateur de colonnes. Or, les fichiers d'origine utilisent le point virgule.
En modifiant la macro comme ceci on automatise la répartition des données dans des colonnes avant d'enregistrer le fichier en xls :
Sub CSVtoXLS() 'UpdatebyExtendoffice20170814 Dim xFd As FileDialog Dim xSPath As String Dim xCSVFile As String Dim xWsheet As String Application.DisplayAlerts = False Application.StatusBar = True xWsheet = ActiveWorkbook.Name Set xFd = Application.FileDialog(msoFileDialogFolderPicker) xFd.Title = "Select a folder:" If xFd.Show = -1 Then xSPath = xFd.SelectedItems(1) Else Exit Sub End If If Right(xSPath, 1) <> "\" Then xSPath = xSPath + "\" xCSVFile = Dir(xSPath & "*.csv") Do While xCSVFile <> "" Application.StatusBar = "Converting: " & xCSVFile Workbooks.Open Filename:=xSPath & xCSVFile ' 'Répartir les données dans des colonnes en utilisant le séparateur ";" ActiveWorkbook.ActiveSheet.Columns("A:A").Select Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _ TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _ Semicolon:=True, Comma:=False, Space:=False, Other:=False ActiveWorkbook.SaveAs Replace(xSPath & xCSVFile, ".csv", ".xls", vbTextCompare), xlNormal ActiveWorkbook.Close Windows(xWsheet).Activate xCSVFile = Dir Loop Application.StatusBar = False Application.DisplayAlerts = True End Sub
HEMIYELY
Messages postés
61
Date d'inscription
mercredi 10 mai 2017
Statut
Membre
Dernière intervention
25 janvier 2022
26 oct. 2021 à 09:00
26 oct. 2021 à 09:00
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
>
HEMIYELY
Messages postés
61
Date d'inscription
mercredi 10 mai 2017
Statut
Membre
Dernière intervention
25 janvier 2022
26 oct. 2021 à 11:02
26 oct. 2021 à 11:02
Quand tu le fais manuellement sur un fichier , obtiens-tu le résultat escompté?
https://fr.extendoffice.com/documents/excel/3165-how-to-import-csv-file-into-worksheet.html
Si oui sers-toi de l'enregistreur de macro. Ensuite tu intègres dans ta boucle la macro ainsi obtenue.
@+
https://fr.extendoffice.com/documents/excel/3165-how-to-import-csv-file-into-worksheet.html
Si oui sers-toi de l'enregistreur de macro. Ensuite tu intègres dans ta boucle la macro ainsi obtenue.
@+
25 oct. 2021 à 13:21
Merci pour votre réponse. Cependant, dans le lien, je ne vois pas de code VBA à essayer. Est-ce une erreur?
Merci beaucoup
25 oct. 2021 à 13:26
Ce n'est pas du VBA, c'est un script Windows
25 oct. 2021 à 13:30
Et du coup où dois-je coller ce scripte?
Modifié le 25 oct. 2021 à 13:34
Modifié le 25 oct. 2021 à 13:47