Bonjour,

J'essai d'enregistrer une fichier en CSV via une macro qui réalise une série d'action sur un fichier excel de 500 000 ligne.

Dans les paramètres régionaux le caractère de séparation est bien le ; mais quand j'enregistre avec la macro j'ai automatiquement des virgules. quand j'enregistre en manuel j'ai bien les ;

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
ActiveWorkbook.Sheets("test").Copy
ActiveSheet.SaveAs Filename:="C:\Users\blabla\Documents\referentielProducteurs-" + date_du_jour + "-01.csv", FileFormat:=xlCSVMSDOS, CreateBackup:=True, Local:=True
ActiveSheet.Parent.Close savechanges:=False
J'ai donc utilisé un autre bout de code pour avoir des ";" là je n'ai pas de problème au niveau des points virgules par contre j'ai des champs code postaux que je passe sur 5 chiffre avec la fonction NumberFormat = "00000" quand je l'enregistre avec la première méthode pas de problème mais avec la deuxième ça ne tiens pas compte du NumberFormat

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
Const strSéparateur As String = ";"
f = FreeFile
 
Tableau = ActiveWorkbook.Sheets("test").UsedRange
Open "C:\Users\blabla\Documents\referentielProducteurs-" + date_du_jour + "-03.csv" For Output As #f
For i = LBound(Tableau, 1) To UBound(Tableau, 1)
    ligne = Tableau(i, LBound(Tableau, 2))
    For j = LBound(Tableau, 2) + 1 To UBound(Tableau, 2)
        ligne = ligne & strSéparateur & Tableau(i, j)
    Next
    Print #f, ligne
Next
Close f
que faire?