Convertir chaine en nombre

cracos30 Messages postés 81 Date d'inscription vendredi 17 avril 2009 Statut Membre Dernière intervention 12 avril 2013 - 6 déc. 2009 à 19:47
cracos30 Messages postés 81 Date d'inscription vendredi 17 avril 2009 Statut Membre Dernière intervention 12 avril 2013 - 6 déc. 2009 à 20:38
Bonsoir,
Je m'arrache les cheveux :
j'ai des cellules contenant des nombres en lettres. ex(1 890,00) Ils sont calés à gauche. Normal..
je met la colonne au format nombre : pas de changement.
Si je fais :

For Each cellule In Range(Cells(2, 4), Cells(LinfCPT1, 5))>>> "1 890,00"
cellule = Replace(cellule, " ", "")>>> "1890,00"
cellule = Replace(cellule, ",", ".")>>> "189.00"

If cellule <> "" Then cellule = Val(cellule)>>> 1890,00 et dans la cellule pas de changement.... et rebelote si je recommence.
Next

Et pourtant manuellement ça fonctionne ??? Et je n'ai pas de problémes avec d'autres classeurs.

J'ai vérifié les parametres régionaux, j'ai essayé de modifié les options pour afficher des points au lieu des virgules, j'ai ouvert un nouveau classeur en recopiant mes données, j'ai fais des copiés collés avec multiplication par 1....je ne sais plus que faire.
Quelqu'un aurait-il une idée?

Merci

2 réponses

jmf0 Messages postés 1566 Date d'inscription mardi 26 décembre 2000 Statut Membre Dernière intervention 5 avril 2013 8
6 déc. 2009 à 20:07
Bonjour,

puisque tes cellules sont en format texte et que le séparateur décimal y est la virgule, pourquoi ne pas utiliser cdbl pour faire des opérations sur la valeur de telles cellules ?
Genre :

valeur_cellule = "1 120,10"
MsgBox CDbl(valeur_cellule) * 2
0
cracos30 Messages postés 81 Date d'inscription vendredi 17 avril 2009 Statut Membre Dernière intervention 12 avril 2013
6 déc. 2009 à 20:38
CA MARCHE!
Merci!
0
Rejoignez-nous