Convertir texte en nombre dans une macro [Résolu/Fermé]

Signaler
Messages postés
135
Date d'inscription
mardi 11 juin 2013
Statut
Membre
Dernière intervention
19 mars 2018
-
Messages postés
135
Date d'inscription
mardi 11 juin 2013
Statut
Membre
Dernière intervention
19 mars 2018
-
Bonjour,

A travers ma macro, je voudrais convertir une colonne de chiffre qui sont considérés comme du texte, je veux les convertir en nombre.
ex:
00111
01567
02576

Si je sélectionne ma colonne A, j'ai un petit losange avec un point d'exclamation, et le menu déroulant offre l'option "convertir en nombre". Mais on dirait que je peux pas utiliser cette fonction dans je suis en train de bâtir ma macro.
Cette option semble un raccourci mais où puis-je aller la sélectionner directement ?
Ou bien quelle est la formule en langage VBA pour convertir ma colonne A en chiffre pour que ça donne:
111
1567
2576

Merci.


A voir également:

9 réponses

Messages postés
17304
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
15 avril 2021
4 570
Bonsoir,

Tu n'as pas besoin de macro pour ça, saisir le chiffre 1 dans une cellule, clic sur cette cellule contenant 1 et clic droit Copier
Sélectionne toute ta plage de valeur à traiter et clic droit collage spécial/coche multiplication et OK
tu vas bien obtenir
111
1567
2576

mais tant que la plage est sectionnée, refaire un clic droit sur la sélection/Format de cellule/Nombre/Personnalisée et dans la zone de saisie tape 5 zéros 00000

maintenant si tu souhaites une macro il n'y a pas de problème mais pourquoi faire compliqué lorsqu'on peut faire simple
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
135
Date d'inscription
mardi 11 juin 2013
Statut
Membre
Dernière intervention
19 mars 2018

parce que je suis en train d'automatiser une tonne de manipulation, incluant celle-ci.
C'est sûr que c'est facile à convertir rapidement, mais je voulais l'incorporer dans ma macro qui modifie totalement ma feuille.

j'ai essayé ton truc du collage spécial. Je ne connaissais pas. Je n'arrive pas à comprendre comment ça marche mais l'important c'est que ça marche super bien. merci.

Par contre, comme ma plage peut varier d'une fois à l'autre, j'ai présentement une centaine de numéro, j'ai sélectionné une plage plus grande (environ jusqu'à 200) pour que ma macro puisse fonctionner quand même lorsque la liste sera plus longue. Mais le hic, c'est que ç'a mis plein de 0 à la suite de ma liste (soit entre la ligne 100 et 200). Il ne faut pas que ça fasse des 0 là où il n'y avait pas de numéro. Comment puis-je pallier à ce problème svp ?

merci
Messages postés
17304
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
15 avril 2021
4 570
Re,

Ok pour la macro, quel est la colonne à traiter avec la cellule de départ exemple à partir de A2
Messages postés
135
Date d'inscription
mardi 11 juin 2013
Statut
Membre
Dernière intervention
19 mars 2018

oui
Messages postés
17304
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
15 avril 2021
4 570
Re,

"oui" n'est pas la réponse que j'attendais, quel est la première cellule de la plage à traiter
Messages postés
135
Date d'inscription
mardi 11 juin 2013
Statut
Membre
Dernière intervention
19 mars 2018

oui pour A2
Messages postés
17304
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
15 avril 2021
4 570
Re,

essaye comme cela

Sub test()
Range([A2], [A65536].End(xlUp)).NumberFormat = "00000"
End Sub
Messages postés
17304
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
15 avril 2021
4 570
RE,

ça y est, on a décroché ?

bon suivant comment sont saisi les valeurs au format texte, il est possible que mon code précédent ne convertisse pas les données ce que j'ignore pour l'instant, si c'était le cas, tester ce code

Sub test()
Dim x As Integer
For x = 2 To [A65536].End(xlUp).Row
Cells(x, 1) = Cells(x, 1) * 1
Cells(x, 1).NumberFormat = "00000"
Next x
End Sub

A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
Messages postés
135
Date d'inscription
mardi 11 juin 2013
Statut
Membre
Dernière intervention
19 mars 2018

désolée, je n'avais pas décroché... j'avais juste terminé ma journée de travail. Il n'est pas la même heure ici, je suis au Québec.

ça fonctionne très bien, un gros merci.