Boostez vos compétences Excel avec notre communauté !
Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !
Bonjour Eric,ce que je trouve bizarre dans tes fichiers c'est que tu as les codes 5C "\", 3F "?" alors que le code ANSI pour ¥ est A5
Si je met ce code dans un de tes fichier, je retrouve bien ¥ en ouvrant le csv sur excel.
Tu pourrais essayer de mettre ta colonne (avec les ¥) par .Value = .Text, le A5 sera conservé en .csv.
eric
Bonjour dysorthographie,Bonjour,
Dans notepad++ par défaut l'encoding est en UTF8 suivant la Provence il affiche ¥ ou?
Regards avec note pad ou Word pad ou passes notepad++ en AISSI!
Le ? N'est pas une conversion du ¥ mais bien une substitution d'un code ASCII non reconnu !
Bonjour Docmarti,Bonjour g.milano, le Forum.
Dans la ligne de code suivante tu as 3 erreurs.
VB:2. Utilise NumberFormat au lieu de NumberFormatLocal Pour savoir quoi mettre dans la propriete NumberFormat Monetaire, mieux vaut se fier a Excel qu'a nos intuitions. Donc sur la feuille utilise Format de cellule et choisis Monetaire comme Format de nombre d'une cellule. Ensuite va dans VBA pour recuperer la propriete Numberformat recommandee par Excel pour cette cellule. [CODE]LeFormat = Cells(1, 1).NumberFormat
For Each c In ActiveSheet.Range("D2:D" & ActiveSheet.UsedRange.Rows.Count)
c.Value = "¥" & Left(c.Value, Len(c.Value) - 3) & "," & Right(c.Value, 3)
Next c
toto = AscW(Range("A1").Value)
titi = Asc(Range("A1").Value)
MsgBox toto & " ---> " & ChrW(toto)
MsgBox titi & " ---> " & Chr(titi)
tata = Split(StrConv(Range("A1").Value, vbUnicode), Chr(0))
MsgBox tata(0)
Bonjour Docmarti,
Le passage de NumberFormatLocal a NumberFormat fait lui aussi apparaître des "#"
ActiveWorkbook.SaveAs ListDir & "タグリスト" & toujitsu & "." & i & ".csv", FileFormat:=xlCSV, AddToMru:=False
[CODE=vb]ActiveWorkbook.SaveAs ListDir & "タグリスト" & toujitsu & "." & i & ".csv", FileFormat:=xlCSV, Local:=True, AddToMru:=False
Sub CsvUtf8()
Const Delim As String = "," '<-- virgule ou point virgule
Dim Ash As Worksheet: Set Ash = ActiveSheet
Ash.Columns("D").NumberFormatLocal = "¥#,##0 " ' <-- Y mettre ce qu'il faut pour afficher le Yen Monétaire
Dim Rows As Long
Rows = Ash.Cells.Find(What:="*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
Dim Cols As Long
Cols = Ash.Cells.Find(What:="*", SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
Dim FileName As String
FileName = ListDir & "\Sample.csv" '<-- file name
Dim I As Long, J As Long
Dim Adobj As Object
Set Adobj = CreateObject("ADODB.Stream")
Adobj.Type = 2 'adTypeText'
Adobj.Charset = "utf-8"
Adobj.Open
Dim Vcells() As Variant
ReDim Vcells(1 To Cols)
For I = 1 To Rows
For J = 1 To Cols
Vcells(J) = Ash.Cells(I, J).Text
Next
Adobj.WriteText Join(Vcells, Delim), 1 'adWriteLine
Next
Adobj.SaveToFile FileName, 2 'adSaveCreateOverWrite
Set Adobj = Nothing
MsgBox "Exporté dans " & FileName
End Sub
Bonjour Docmarti. L'ajout de Local:=True change juste les "$" en "?".Dans le code ci-dessus, il manque le parametre Local:=True. Tu dois toujours mettre le parametre Local:=True sauf bien sur si tu desires obtenir des valeurs aux formats americains. Dans ce cas-la, il faut mettre Local:=False qui est la valeur par defaut.VB:ActiveWorkbook.SaveAs ListDir & "タグリスト" & toujitsu & "." & i & ".csv", FileFormat:=xlCSV, AddToMru:=False
bonjour et merci pour votre code fanch55. J'obtiens bien des "¥" dans le CSV, MAIS, les valeurs ont perdu leurs 000 et une nouvelle colonne de 0 s'est imbriqués avant la colonne suivante. Je pense qu'il s'agit du séparateur des milliers qui est le même que celui de votre délimiteur.Salut à tous, je suis surpris qu'en excel 2010 on ne puisse spécifier le format xlCSVUTF8, mais effectivement j'ai vu dans plusieurs forums que cela aboutissait à une erreur 1004 .
Je propose une conversion par Adodb à tester
Sub CsvUtf8()
Const Delim As String = "," '<-- virgule ou point virgule
Const Mon As String = "¥" '<-- Symbole du Yen dans le code local
Dim Ash As Worksheet: Set Ash = ActiveSheet
Ash.Columns("D").NumberFormatLocal = Mon & "#,##0" ' <-- D'après le premier fichier fourni
Dim Rows As Long
Rows = Ash.Cells.Find(What:="*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
Dim Cols As Long
Cols = Ash.Cells.Find(What:="*", SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
Dim FileName As String
FileName = ListDir & "\Sample.csv" '<-- file name
Dim I As Long, J As Long
Dim Adobj As Object
Set Adobj = CreateObject("ADODB.Stream")
Adobj.Type = 2 'adTypeText'
Adobj.Charset = "utf-8"
Adobj.Open
Dim Vcells() As Variant
ReDim Vcells(1 To Cols)
For I = 1 To Rows
For J = 1 To Cols
Vcells(J) = Ash.Cells(I, J).Text
If InStr(Vcells(J), Mon) _
Then Vcells(J) = """" & Vcells(J) & """"
Next
Adobj.WriteText Join(Vcells, Delim), 1 'adWriteLine
Next
Adobj.SaveToFile FileName, 2 'adSaveCreateOverWrite
Set Adobj = Nothing
MsgBox "Exporté dans " & vbLf & FileName
End Sub
We use cookies and similar technologies for the following purposes:
Est ce que vous acceptez les cookies et ces technologies?
We use cookies and similar technologies for the following purposes:
Est ce que vous acceptez les cookies et ces technologies?