OVH Cloud OVH Cloud

Format nombre

15 réponses
Avatar
Mazava
Bonjour

J'ai re=E7u un fichier d'une autre application et dont les=20
chiffres sont de la forme : "1 236.54" avec un format=20
standard et qui est consid=E9r=E9 comme du texte alors que =E7a=20
devrait =EAtre un nombre de la forme "1236,54"
Y a t il un moyen de convertir chaque cellule en nombre=20
(des milliers de cellules)par fonction ou formules ou=20
macros ?
Une petite piste ou une solution ? Merci d'avance

a+

Mazava

5 réponses

1 2
Avatar
Mazava
Salut Isabelle

Même avec ça , ça ne marche toujours pas !

Ce que j'ai fait en fin de compte c'est dutiliser les
fonctions "Gauche", "Droite" et "Concatener" sur des
colonnes vierges à droite de la colonne concernée et de
faire un copier-coller valeur

Je vais essayer de faire ça par macro mais pour l'instant
je ne sais pas comment l'écrire

NB : Je n'ai pas pu te remercier pour ta solution
concernant les formulaires il y a quelques semaines,
désolé, mais l'adresse que tu m'avais indiqué était la
bonne

a+

Mazava

-----Message d'origine-----
rebonjour Mazava,

est ce que comme ça, ça irait,

Sub ConvertirTexteEnNumérique()
Selection.Replace What:=" ", Replacement:="",
LookAt:=xlPart

Selection.Replace What:=",", Replacement:=".",
LookAt:=xlPart

End Sub

isabelle


Salut à tous

ça ne marche toujours pas malgré les solutions
d'Isabelle,Ellimac,Gaspareau et Vincent

en supprimant manuellement l'espace après le 1
dans 1 236.55 et en remplaçant le point par une virgule
tout rentre dans l'ordre
Mais mon souci est de ne pas retaper cellule par cellule
et la macro j'arrive pas à l'écrire

Comment indiquer dans une macro que pour la colonne
selectionnée on supprime le 7é caractère à partir de la
droite (ici l' "espace" dans 1 236.55)

a+

Mazava
-----Message d'origine-----
Bonjour

J'ai reçu un fichier d'une autre application et dont
les



chiffres sont de la forme : "1 236.54" avec un format
standard et qui est considéré comme du texte alors que
ça



devrait être un nombre de la forme "1236,54"
Y a t il un moyen de convertir chaque cellule en nombre
(des milliers de cellules)par fonction ou formules ou
macros ?
Une petite piste ou une solution ? Merci d'avance

a+

Mazava

.

.







Avatar
isabelle
bonjour Mazava,

si tu n'y arrive pas, envoie nous la formule que tu utilise. on pourra
te donner un coup de pouce pour la traduire en vba.

isabelle


Salut Isabelle

Même avec ça , ça ne marche toujours pas !

Ce que j'ai fait en fin de compte c'est dutiliser les
fonctions "Gauche", "Droite" et "Concatener" sur des
colonnes vierges à droite de la colonne concernée et de
faire un copier-coller valeur

Je vais essayer de faire ça par macro mais pour l'instant
je ne sais pas comment l'écrire

NB : Je n'ai pas pu te remercier pour ta solution
concernant les formulaires il y a quelques semaines,
désolé, mais l'adresse que tu m'avais indiqué était la
bonne

a+

Mazava

-----Message d'origine-----
rebonjour Mazava,

est ce que comme ça, ça irait,

Sub ConvertirTexteEnNumérique()
Selection.Replace What:=" ", Replacement:="",
LookAt:=xlPart

Selection.Replace What:=",", Replacement:=".",
LookAt:=xlPart

End Sub

isabelle


Salut à tous

ça ne marche toujours pas malgré les solutions
d'Isabelle,Ellimac,Gaspareau et Vincent

en supprimant manuellement l'espace après le 1
dans 1 236.55 et en remplaçant le point par une virgule
tout rentre dans l'ordre
Mais mon souci est de ne pas retaper cellule par cellule
et la macro j'arrive pas à l'écrire

Comment indiquer dans une macro que pour la colonne
selectionnée on supprime le 7é caractère à partir de la
droite (ici l' "espace" dans 1 236.55)

a+

Mazava
-----Message d'origine-----
Bonjour

J'ai reçu un fichier d'une autre application et dont
les



chiffres sont de la forme : "1 236.54" avec un format
standard et qui est considéré comme du texte alors que
ça



devrait être un nombre de la forme "1236,54"
Y a t il un moyen de convertir chaque cellule en nombre
(des milliers de cellules)par fonction ou formules ou
macros ?
Une petite piste ou une solution ? Merci d'avance

a+

Mazava

.

.









Avatar
Mazava
Bonjour

A l'origine les données étaient comme ci-après (en colonne
I)

....
1 444.25
203,74
125.38
62.69
....

Donc ce que j'ai fait c'est :
1) Remplacer les points par des virgules par
rechercher/remplacer dans la colonne I
2) dans une colonne vide (colonne P) en bout du fichier
j'ai utilisé la formule suivante :
=SI(NBCAR(I1)<=6;"";(GAUCHE(I1;1))*1)
3) dans la colonne suivante (colonne Q) :
=DROITE(I1;6)
4) dans la colonne suivante (colonne R) :
=(CONCATENER(P1;Q1))*1
5) Je copie les formules en P1,Q1 et R1 et les colle
jusqu'à la dernière ligne de données du fichier (nombre de
lignes variables d'une periode à une autre)
6) Je copie entièremment la colonne R et la colle "en
valeur" en I


