Fichier en CSV - convertir données avec macro
Fermé
Julien99
-
9 févr. 2011 à 19:31
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 15 mars 2023 - 10 févr. 2011 à 16:47
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 15 mars 2023 - 10 févr. 2011 à 16:47
A voir également:
- Fichier en CSV - convertir données avec macro
- Fichier rar - Guide
- Convertir youtube en mp3 tuto - Guide
- Fichier host - Guide
- Fichier iso - Guide
- Macro logiciel - Télécharger - Organisation
2 réponses
Bonjour,
Si je comprends bien vous avez des fichiers de types [.csv] avec des point-virgult [ ; ] qui
sépare les données. Vous voulez transformer le [ ; ] par une virgule dans le fichier [ .CSV ].
Si j'ai bien compris, utiliser le code suivant pour modifier les fichiers [ .CSV ] visé.
Info
Si je comprends bien vous avez des fichiers de types [.csv] avec des point-virgult [ ; ] qui
sépare les données. Vous voulez transformer le [ ; ] par une virgule dans le fichier [ .CSV ].
Si j'ai bien compris, utiliser le code suivant pour modifier les fichiers [ .CSV ] visé.
Option Explicit
Const ForReading = 1, ForWriting = 2
Sub TransformerFichier()
Dim objFSO As Object, objFichier As Object
Dim Dossier As Variant, Ligne As Long, Boucle As Long
Dim strTexte As String, strRetour As String, Boite() As String
Dim Longueur As Long, Compteur As Long
Set objFSO = CreateObject("Scripting.FileSystemObject")
' Adapter le lecteur
ChDrive "C"
' Adapter le chemin d'accès
ChDir "C:\Document\Work"
Dossier = Dir("*.csv")
While Dossier <> ""
Set objFichier = objFSO.OpenTextFile(Dossier, ForReading)
Compteur = 1
While Not objFichier.AtEndOfStream
strTexte = objFichier.ReadLine
Longueur = Len(strTexte)
For Boucle = 1 To Longueur
If (Mid(strTexte, Boucle, 1) = ";") Then
strRetour = strRetour & ","
Else
strRetour = strRetour & Mid(strTexte, Boucle, 1)
End If
Next Boucle
ReDim Preserve Boite(Compteur)
Boite(Compteur - 1) = strRetour
strRetour = ""
Compteur = (Compteur + 1)
Wend
objFichier.Close
Set objFichier = objFSO.CreateTextFile(Dossier, ForWriting)
For Boucle = 0 To (UBound(Boite()) - 1)
objFichier.WriteLine Boite(Boucle)
Next Boucle
objFichier.Close
Dossier = Dir()
Wend
MsgBox "Traitement terminé."
End Sub
Info
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
15 mars 2023
2 712
10 févr. 2011 à 16:47
10 févr. 2011 à 16:47
Bonjour,
je dois les convertir puisqu'ils sont en CSV Oui d'accord mais les convertir en quoi? En dollars, en fichiers excel, en autre format ou avec un autre délimiteur comme le propose info?
Pour le cas ou vous souhaiteriez les transformer en .xls et que vous ne disposiez pas d'excel 2007, je vous propose ceci :
https://www.commentcamarche.net/faq/16109-excel-convertir-fichier-s-csv-xls
cordialement,
je dois les convertir puisqu'ils sont en CSV Oui d'accord mais les convertir en quoi? En dollars, en fichiers excel, en autre format ou avec un autre délimiteur comme le propose info?
Pour le cas ou vous souhaiteriez les transformer en .xls et que vous ne disposiez pas d'excel 2007, je vous propose ceci :
https://www.commentcamarche.net/faq/16109-excel-convertir-fichier-s-csv-xls
cordialement,