XL 2016 Convertion texte en nombre

Xxaann

XLDnaute Occasionnel
Bonjour,

J'exporte des données pour faire mes comptes.
Dans l'exportation il y a des . et des ,
Je recherche une macro qui pourrait me convertir ce texte en nombre.
upload_2018-2-3_13-8-15.png

Merci à tous
Nico
 

Pièces jointes

  • convertir texte en nombre.xlsx
    8.6 KB · Affichages: 38

eriiic

XLDnaute Barbatruc
Bonjour,

tu exportes ? J'ai plutôt l'impression que tu importes...
A l'étape 3 de l'importation cliquer sur le bouton 'Avancé...' pour choisir le séparateur décimal et celui des milliers (indiquer ceux de ton import).
Peut être fait après en sélectionnant ta plage et 'Données / Convertir'
eric
 

Staple1600

XLDnaute Barbatruc
Bonjour le fil, le forum

Je confirme la piste Données/Convertir (cf post d'eriiiic)
A l'étape 3, cliquer sur Avancé...
et choisir la virgule pour Séparateur de décimales et le point pour le Séparateur de milliers.
Cela fonctionne avec les données exemple du classeur joint.

Par contre bizarrement, si on utilise la macro obtenu avec l'enregistreur de macros, cela ne focntionne qu'à moitié ?!?
 

Staple1600

XLDnaute Barbatruc
Re

Ca fonctionne mieux
Mais en deux passes et avec un Replace
Si quelqu'un peut m'expliquer le pourquoi du comment ??
VB:
Sub BizarreBizarre()
With Selection
.TextToColumns Destination:=Selection(1), DataType:=xlDelimited, FieldInfo:=Array(1, 1), DecimalSeparator:="."
.TextToColumns Destination:=Selection(1), DataType:=xlDelimited, FieldInfo:=Array(1, 1), ThousandsSeparator:="."
.Replace ".", ","
End With
End Sub

EDITION: On reste toujours dans le bizarre (en tout cas pour moi)
VB:
Sub UneSeulePasseMaisBizarreToujours()
With Selection
.TextToColumns Destination:=Selection(1), ThousandsSeparator:=".": .Replace ".", ","
End With
End Sub
 
Dernière édition:

JHA

XLDnaute Barbatruc
Bonjour à tous,

A essayer la proposition de Modeste Geedee;)
Code:
=--SUBSTITUE(A1;".";"")
copier vers le bas

Edit: Bonjour Pierre Jean:), Eriiic:) et Staple 1600:)

JHA
 

Pièces jointes

  • format texte en chiffre.xlsx
    16.5 KB · Affichages: 29

Staple1600

XLDnaute Barbatruc
Re, Bonjour JHA

@JHA
Il m'a fallu ta formule pour m'apercevoir que le CTRL+H de Modeste fonctionne.
Et comme le message#3 disait que cela ne fonctionnait pas.
J'ai betemeent pris acte de la chose sans tester.
Du coup, je me suis embringué dans le TextToColumn manuel ou VBAistique pour rien.
Sauf à considérer la bizarrerie constatée comme un rien à considérer.
C'est un point qui se défend mais rien qu'en considérant tous ces points, il est temps de faire un break.
Une pause qui vient à point nommé.

Néanmoins, je reste preneur de juste une mise au point sur cette différence Macro vs Manuel quand on utilise Données/Convertir

(Mes amitiés à Jackie Quartz ;))
 

eriiic

XLDnaute Barbatruc
Une fois sur la feuille certaines données ont été correctement interprétées et on se retrouve avec des . qui sont des fois séparateur de milliers, des fois séparateur décimal (enfin pour moi qui ai le "." en séparateur décimal).
Pour vba le séparateur décimal est toujours le ".", ce n'est pas forcément celui utilisé sur feuille, ceci explique sans doute cela.

Quand c'est possible il vaut mieux le faire à l'importation où toutes les données sont calibrées à l'identique, et avec l'outil Convertir.
Replace c'est bon, mais pour une configuration précise, sinon il faut le compliquer un peu.
eric
 

Staple1600

XLDnaute Barbatruc
Merci Jack@eriiiic Quartz ;)

Mais pourquoi le Données/Convertir manuel fonctionne en une seule fois?
(pas à l'import, mais avec les données telles qu'elles sont dans le classeur exemple)

En manuel, à l'étape 3, je fais Avancé... -> Séparateur de milliers: .
puis Terminer
Les données sont correctement converties.

L'équivalent VBA (obtenu avec l'enregistreur de macros) devrait reproduire la même chose, non ?
 
Dernière édition:

eriiic

XLDnaute Barbatruc
En une fois : pour qui a la "," en séparateur décimal, pour les autres c'est trop tard.
Pour moi le passage en vba entraîne des conversions indésirables que tu ne rencontres pas en manuel.
Un peu le même souk qu'avec les dates
 

Modeste geedee

XLDnaute Barbatruc
Bonsour®
Hélas non car dans l'import il y a du texte et du nombre...
Quand le nombre ets supérieur à 1000, il met un point.

le simple remplacer "." par "", fait que les chiffres à virgule font un x100.
55,25 devient 5525 par exemple
:(:confused::cool:
Donnes-nous ici le fichier source (.csv, .txt ou autre) avant que Excel y commette son interprétation automatique : "By Design"
 

Discussions similaires

Réponses
5
Affichages
144
Réponses
13
Affichages
352

Statistiques des forums

Discussions
312 191
Messages
2 086 051
Membres
103 108
dernier inscrit
Captain NRJ