Macro pour Convertir .XLS en .Csv puis .Csv en .txt

roidurif

XLDnaute Occasionnel
Bonjour,

J'ai fait une macro qui permet de convertir un fichier .xls en .csv

Ensuite je souhaite ouvir par exemple le fichier .csv via "Bloc note" pour l'enregistrer en .txt format UTF8.

Je sais pas si c'est possible.

Merci bcp



Dim NomCSV, NumCHT, LibCHT, VPath

NumCHT = "Contrat"
LibCHT = "CSV"
VPath = "C:\"
NomCSV = NumCHT & " " & LibCHT & ".csv"
ActiveWorkbook.SaveAs Filename:=VPath & NomCSV, FileFormat:=xlCSV, _
CreateBackup:=False, Local:=True


End Sub
 

Pièces jointes

  • Macro controles donnees obligatoire_V.0.3.zip
    39.9 KB · Affichages: 330

roidurif

XLDnaute Occasionnel
Re : Macro pour Convertir .XLS en .Csv puis .Csv en .txt

Bonjour,

J'ai fait une macro qui permet d'enregistrer l'onglet "feuil1", .xls en .csv
Par contre, il me mets des virgules (,) au lieu de point virgule (;) pour delimiter.

Comment avoir des point virgule svp??

Merci

Code:
Sub SaveAsCSV()
    Sheets("Feuil1").Select
    ChDir "C:\"
    ActiveWorkbook.SaveAs FileFormat:=xlCSV
End Sub
 
Dernière édition:

roidurif

XLDnaute Occasionnel
Re : Macro pour Convertir .XLS en .Csv puis .Csv en .txt

Merci,

je comprends pas marche cette macro avec la mienne

J'ai besoin de transformer mon fichier excel en csv (séparateur point virgule) pour en suite le l'ouvrir avec bloc note pour l'enregistrer en txt (codage UTF8).

C'est pour transferer ce fichier dans un système informatique.

Si tu as mieux a me proposer, je suis preneur

cdt
 

bérylion

XLDnaute Occasionnel
Re : Macro pour Convertir .XLS en .Csv puis .Csv en .txt

Salut

bin, ce code fait "persque" tout :

Code:
sub test
Dim Plage As Object, Ligne As Object, Cellule As Object, Temp As String, Separateur As String

Separateur = ";"

ChDrive "C"
ChDir "C:\Documents and Settings\username\Bureau"

Sheets("tafeuille").Select

Set Plage = ActiveSheet.UsedRange

Open "tonfichiertexte.txt" For Output As #1

For Each Ligne In Plage.Rows
Temp = ""
For Each Cellule In Ligne.Cells
Temp = Temp & CStr(Cellule.Text) & Separateur
Next
Print #1, Temp
Next

Close
end sub

j'ai dit "presque", paske c'est du codage ANSI et pas UTF-8...

je regarderai en détail ce soir, maintenant je dois me sauver.

;)
 

roidurif

XLDnaute Occasionnel
Re : Macro pour Convertir .XLS en .Csv puis .Csv en .txt

Bonjour

J'ai fais cette macro, mais je rencontre des problèmes lors de la sortie du fichier convertion du txt en UTF-8.

J'ai des caracteres non reconnu qui ressort par des petits carrés pour les accents,....

Alors que si je le fesais manuellement, c a d convertir xls en cvs (separateur point virgule) puis via bloc note ouvrir le fichier.cvs et l'enregistrer en txt (UTF-8), je n aurais pas se pb

Quelqu'un peux m aider SVP

Merci


[Code:]Sub test()
Dim Plage As Object, Ligne As Object, Cellule As Object, Temp As String, Separateur As String

Separateur = ";"

ChDrive "C"
ChDir "C:\Documents and Settings\Administrateur\Bureau"

Sheets("Feuil1").Select

Set Plage = ActiveSheet.UsedRange

Open "tonfichiertexte.txt" For Output As #1

For Each Ligne In Plage.Rows
Temp = ""
For Each Cellule In Ligne.Cells
Temp = Temp & CStr(Cellule.Text) & Separateur
Next
Print #1, Temp
Next
Close
Call csvUTFHUIT
End Sub

Sub Encode(ByVal sPath$, Optional SetChar$ = "UTF-8")
With CreateObject("ADODB.Stream")
.Open
.LoadFromFile sPath ' Loads a File
.Charset = SetChar ' sets stream encoding (UTF-8)
.SaveToFile sPath, 2 ' adSaveCreateOverWrite
.Close
End With
End Sub

Sub csvUTFHUIT()
Encode "C:\Documents and Settings\Administrateur\Bureau\tonfichiertexte.txt", "UTF-8"
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 097
Messages
2 085 257
Membres
102 842
dernier inscrit
Miguelita