Mazava







-----Message d'origine-----
bonjour Mazava,

si tu n'y arrive pas, envoie nous la formule que tu
utilise. on pourra

te donner un coup de pouce pour la traduire en vba.

isabelle


Salut Isabelle

Même avec ça , ça ne marche toujours pas !

Ce que j'ai fait en fin de compte c'est dutiliser les
fonctions "Gauche", "Droite" et "Concatener" sur des
colonnes vierges à droite de la colonne concernée et de
faire un copier-coller valeur

Je vais essayer de faire ça par macro mais pour
l'instant


je ne sais pas comment l'écrire

NB : Je n'ai pas pu te remercier pour ta solution
concernant les formulaires il y a quelques semaines,
désolé, mais l'adresse que tu m'avais indiqué était la
bonne

a+

Mazava

-----Message d'origine-----
rebonjour Mazava,

est ce que comme ça, ça irait,

Sub ConvertirTexteEnNumérique()
Selection.Replace What:=" ", Replacement:="",
LookAt:=xlPart

Selection.Replace What:=",", Replacement:=".",
LookAt:=xlPart

End Sub

isabelle


Salut à tous

ça ne marche toujours pas malgré les solutions
d'Isabelle,Ellimac,Gaspareau et Vincent

en supprimant manuellement l'espace après le 1
dans 1 236.55 et en remplaçant le point par une
virgule




tout rentre dans l'ordre
Mais mon souci est de ne pas retaper cellule par
cellule




et la macro j'arrive pas à l'écrire

Comment indiquer dans une macro que pour la colonne
selectionnée on supprime le 7é caractère à partir de
la




droite (ici l' "espace" dans 1 236.55)

a+

Mazava
-----Message d'origine-----
Bonjour

J'ai reçu un fichier d'une autre application et dont
les



chiffres sont de la forme : "1 236.54" avec un
format





standard et qui est considéré comme du texte alors
que





ça
devrait être un nombre de la forme "1236,54"
Y a t il un moyen de convertir chaque cellule en
nombre





(des milliers de cellules)par fonction ou formules
ou





macros ?
Une petite piste ou une solution ? Merci d'avance

a+

Mazava

.

.



.









Avatar
isabelle
bonjour Mazava,

peux tu me dire si cette procédure fonctionne bien,

Sub ConvertirTexteEnNumérique()
Columns("I:I").Replace What:=",", Replacement:=".", LookAt:=xlPart
For Each c In Range("I1:I" & Range("I65536").End(xlUp).Row)
Range("S" & c.Row) = Val(c)
Next
End Sub

isabelle


Bonjour

A l'origine les données étaient comme ci-après (en colonne
I)

....
1 444.25
203,74
125.38
62.69
....

Donc ce que j'ai fait c'est :
1) Remplacer les points par des virgules par
rechercher/remplacer dans la colonne I
2) dans une colonne vide (colonne P) en bout du fichier
j'ai utilisé la formule suivante :
=SI(NBCAR(I1)<=6;"";(GAUCHE(I1;1))*1)
3) dans la colonne suivante (colonne Q) :
=DROITE(I1;6)
4) dans la colonne suivante (colonne R) :
=(CONCATENER(P1;Q1))*1
5) Je copie les formules en P1,Q1 et R1 et les colle
jusqu'à la dernière ligne de données du fichier (nombre de
lignes variables d'une periode à une autre)
6) Je copie entièremment la colonne R et la colle "en
valeur" en I

Mazava

-----Message d'origine-----
bonjour Mazava,

si tu n'y arrive pas, envoie nous la formule que tu
utilise. on pourra

te donner un coup de pouce pour la traduire en vba.

isabelle


Salut Isabelle

Même avec ça , ça ne marche toujours pas !

Ce que j'ai fait en fin de compte c'est dutiliser les
fonctions "Gauche", "Droite" et "Concatener" sur des
colonnes vierges à droite de la colonne concernée et de
faire un copier-coller valeur

Je vais essayer de faire ça par macro mais pour
l'instant


je ne sais pas comment l'écrire

NB : Je n'ai pas pu te remercier pour ta solution
concernant les formulaires il y a quelques semaines,
désolé, mais l'adresse que tu m'avais indiqué était la
bonne

a+

Mazava

-----Message d'origine-----
rebonjour Mazava,

est ce que comme ça, ça irait,

