XL 2010 Symbole monétaire changé en point d'interrogation dans fichier CSV

g.milano

XLDnaute Junior
Bonjour

Jusqu’à hier, je pouvais enregistrer des fichiers CSV avec le symbole monétaire yen (¥) ; mais aujourd'hui les symboles sont remplacés par des points d'interrogation. Je ne me souviens pas avoir trifouillé quoi que ce soit dans mes réglages.
J'ai ouvert un fichier ok créé hier (les ¥ y sont toujours) et je l'ai sauvegardé de nouveau : les "¥" sont devenus des "?" dans le nouveau fichier (donc c'est bien un problème logiciel/réglage)

Je vous joins les 2 fichiers, des fois que certains d'entre vous puissent y trouver un indice ou quelque chose.
タグリスト2020-05-20.1.csv (fichier d'hier ok)
タグリスト2020-05-20.1.1.csv (fichier d'hier réenregistrer aujourd'hui et buggé)

Pour information, le fichier CSV est utilisé pour imprimer des étiquettes (donc le prix en format "¥#,##0" est nécessaire) via un logiciel tier (le fichier y est glisser-déposé)

Merci pour votre aide m(_ _)m.

PS : tiens, on ne peut pas joindre de fichier CSV o0!? (je me suis permis de leur rajouter une extension ".xls" ; n'oubliez-pas de les renommer avant de les ouvrir)
 

Pièces jointes

  • タグリスト2020-05-19.1.csv.xls
    8.2 KB · Affichages: 31
  • タグリスト2020-05-20.1.1.csv.xls
    290 bytes · Affichages: 18

g.milano

XLDnaute Junior
Bien, bien, on avance,
Je n'avais pas retenu que la virgule était votre séparateur de millier.
Sur la base des fichiers initiaux fournis :
Bonjour fanch55

Malheureusement, cette modification ne change pas le problème : le séparateur des milliers est toujours considéré comme un délimiteur.

Une petite remarque : dans votre commande Vcells(J) = """" & Vcells(J) & """", il ne devrait pas y avoir une concaténation avec un J+1 ou J-1 ? ou bien un left(vcell,1) a la place du INSTR ? Le symbole ¥ étant forcement le premier caractère de la colonne...

J'aurais une autre petite question sur votre code. Pourquoi ne pas utiliser de simples Ash.Rows.Count & Ash.Colunms.Count plutôt qu'une fonction Find ? (mon fichier sera toujours un bloc de données sans cellule vide, donc c'est plus léger, non ?)

Merci pour tous vos efforts :)
 

Pièces jointes

  • SampleBis.zip
    317 bytes · Affichages: 6
Dernière édition:

fanch55

XLDnaute Barbatruc
Bonjour du jour,
Étonnant,
avec notepad++ ou le bloc-note
quand j'édite le Csv produit , j'ai le fichier ci-dessous :

1590573109919.png


Le samplebis que vous avez joint ressemble au produit du premier code .
Une petite remarque : dans votre commande Vcells(J) = """" & Vcells(J) & """", il ne devrait pas y avoir une concaténation avec un J+1 ou J-1 ?
Non, si on détecte un Yen dans la variable, on enclose celle-ci par des Quotes, ce qui permet de ne pas prendre en compte la virgule "enclosée" dans tous bon lecteur de Csv .
C'est par ailleurs le cas des fichiers que vous avez fourni au post#1
1590573964477.png
1590574035779.png

ou bien un left(vcell,1) a la place du INSTR ? Le symbole ¥ étant forcement le premier caractère de la colonne...
Dans ce cas précis, oui, on peut remplacer le Instr par un left, mais cela ne fait rien vraiment gagner.

J'aurais une autre petite question sur votre code. Pourquoi ne pas utiliser de simples Ash.Rows.Count & Ash.Colunms.Count plutôt qu'une fonction Find ? (mon fichier sera toujours un bloc de données sans cellule vide, donc c'est plus léger, non ?)
On fait un find pour trouver la dernière colonne et ligne renseignées
pour éviter de parcourir les 1 048 576 lignes (Ash.Rows.Count) et 16 384 colonnes (Ash.Colunms.Count) natives d'un fichier excel .
 

g.milano

XLDnaute Junior
Bonjour du jour,
Étonnant,
avec notepad++ ou le bloc-note
quand j'édite le Csv produit , j'ai le fichier ci-dessous :

Regarde la pièce jointe 1068427
Dans mon notepad, les guillemets n'apparaissent pas (dans aucun des samples issus de votre macro)
Mais j'en retrouve effectivement dans les fichiers précédents (lors des tests "format local" proposés par Docmarti)
Décidément, quand ça veut pas, ça veut pas...:(


Merci pour vos autres précisions (comme quoi un code plus court à l’écriture est finalement plus long à l’exécution :rolleyes: )
 

fanch55

XLDnaute Barbatruc
Re, pour voir, j'ai réinstallé exel 2010 (pro), je me suis mis en paramètre régional Japonais et j'ai exécuté la macro CsvUtf8 j'obtiens un fichier correct avec le Yen et je vois un fichier correct avec le csv.
Je ne sais pas/plus ce qui vous arrive avec ce fichier et je dois donc constater mon incompétence à vous répondre,
A tout hasard, je vous joins le fichier utilisé, des fois que ...:rolleyes:
 

Pièces jointes

  • Format Financier2.xlsm
    22.9 KB · Affichages: 2

g.milano

XLDnaute Junior
Re, pour voir, j'ai réinstallé exel 2010 (pro), je me suis mis en paramètre régional Japonais et j'ai exécuté la macro CsvUtf8 j'obtiens un fichier correct avec le Yen et je vois un fichier correct avec le csv.
Je ne sais pas/plus ce qui vous arrive avec ce fichier et je dois donc constater mon incompétence à vous répondre,
A tout hasard, je vous joins le fichier utilisé, des fois que ...:rolleyes:
bonjour fanch55,

ne vous dévalorisez pas comme ca ! J'ai testé votre macro. Bonne nouvelle, les prix restent bien dans la même cellule. Mauvaise nouvelle, le symbole "¥" est remplacé par un nouveau symbole, le "・":eek:
Perso, je ne cherche plus a comprendre non plus. Je propose que l'on capitule face a ce dysfonctionnement. De toute façon, la chaîne concaténée en string que j'utilise en remplacement ne pose pas de problème, donc pragmatiquement, mon problème est résolu :).

Je tiens de nouveau a remercier tous les intervenants pour leurs efforts et leurs propositions. On ne gagne pas a tout les coups :p
 

Pièces jointes

  • Lastry.zip
    314 bytes · Affichages: 3

Statistiques des forums

Discussions
312 083
Messages
2 085 189
Membres
102 809
dernier inscrit
Sandrine83