Caractère exotique dans extraction CSV

Bonjour,
Chaque fois que j'extraie un journal, une balance ou autre de mon logiciel de comptabilité en CSV, je me retrouve avec un caractère exotique dans les nombres, en lieu et place de l'espace entre les milliers (un point d'interrogation encadré, si mes yeux discernent bien ce bidule) :

caractere exotique ebp csv

Cela rend les calculs impossibles.
Bien sûr, il est toujours possible avec un CTRL H de remplacer ledit caractère spécial par rien, mais c'est pénible (il faut d'abord copier le caractère en question puis le coller dans la zone Recherche de la boite recherche et remplace).

J'ai d'abord pensé que mon logiciel de compta était en cause, mais ils m'assurent que non et me renvoient vers Excel.

Je précise que cela ne se produit que depuis quelques semaines, peut-être quelques mois, mais auparavant je n'avais pas ce problème.

Il doit y avoir un paramètre tout bête à changer quelque part dans Excel pour mieux interpréter le format nombre dans les CSV, mais lequel ?

Merci d'avance pour votre aide.

Bonjour,

Il s'agit de l'espace insécable de séparateurs de milliers. Personellement je passerais par PowerQuery pour l'import de CSV. Ca permet de gérer ces détails plus facilement.

Regardez aussi dans les options d'export de votre logiciel comptable si vous ne pouvez pas le désactiver, c'est le plus simple.

Bonjour,

Trois solutions maisons qui retirent les caractères non numériques d'une chaine de caractères.

1 - Retire tous les caractères non numériques et retourne un nombre entier.

2 - Comme la solution 1, mais garde la virgule.

3 - Identique à la solution 2. Cette dernière inspecte le code du caractère. La virgule est égale à 44 et les chiffres de 0 à 9 sont égales de 48 à 57.
Si vous voulez garder le point au lieu de la virgule, changer le code 44 pour 48 dans la formule.

Voir les 3 exemples dans le fichier "Test".

9test.xlsx (11.28 Ko)

Bonjour à tous !

Je plussoie la proposition de saboh12617 d'en passer par Power Query. C'est l'outil idoine.

Il est aussi loisible d'utiliser une formule :

=REGEX.REMPLACER(B2;"[^0-9,]";"")+0
image

J'ai le même souci que vous avec mon ERP quand j'exporte mes données.

L'une des solution comme évoqué plus haut est d'utilisé power query.
Si vous faites plutot du copier coller et que les données sont toujours dans le même format alors, vous pouvez aussi rajouter une colonne suplémentaire à votre tableau et d'utiliser la formule SUBSTITUE(Cellule d'origine;" ";"")
Pour l'espace entre les guillement faite un copier coller de l'espace de la celluel d''origine comme ce que vous faite avec Ctrl H.

Bonjour,
Ouvrez votre fichier CSV avec Notepad++ (ou un éditeur de texte plus évolué que le bloc-notes) et vérifiez que votre fichier est bien encodé en UTF-8.

  1. Ouvrez le fichier dans Excel.
  2. Sélectionnez Fichier > Enregistrer sous.
  3. Choisissez le format CSV UTF-8.

ou bien

  1. Sélectionnez Fichier > Exporter
  2. Choisissez CSV, et définissez l'encodage sur UTF-8

Ajout : le 21/02 à 06:34 : ce type n'existe pas par défaut, c'est un add-in. Donc proposition à oublier. Merci à Nain porte koi pour me l'avoir signalé.

Hello,

Ctrl+H, maintenir la touche Alt et taper sur le clavier numérique 0160, relâcher Alt, Remplacer tout

Bonjour,

Bon, finalement le bon vieux CTRL+H est le plus simple ...

Merci quand même :)

Il est vrai qu'on parle de power query sans expliquer comment faire avec.
Mais la solution proposer par JFL et moi-même sont simple à mettre en place.
Comme je l'ai dit, j'ai le même souci avec mon propre logiciel. la formule SUBSTITUE sur une colonne supplémentaire pour remplacer cette espace par rien, fonctionne à merveille. Si j'a iquand même oublié un truc dans ma proposition, rajouter *1 sinon le substitue devient du texte.

=SUBSTITUE(A1;" ";"")*1

Remplacer A1 par la bonne celulle de colonne et l'espace entre les premier guillement par le copier coller de l'espace insécable.

@Optimix, je ne trouve pas CSV UTF-8 dans la liste des type de fichier, vous avez un version avec un addon ?

2026 02 20 16 24 00

@themmanuel même si votre solution fonctionne, elle oblige quand même à pas mal de manips (ajouter des colonnes, créer la formule, la recopier etc) alors qu'un Ctrl+H, Alt+0160, Remplacer tout, est sans rien de plus et c'est complet pour toute la feuille sans rien modifier d'autre

Je ne sais pas comment vos fichiers sont mise à jours.

De mon coté, j'ai rajouter ces colonnes qu'une seul fois dans un tableau structuré. Quand je met à jours mes données je fait un simple copié coller dans mon tableau qui s'étend tout seul. plus besoin de refaire de manip ou quoique ce soit.

Bonjour,

J'ai moi aussi des extractions à la c.. de logiciels comptables qu'en plus certains utilisateurs s'amusent à bidouiller avant de me transmettre.

Résultat ; des caractères extraits non reconnus, des séparateurs de colonnes ";" qui sautent ou qui apparaissent, ...

