OVH Cloud OVH Cloud

Convertir texte en nombre

8 réponses
Avatar
Emmanuel
Bonjour,
je souhaite convertir, à l'aide d'une macro VBA, des cellules de type
"07.25" en nombre de type "7,25"
Pouvez vous m'indiquer la macro correspondante.

Merci d'avance.

Manu

8 réponses

Avatar
Jacky
Bonjour Emmanuel

Avec la cellule de départ en A1 et le résultat en A2

[a2] = Hour([a1]) & "," & Minute([a1])

Mais attention le résultat est erroné car 07:25 donne en réalité 7,41 et non
pas 7,25

Salutations
JJ


"Emmanuel" a écrit dans le message news:
uv#9g3I#
Bonjour,
je souhaite convertir, à l'aide d'une macro VBA, des cellules de type
"07.25" en nombre de type "7,25"
Pouvez vous m'indiquer la macro correspondante.

Merci d'avance.

Manu




Avatar
JièL Goubert
Bonjoir(c) Emmanuel

Le 21/02/2004 16:17 vous nous disiez ceci :
Bonjour,
je souhaite convertir, à l'aide d'une macro VBA, des cellules de type
"07.25" en nombre de type "7,25"
Pouvez vous m'indiquer la macro correspondante.


Juste pour le fun et ma participation au club des AMIS(*), menu Edition,
Remplacer, remplacer "." par "," remplacer tout.
Si tu tiens quand même a une macro, enregistre les manips précédentes,
ça t'évitera de réinventer quelque chose qui existe.

Merci d'avance.


--
La FAQ Outlook est la : http://faq.outlook.free.fr
JièL / Jean-Louis GOUBERT du club des AMIS
Co-auteur de "Internet + de 1 000 trucs de pros" chez Micro Application
http://faq.outlook.free.fr/livreMA/internet_plus_de_1000_trucs_de_pros.htm

(*) AMIS = Anti Macros Inutilement Superfétatoire

Avatar
Jacky
re..

Excuse,
J'avais cru voir un format horaire

JJ

"Jacky" a écrit dans le message news:
OKhkNDJ#
Bonjour Emmanuel

Avec la cellule de départ en A1 et le résultat en A2

[a2] = Hour([a1]) & "," & Minute([a1])

Mais attention le résultat est erroné car 07:25 donne en réalité 7,41 et
non

pas 7,25

Salutations
JJ


"Emmanuel" a écrit dans le message news:
uv#9g3I#
Bonjour,
je souhaite convertir, à l'aide d'une macro VBA, des cellules de type
"07.25" en nombre de type "7,25"
Pouvez vous m'indiquer la macro correspondante.

Merci d'avance.

Manu








Avatar
Emmanuel
Je suis d'accord avec toi pour une partie.
En enregistrant, la conversion du point en virgule s'est effectuée, mais le
nombre ainsi formé est toujours identifié comme du texte et non pas comme un
nombre, ce que je veux. C'est cette conversion texte vers nombre que je ne
connais pas, en visual basic.

Emmanuel

"JièL Goubert" a écrit dans le
message de news:u$G%230DJ%
Bonjoir(c) Emmanuel

Le 21/02/2004 16:17 vous nous disiez ceci :
Bonjour,
je souhaite convertir, à l'aide d'une macro VBA, des cellules de type
"07.25" en nombre de type "7,25"
Pouvez vous m'indiquer la macro correspondante.


Juste pour le fun et ma participation au club des AMIS(*), menu Edition,
Remplacer, remplacer "." par "," remplacer tout.
Si tu tiens quand même a une macro, enregistre les manips précédentes,
ça t'évitera de réinventer quelque chose qui existe.

Merci d'avance.


--
La FAQ Outlook est la : http://faq.outlook.free.fr
JièL / Jean-Louis GOUBERT du club des AMIS
Co-auteur de "Internet + de 1 000 trucs de pros" chez Micro Application
http://faq.outlook.free.fr/livreMA/internet_plus_de_1000_trucs_de_pros.htm

(*) AMIS = Anti Macros Inutilement Superfétatoire



Avatar
ChrisV
Bonjour Emmanuel,

