Discussion:
Convertir texte en nombre
(trop ancien pour répondre)
Emmanuel
2004-02-21 15:17:19 UTC
Permalink
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
Jacky
2004-02-21 15:38:41 UTC
Permalink
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
Post by 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
Jacky
2004-02-21 15:46:53 UTC
Permalink
re..

Excuse,
J'avais cru voir un format horaire

JJ
Post by 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
Post by 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
JièL Goubert
2004-02-21 15:39:48 UTC
Permalink
Bonjoir(c) Emmanuel
Post by 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.
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.
Post by Emmanuel
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
Emmanuel
2004-02-21 16:16:19 UTC
Permalink
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
Post by JièL Goubert
Bonjoir(c) Emmanuel
Post by 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.
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.
Post by Emmanuel
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
ChrisV
2004-02-21 16:27:27 UTC
Permalink
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
Post by 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
Post by JièL Goubert
Bonjoir(c) Emmanuel
Post by 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.
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.
Post by Emmanuel
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
Post by Emmanuel
Post by JièL Goubert
(*) AMIS = Anti Macros Inutilement Superfétatoire
Michel Gaboly
2004-02-21 17:41:17 UTC
Permalink
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.
Post by 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
Post by Emmanuel
Je suis d'accord avec toi pour une partie.
En enregistrant, la conversion du point en virgule s'est effectuée, mais
le
Post by Emmanuel
nombre ainsi formé est toujours identifié comme du texte et non pas comme
un
Post by Emmanuel
nombre, ce que je veux. C'est cette conversion texte vers nombre que je ne
connais pas, en visual basic.
Emmanuel
Post by JièL Goubert
Bonjoir(c) Emmanuel
Post by 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.
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.
Post by Emmanuel
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
Post by Emmanuel
Post by JièL Goubert
(*) AMIS = Anti Macros Inutilement Superfétatoire
--
Cordialement,

Michel Gaboly
http://www.gaboly.com

Michel Gaboly
2004-02-21 17:14:03 UTC
Permalink
Bonsoir,

En VBA tu peux utiliser une des fonctions de conversion de type (CSng, CDble,
CDec, ...) ou multiplier par 1.
Post by 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
Post by JièL Goubert
Bonjoir(c) Emmanuel
Post by 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.
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.
Post by Emmanuel
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
JièL Goubert
2004-02-21 17:09:15 UTC
Permalink
Bonjoir(c) Emmanuel
Post by Emmanuel
Je suis d'accord avec toi pour une partie.
chic alors ;-)))
Post by Emmanuel
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.
Post by Emmanuel
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
Loading...