Voici le code de reconstruction que j'utilise. Je l'ai adapté pour ta demande (de mon côté je dois scanner et concaténer x fichiers "bal*.csv" d'un répertoire).

Tu as un bouton "Parcourir" qui te permet de sélectionner un fichier d'extension ".csv" ou ".txt" et de le reformater dans un nouveau fichier de sortie enregistré dans le répertoire où est enregistré ce fichier de macro.

Le code te permet de :

  • faire des remplacements de caractères ou de suites de caractères par ta propre chaine et ce en te laissant la possibilité de ne pas faire les mêmes remplacements s'il doit s'agir d'une colonne de texte ou d'une colonne de montants (par exemple remplacer ton espace insécable par un espace normal dans les colonnes de texte mais par rien ("") dans les colonnes de montants)
  • normaliser le nombre de colonnes sur toutes les lignes de ton fichier de sortie (attention sur ce point ; le nombre de colonnes est normalisé (càd rendu identique en ajoutant des séparateurs (";") en fin de ligne mais tu auras peut-être des décalages (aucun problème si personne ne supprime de séparateurs chez toi))
  • obtenir des montants au format 2 décimales dans tes colonnes de montants
  • remplacer le "." par une "," dans tes colonnes de montants
  • remplacer les espaces normaux par rien dans tes colonnes de montants
  • remplacer les espaces superflus par rien devant chaque séparateur ";"
  • remplacer les espaces superflus par rien derrière chaque séparateur ";"

Pour paramétrer tout cela c'est très simple :

Dans le code tu indiques :

  • quels sont les numéros de colonnes de ton fichier texte qui ne contiennent que des montants image
  • quels sont les numéros de colonnes de ton fichier texte qui ne contiennent que du texte image

Puis tu peux ajouter ou supprimer des remplacements de caractères ou suite de caractères en dupliquant ces lignes.

Pour les colonnes de montants :

image

Pour les colonnes de texte :

image

Les remplacements de caractères ne se font pas dans la ligne de titres de ton fichier d'origine.

En résumé le code :

  1. Supprime un éventuel fichier traité créé précédemment.
  2. Ouvre le fichier choisi une première fois pour le parcourir et trouver le nombre de colonnes maximum parmi toutes tes lignes et le nombre de lignes maximum puis le referme.
  3. Réouvre ton fichier pour transférer ligne à ligne tes données dans un tableau mémoire tout en faisant les transformations de valeurs demandées puis le referme.
  4. Et enfin créé un nouveau fichier (de même extension ".csv" ou ".txt" que ton fichier d'origine) nommé "Fichier traité".

PS Attention je n'ai pas pris en compte les chemins réseau ou Sharepoint. Teste en local.

Teste et dis nous.

Bonsoir,

Bonjour,

J'ai moi aussi des extractions à la c.. de logiciels comptables qu'en plus certains utilisateurs s'amusent à bidouiller avant de me transmettre.

Résultat ; des caractères extraits non reconnus, des séparateurs de colonnes ";" qui sautent ou qui apparaissent, ...

Voici le code de reconstruction que j'utilise.

....

Hi, effectivement, utiliser un porte-avions pour transporter un seul drone....

Ou un semi-remorque pour une boîte d'allumettes....

Sinon, Power Query saurait le faire....

Bonne soirée

Je ne connais pas PQ. Je veux dire j'ai idée de son utilité mais je n'ai jamais utilisé profondément.

Je suis prestataire informatique (développeur VBA principalement). Je fais avec ce que je connais et j'ai parfois proposé à certains clients d'utiliser PowerPivot, PQ, ... et même de passer leurs innombrables fichiers Excel entrecroisés sous un SGBDR même gratuit mais 99% des cas ils refusent et veulent rester dans ce qu'ils connaissent.

Alors, à tort ou à raison, maintenant je fais avec ce que le client me donne comme base de travail même s'il y a mieux.

Dans le cas présent c'est une adaptation d'un code que j'ai écrit précédement. Pour ça que c'est plus lourd que la simple suppression demandée mais ce qui compte c'est que ça fasse le job.

Re,

si on tiens absolument à macroter, voila THE macro

Sub Macro1()
'
' Macro1 Macro
'

'
    Cells.Replace What:=" ", Replacement:="", LookAt:=xlPart, SearchOrder:= _
        xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False, _
        FormulaVersion:=xlReplaceFormula2
End Sub

D'accord avec toi Nain Porte Quoi. Mon code offre de plus grandes possibilités en amont mais le tien est fonctionnel et rapide pour faire exclusivement le job )sur la feuille active uniquement toutefois).

Juste un bémol. Cela oblige à travailler dans le classeur contenant cette macro. Mais cela est très fonctionnel.

On peut compléter par un bouton parcourir. L'utilisateur fera comme d'hab dans son fichier d'origine puis pourra modifier les valeurs avec ton code. Comme l'utilisateur ne sera pas obligé d'utiliser le même fichier.

Ou alors prévoir un fichier template vide contenant ton code que l'utilisateur dupliquera à chaque fois s'il veut garder ses fichiers à chaque fois.

Ppsssttt "mon code" c'est une macro enregistré

Oui et alors ?

On s'en fout. Elle fait le job.

Après faut l'adapter un peu pour la rendre plus ouverte, plus "universelle".

Je te l'ai dit plus haut. Je suis d'accord avec ta solution bien qu'elle restreigne l'utilisateur à la feuille active du fichier ouvert.

Pour moi c'est une solution. Pas très ouverte et restrictive mais cela c'est au demandeur de faire son choix.

Rechercher des sujets similaires à "caractere exotique extraction csv"