Caractère inconnu rend la donnée inutilisable

Bonjour à tous et à toutes,

J'ai récupéré de la data sur un site internet bien connu, seulement la donnée de "prix" est inexploitable en l'état.
J'ai d'abord pensé à un problème de format de cellule mais non ce n'est pas ça.

il semble y avoir un espace problématique entre le dernier chiffre du prix et le symbole "€", j'ai donc essayé:

  • SUBSTITUTE()
  • SUPPRESPACE()
  • TRIM()

Sans résultat!

Après des recherches sur internet la première partie de la réponse est venue d'un ancien sujet de ce forum: La présence d'un espace insécable qu'il faut supprimer en le remplaçant: Ctr+h rechercher "alt+0160" remplacer par "". Merci!!!!

La donnée est toujours inexploitable, la faute cette fois-ci au séparateur du chiffre des milliers et la... rien à faire!
Ce n'est pas un séparateur standard, on dirait également un caractère spécial que je ne parviens pas à identifier. Le seul moyen pour exploiter la donnée est de copier l'un de ces chiffre sur Word, copier ce séparateur inconnu, et utiliser cette copie dans un remplacement pour le faire disparaitre... pas très pratique.

Pourrier vous m'aider à transformé la donnée "prix" pour la rendre exploitable sans passer par Word?

Merci pour votre aide, bonne journée. Quentin.

15clio-origine.xlsx (13.24 Ko)

Hello,

Comme ceci ça a l'air de fonctionner

@+

17clio-origine.xlsx (14.22 Ko)

Bonjour,

Il s'agit d'un espace insécable un peu bizarre, donc le code VBA est 8239. Pour "nettoyer" votre colonne prix je vous propose la macro ci-dessous. Elle va convertir la colonne en valeurs monétaires.

Il y a juste un point : la colonne est formatée en "texte" et je n'arrive pas à la repasser en valeurs. Donc quand la macro est terminée, quand l'erreur "nombre stockée en texte" apparaît, cliquer dessus et corriger.

Public Sub CleanSpaces()
  Dim MA_COLONNE As String: MA_COLONNE = "Prix"

  Dim myCol As Variant
  myCol = WorksheetFunction.Transpose( _
    ActiveSheet.ListObjects(1).ListColumns(MA_COLONNE).DataBodyRange.Value2)

  ' caracteres etranges a remplacer
  Dim toReplace(0 To 2) As String
  toReplace(0) = ChrW(8239): toReplace(1) = ChrW(160): toReplace(2) = ChrW(8364)

  Dim i As Long, j As Long, str As String
  For i = LBound(myCol) To UBound(myCol)
    str = myCol(i)
    For j = LBound(toReplace) To UBound(toReplace)
      str = VBA.Replace$(str, toReplace(j), vbNullString)
    Next j
    ' conversion en valeur monetaire
    myCol(i) = CCur(str)
  Next i

  With ActiveSheet.ListObjects(1).ListColumns(MA_COLONNE).DataBodyRange
    .Value = WorksheetFunction.Transpose(myCol)
    .NumberFormat = "# ##0,00 €"
  End With
End Sub

Edit : salut @baroute, on s'est croisés

Bonjour Gazzzz , BAROUTE78 saboh12617 ,

Le caractère en question est le caractère unicode 8239 (voir ICI).

  • Insérer une colonne avant la colonne "kilometrage".
  • Mettez dans la première cellule de cette nouvelle colonne, la formule suivante : =SIERREUR(CNUM(SUBSTITUE(SUBSTITUE([@Prix];UNICAR(8239);"");CAR(160) & "€";""));"")
  • Formatez cette colonne en "Monétaire, aucune décimale, symbole €"

Bonjour à tous,

un immense merci à tous, je ne connaissais pas l'existence de ce caractère unicode 8239 .
Vos solutions fonctionnent toutes, simplement dans mon cas précis la formule dans une nouvelle colonne est tout particulièrement adapté.

Encore merci pour votre aide, bonne journée!

Re,

Merci pour votre retour, content d'aider. Bonne journée.

Rechercher des sujets similaires à "caractere inconnu rend donnee inutilisable"