Conversion de texte en nombre

  • Initiateur de la discussion Konso
  • Date de début
K

Konso

Guest
Bonjour
Voici mon problème qui pour moi est un mystère.
J'ai dans des cellules du texte (issu d'un fichier) qui représente des nombres : exemple : 380.88750 (aligné à gauche)
Si je fais un remplacement en manuel (ctrl+h) du point par une virgule, j'obtiens : 380,8875 (aligné à droite) ce qui est normal.
Si maintenant, je fais le même remplacement en mode enregistrement macro, il se trouve que l'éxécution de la macro obtenue donne : 3808875 le point a disparu sans être remplacé par la virgule. Ce fonctionnement bizarre se produit avec Excel 97, 2000 et XP.
Si quelqu'un sait où se trouve la subtilité, merci d'avance.

Konso
 
K

Konso

Guest
Bonsoir Gibson94

J'ai cherché à l'adresse indiquée et j'ai trouvé parmi les nombreux messages, celui de Pascal qui donne une solution. La voici pour ceux que ça pourrait intéresser.
En principe, on écrit ça :

Selection.Replace What:='.', Replacement:=',', LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False >> point par virgule

et l'on obtient mon problème qui n'est pas unique comme j'ai pu le voir dans le forum.
La solution de Pascal :

Selection.Replace What:='.', Replacement:='.', LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False >> point par point ????

et super, ca marche !!!!

Pourquoi ? bug Excel ? je ne sais pas, je n'ai pas encore creusé; ce pourrait être lié à la notation de la virgule dans une feuille qui correspond au point anglo-saxon en VBA ?
En attendant ca me dépanne car j'étais bloqué pour terminer mon application.
En conclusion merci beaucoup à Gibson94 et Pascal !
@+
 
D

DeLLa

Guest
salut a tous !

Merci a tous ! je me suis confronté au meme problème quoiqu'un peu différent... c'est pourquoi je me permets de rajouter ceci...

J'importais sur mon fichier des nombres de ce format 123.456,78
le point fait que la cellule est considérée comme comportant du texte et non des nombres...

Manuellement, remplacer le '.' par '', et le ',' par ',' (eh oui!) permet de retrouver un format nombre...

Par macro, il m'a fallu tout d'abord remplacer '.' par ''
et enfin (grace a vous) ',' par '.'

Selection.Replace What:='.', Replacement:='', LookAt:=xlPart, _ SearchOrder:=xlByRows,
MatchCase:=False >> point par rien

Selection.Replace What:=',', Replacement:='.', LookAt:=xlPart, _ SearchOrder:=xlByRows,
MatchCase:=False >> virgule par point


Pour tout vous avouer je trouve cela assez étonnant... Mais bon tant que ca marche hein ^^

Merci encore
 

Discussions similaires

Statistiques des forums

Discussions
312 489
Messages
2 088 853
Membres
103 975
dernier inscrit
denry