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 ChrisVBonjour 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 EmmanuelJe suis d'accord avec toi pour une partie.
En enregistrant, la conversion du point en virgule s'est effectuée, mais
le
Post by Emmanuelnombre ainsi formé est toujours identifié comme du texte et non pas comme
un
Post by Emmanuelnombre, ce que je veux. C'est cette conversion texte vers nombre que je ne
connais pas, en visual basic.
Emmanuel
Post by JièL GoubertBonjoir(c) Emmanuel
Post by EmmanuelBonjour,
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.
--
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 EmmanuelPost by JièL Goubert(*) AMIS = Anti Macros Inutilement Superfétatoire
--
Cordialement,
Michel Gaboly
http://www.gaboly.com