Sur la plage sélectionnée...

Sub zaza()
Dim c As Range
Application.ScreenUpdating = False
For Each c In Selection
c = 1 * Application.Substitute(c, ".", ",")
Next c
End Sub


ChrisV


"Emmanuel" a écrit dans le message de news:
uEM7jYJ#
Je suis d'accord avec toi pour une partie.
En enregistrant, la conversion du point en virgule s'est effectuée, mais
le

nombre ainsi formé est toujours identifié comme du texte et non pas comme
un

nombre, ce que je veux. C'est cette conversion texte vers nombre que je ne
connais pas, en visual basic.

Emmanuel

"JièL Goubert" a écrit dans le
message de news:u$G%230DJ%
Bonjoir(c) Emmanuel

Le 21/02/2004 16:17 vous nous disiez ceci :
Bonjour,
je souhaite convertir, à l'aide d'une macro VBA, des cellules de type
"07.25" en nombre de type "7,25"
Pouvez vous m'indiquer la macro correspondante.


Juste pour le fun et ma participation au club des AMIS(*), menu Edition,
Remplacer, remplacer "." par "," remplacer tout.
Si tu tiens quand même a une macro, enregistre les manips précédentes,
ça t'évitera de réinventer quelque chose qui existe.

Merci d'avance.


--
La FAQ Outlook est la : http://faq.outlook.free.fr
JièL / Jean-Louis GOUBERT du club des AMIS
Co-auteur de "Internet + de 1 000 trucs de pros" chez Micro Application

http://faq.outlook.free.fr/livreMA/internet_plus_de_1000_trucs_de_pros.htm



(*) AMIS = Anti Macros Inutilement Superfétatoire







Avatar
JièL Goubert
Bonjoir(c) Emmanuel

Le 21/02/2004 17:16 vous nous disiez ceci :
Je suis d'accord avec toi pour une partie.


chic alors ;-)))

En enregistrant, la conversion du point en virgule s'est effectuée, mais le
nombre ainsi formé est toujours identifié comme du texte et non pas comme un
nombre, ce que je veux.


Je n'ai pas reproduis ça sur mes tests sauf si les cellules avait
précédement un format texte.

C'est cette conversion texte vers nombre que je ne
connais pas, en visual basic.


Moi je ferais la même chose que précédement, j'enregistrerais la modif
du format texte en format nombre.

Mais c'est vrai que je pinaille et que ChrisV t'as donné une solution de
MECHANTS(*) ;-)))

J'espère seulement pour toi que tu travailles sur un petit nombre de
données, car si c'est important, je pense que la macro va être plutot lente.

Je me trompe ChrisV ?

--
JièL Pine Ailleurs

(*) MECHANTS
Macroteurs
Espérants
Cacher (leur)
Humiliation (en)
Avilissant
Nos
Trucs
Surprenants

Avatar
Michel Gaboly
Bonsoir,

En VBA tu peux utiliser une des fonctions de conversion de type (CSng, CDble,
CDec, ...) ou multiplier par 1.


Je suis d'accord avec toi pour une partie.
En enregistrant, la conversion du point en virgule s'est effectuée, mais le
nombre ainsi formé est toujours identifié comme du texte et non pas comme un
nombre, ce que je veux. C'est cette conversion texte vers nombre que je ne
connais pas, en visual basic.

Emmanuel

"JièL Goubert" a écrit dans le
message de news:u$G%230DJ%
Bonjoir(c) Emmanuel

Le 21/02/2004 16:17 vous nous disiez ceci :
Bonjour,
je souhaite convertir, à l'aide d'une macro VBA, des cellules de type
"07.25" en nombre de type "7,25"
Pouvez vous m'indiquer la macro correspondante.


Juste pour le fun et ma participation au club des AMIS(*), menu Edition,
Remplacer, remplacer "." par "," remplacer tout.
Si tu tiens quand même a une macro, enregistre les manips précédentes,
ça t'évitera de réinventer quelque chose qui existe.

Merci d'avance.


