Convertir chaine en nombre

Signaler
Messages postés
81
Date d'inscription
vendredi 17 avril 2009
Statut
Membre
Dernière intervention
12 avril 2013
-
Messages postés
81
Date d'inscription
vendredi 17 avril 2009
Statut
Membre
Dernière intervention
12 avril 2013
-
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

Messages postés
1566
Date d'inscription
mardi 26 décembre 2000
Statut
Membre
Dernière intervention
5 avril 2013
6
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
Messages postés
81
Date d'inscription
vendredi 17 avril 2009
Statut
Membre
Dernière intervention
12 avril 2013

CA MARCHE!
Merci!