Sub ConvertirTexteEnNumérique()
Selection.Replace What:=" ", Replacement:="",
LookAt:=xlPart

Selection.Replace What:=",", Replacement:=".",
LookAt:=xlPart

End Sub

isabelle


Salut à tous

ça ne marche toujours pas malgré les solutions
d'Isabelle,Ellimac,Gaspareau et Vincent

en supprimant manuellement l'espace après le 1
dans 1 236.55 et en remplaçant le point par une
virgule




tout rentre dans l'ordre
Mais mon souci est de ne pas retaper cellule par
cellule




et la macro j'arrive pas à l'écrire

Comment indiquer dans une macro que pour la colonne
selectionnée on supprime le 7é caractère à partir de
la




droite (ici l' "espace" dans 1 236.55)

a+

Mazava
-----Message d'origine-----
Bonjour

J'ai reçu un fichier d'une autre application et dont
les



chiffres sont de la forme : "1 236.54" avec un
format





standard et qui est considéré comme du texte alors
que





ça
devrait être un nombre de la forme "1236,54"
Y a t il un moyen de convertir chaque cellule en
nombre





(des milliers de cellules)par fonction ou formules
ou





macros ?
Une petite piste ou une solution ? Merci d'avance

a+

Mazava

.

.



.











Avatar
Bonjour Isabelle

La procedure convertit bien les "," en "." (en réalité
c'est l'inverse point en virgule) mais malheureusement ne
convertit pas la cellule en format nombre mais reste en
texte donc les calculs ne marchent pas

Mazava

-----Message d'origine-----
bonjour Mazava,

peux tu me dire si cette procédure fonctionne bien,

Sub ConvertirTexteEnNumérique()
Columns("I:I").Replace What:=",", Replacement:=".",
LookAt:=xlPart

For Each c In Range("I1:I" & Range("I65536").End
(xlUp).Row)

Range("S" & c.Row) = Val(c)
Next
End Sub

isabelle


Bonjour

A l'origine les données étaient comme ci-après (en
colonne


I)

....
1 444.25
203,74
125.38
62.69
....

Donc ce que j'ai fait c'est :
1) Remplacer les points par des virgules par
rechercher/remplacer dans la colonne I
2) dans une colonne vide (colonne P) en bout du fichier
j'ai utilisé la formule suivante :
=SI(NBCAR(I1)<=6;"";(GAUCHE(I1;1))*1)
3) dans la colonne suivante (colonne Q) :
=DROITE(I1;6)
4) dans la colonne suivante (colonne R) :
=(CONCATENER(P1;Q1))*1
5) Je copie les formules en P1,Q1 et R1 et les colle
jusqu'à la dernière ligne de données du fichier (nombre
de


lignes variables d'une periode à une autre)
6) Je copie entièremment la colonne R et la colle "en
valeur" en I

Mazava

-----Message d'origine-----
bonjour Mazava,

si tu n'y arrive pas, envoie nous la formule que tu
utilise. on pourra

te donner un coup de pouce pour la traduire en vba.

isabelle


Salut Isabelle

Même avec ça , ça ne marche toujours pas !

Ce que j'ai fait en fin de compte c'est dutiliser les
fonctions "Gauche", "Droite" et "Concatener" sur des
colonnes vierges à droite de la colonne concernée et
de




faire un copier-coller valeur

Je vais essayer de faire ça par macro mais pour
l'instant


je ne sais pas comment l'écrire

NB : Je n'ai pas pu te remercier pour ta solution
concernant les formulaires il y a quelques semaines,
désolé, mais l'adresse que tu m'avais indiqué était
la




bonne

a+

Mazava

-----Message d'origine-----
rebonjour Mazava,

est ce que comme ça, ça irait,

Sub ConvertirTexteEnNumérique()
Selection.Replace What:=" ", Replacement:="",
LookAt:=xlPart

Selection.Replace What:=",", Replacement:=".",
LookAt:=xlPart

End Sub

isabelle


Salut à tous

ça ne marche toujours pas malgré les solutions
d'Isabelle,Ellimac,Gaspareau et Vincent

en supprimant manuellement l'espace après le 1
dans 1 236.55 et en remplaçant le point par une
virgule




tout rentre dans l'ordre
Mais mon souci est de ne pas retaper cellule par
cellule




et la macro j'arrive pas à l'écrire

Comment indiquer dans une macro que pour la
colonne






selectionnée on supprime le 7é caractère à partir
de






la
droite (ici l' "espace" dans 1 236.55)

a+

Mazava
-----Message d'origine-----
Bonjour

J'ai reçu un fichier d'une autre application et
dont







les
chiffres sont de la forme : "1 236.54" avec un
format





standard et qui est considéré comme du texte
alors







que
ça
devrait être un nombre de la forme "1236,54"
Y a t il un moyen de convertir chaque cellule en
nombre





(des milliers de cellules)par fonction ou
formules







ou
macros ?
Une petite piste ou une solution ? Merci d'avance

a+

Mazava

.

.



.



.











1 2