--
La FAQ Outlook est la : http://faq.outlook.free.fr
JièL / Jean-Louis GOUBERT du club des AMIS
Co-auteur de "Internet + de 1 000 trucs de pros" chez Micro Application
http://faq.outlook.free.fr/livreMA/internet_plus_de_1000_trucs_de_pros.htm

(*) AMIS = Anti Macros Inutilement Superfétatoire



--
Cordialement,

Michel Gaboly
http://www.gaboly.com



Avatar
Michel Gaboly
Salut Chris,

Avec les macros XL4, on pouvait traiter ce genre de chose avec
FORMULE.MATRICIELLE() :

Cette courte macro permet de remplacer en une opération les
points par des virgules dans la selection.

=FORMULE.MATRICIELLE(SUBSTITUE(SELECTION();".";","))
=COPIER() + COLLAGE.SPECIAL(3)
=RETOUR()

Le copier Collage Spécial Valeurs permet de remplacer dans
chaque cellule une matrice par la valeur concernant la cellule.

La ligne contenant FORMULE.MATRICIELLE() est à valider
en matricielle.


J'ai tenté d'intégrer cette instruction dans une sub VBA :

Sub XL4()
Application.ExecuteExcel4Macro ("FORMULA.ARRAY(SUBSTITUTE(SELECTION(),""."","",""))")
End Sub

mais rien ne se passe. As-tu une idée ?


La macro ci-dessous s'occupe en plus de transformer le résultat
en numérique et fonctionne dans une feuille macro XL4 :

=FORMULE.MATRICIELLE(SUBSTITUE(SELECTION();".";","))
=FORMULE.MATRICIELLE(SELECTION() * 1)
=COPIER() + COLLAGE.SPECIAL(3)
=RETOUR()

Les 2 premières instructions sont à valider en matricielles.

Pour pouvoir utiliser une macro de ce type, il faut insérer
au classeur une feuille macro XL4, y copier le code, en A2
par exemple et donner un nom (Ctrl + F3) à la cellule
contenant la première instruction, ici A2 ou la cellule
immédiatement au-dessus, A1 qui peut servir à donner
un titre à la macro.

Il faut préciser dans la fenêtre de définition du nom qu'il
s'agit d'une macro-commande (option accessible quand
la feuille active est une feuille macro).

On peut ensuite lancer la macro par le menu Outils, Macro
ou avec l'icône Exécuter de la barre d'outils Visual Basic.



Bonjour Emmanuel,

Sur la plage sélectionnée...

Sub zaza()
Dim c As Range
Application.ScreenUpdating = False
For Each c In Selection
c = 1 * Application.Substitute(c, ".", ",")
Next c
End Sub

ChrisV

"Emmanuel" a écrit dans le message de news:
uEM7jYJ#
Je suis d'accord avec toi pour une partie.
En enregistrant, la conversion du point en virgule s'est effectuée, mais
le

nombre ainsi formé est toujours identifié comme du texte et non pas comme
un

nombre, ce que je veux. C'est cette conversion texte vers nombre que je ne
connais pas, en visual basic.

Emmanuel

"JièL Goubert" a écrit dans le
message de news:u$G%230DJ%
Bonjoir(c) Emmanuel

Le 21/02/2004 16:17 vous nous disiez ceci :
Bonjour,
je souhaite convertir, à l'aide d'une macro VBA, des cellules de type
"07.25" en nombre de type "7,25"
Pouvez vous m'indiquer la macro correspondante.


Juste pour le fun et ma participation au club des AMIS(*), menu Edition,
Remplacer, remplacer "." par "," remplacer tout.
Si tu tiens quand même a une macro, enregistre les manips précédentes,
ça t'évitera de réinventer quelque chose qui existe.

Merci d'avance.


--
La FAQ Outlook est la : http://faq.outlook.free.fr
JièL / Jean-Louis GOUBERT du club des AMIS
Co-auteur de "Internet + de 1 000 trucs de pros" chez Micro Application

http://faq.outlook.free.fr/livreMA/internet_plus_de_1000_trucs_de_pros.htm



(*) AMIS = Anti Macros Inutilement Superfétatoire






--
Cordialement,

Michel Gaboly
http://www.gaboly.com