VBA - Enregistrer en CSV montants format monétaire français ( et pas US !)
1 réponse
Vital
bonjour,
Dans le fichier généré par ma macro, les montants sans centime
sont correctement générés mais dès que j'ai des centimes, VBA utilise le
format américain des numériques :
( par exemple 512.58 alors que j'attends 512,58 ).
Pourtant quand j'enregistre la feuille manuellement en format CSV, excel me
donne bien 512,58 !
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Frédéric Sigonneau
Bonjour,
Essaye ce genre de macro qui te permet de contrôler précisément ce que tu fais :
'===================== Sub test() SaveAsCSV "d:essai.csv" End Sub
Sub SaveAsCSV(FileName$) 'steve, mpfe 'sauvegarde la feuille active en fichier texte délimité selon 'séparateur au choix (ici ";") Dim Range As Object, Line As Object, Cell As Object Dim StrTemp As String Dim Separateur As String
Separateur = ";" Set Range = ActiveSheet.UsedRange Open FileName For Output As #1 For Each Line In Range.Rows StrTemp = "" For Each Cell In Line.Cells StrTemp = StrTemp & CStr(Cell.Text) & Separateur Next Print #1, Left(StrTemp, Len(StrTemp) - 1) Next Close End Sub '===================== FS --- Frédéric Sigonneau [MVP Excel - né un sans-culottide] Gestions de temps, VBA pour Excel : http://frederic.sigonneau.free.fr Si votre question sur Excel est urgente, évitez ma bal !
bonjour,
Dans le fichier généré par ma macro, les montants sans centime sont correctement générés mais dès que j'ai des centimes, VBA utilise le format américain des numériques : ( par exemple 512.58 alors que j'attends 512,58 ).
Pourtant quand j'enregistre la feuille manuellement en format CSV, excel me donne bien 512,58 !
je pense qu'il doit bien y avoir le moyen de lui dire de générer le fichier avec le format monétaire français mais comment ?
merci de ton aide
Bonjour,
Essaye ce genre de macro qui te permet de contrôler précisément ce que tu fais :
'===================== Sub test()
SaveAsCSV "d:essai.csv"
End Sub
Sub SaveAsCSV(FileName$)
'steve, mpfe
'sauvegarde la feuille active en fichier texte délimité selon
'séparateur au choix (ici ";")
Dim Range As Object, Line As Object, Cell As Object
Dim StrTemp As String
Dim Separateur As String
Separateur = ";"
Set Range = ActiveSheet.UsedRange
Open FileName For Output As #1
For Each Line In Range.Rows
StrTemp = ""
For Each Cell In Line.Cells
StrTemp = StrTemp & CStr(Cell.Text) & Separateur
Next
Print #1, Left(StrTemp, Len(StrTemp) - 1)
Next
Close
End Sub
'=====================
FS
---
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://frederic.sigonneau.free.fr
Si votre question sur Excel est urgente, évitez ma bal !
bonjour,
Dans le fichier généré par ma macro, les montants sans centime
sont correctement générés mais dès que j'ai des centimes, VBA utilise le
format américain des numériques :
( par exemple 512.58 alors que j'attends 512,58 ).
Pourtant quand j'enregistre la feuille manuellement en format CSV, excel me
donne bien 512,58 !
Essaye ce genre de macro qui te permet de contrôler précisément ce que tu fais :
'===================== Sub test() SaveAsCSV "d:essai.csv" End Sub
Sub SaveAsCSV(FileName$) 'steve, mpfe 'sauvegarde la feuille active en fichier texte délimité selon 'séparateur au choix (ici ";") Dim Range As Object, Line As Object, Cell As Object Dim StrTemp As String Dim Separateur As String
Separateur = ";" Set Range = ActiveSheet.UsedRange Open FileName For Output As #1 For Each Line In Range.Rows StrTemp = "" For Each Cell In Line.Cells StrTemp = StrTemp & CStr(Cell.Text) & Separateur Next Print #1, Left(StrTemp, Len(StrTemp) - 1) Next Close End Sub '===================== FS --- Frédéric Sigonneau [MVP Excel - né un sans-culottide] Gestions de temps, VBA pour Excel : http://frederic.sigonneau.free.fr Si votre question sur Excel est urgente, évitez ma bal !
bonjour,
Dans le fichier généré par ma macro, les montants sans centime sont correctement générés mais dès que j'ai des centimes, VBA utilise le format américain des numériques : ( par exemple 512.58 alors que j'attends 512,58 ).
Pourtant quand j'enregistre la feuille manuellement en format CSV, excel me donne bien 512,58 !