Convertir texte en nombre dans une macro

Résolu/Fermé
Ju@nita
Messages postés
135
Date d'inscription
mardi 11 juin 2013
Statut
Membre
Dernière intervention
19 mars 2018
- 7 mai 2014 à 20:52
Ju@nita
Messages postés
135
Date d'inscription
mardi 11 juin 2013
Statut
Membre
Dernière intervention
19 mars 2018
- 8 mai 2014 à 14:43
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

Mike-31
Messages postés
17975
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
27 juin 2022
4 959
7 mai 2014 à 21:07
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
Ju@nita
Messages postés
135
Date d'inscription
mardi 11 juin 2013
Statut
Membre
Dernière intervention
19 mars 2018

7 mai 2014 à 21:17
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
0
Mike-31
Messages postés
17975
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
27 juin 2022
4 959
7 mai 2014 à 21:23
Re,

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

7 mai 2014 à 21:24
oui
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Mike-31
Messages postés
17975
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
27 juin 2022
4 959
7 mai 2014 à 21:27
Re,

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

7 mai 2014 à 21:27
oui pour A2
0
Mike-31
Messages postés
17975
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
27 juin 2022
4 959
7 mai 2014 à 21:46
Re,

essaye comme cela

Sub test()
Range([A2], [A65536].End(xlUp)).NumberFormat = "00000"
End Sub
0
Mike-31
Messages postés
17975
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
27 juin 2022
4 959
Modifié par Mike-31 le 7/05/2014 à 23:14
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.
0
Ju@nita
Messages postés
135
Date d'inscription
mardi 11 juin 2013
Statut
Membre
Dernière intervention
19 mars 2018

8 mai 2014 à 14:43
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.
0