Excel séparation d'un nombre à x chiffres

Résolu/Fermé
jacko - 2 avril 2012 à 15:38
 jacko - 3 avril 2012 à 10:39
Bonjour,

Je souhaite séparer un nb à x chiffre en x cellule avec cette fonction

Sub test()
For x = 1 To Len(ActiveCell)
ActiveCell.Offset(0, x) = Mid(ActiveCell, x, 1)
Next
End Sub

En faisant écrire la réponse de droite à gauche et pas l'inverse.

La longueur des chiffres étant aléatoire, le chiffre se trouvant dans la case 1, si on parle d'euros, peut-être 1 euro (unité), tout comme 10 euros (si deux chiffres), 100 (si 3 chiffres), etc.
J'aimerais pouvoir aligner les chiffres en partant de l'unité pour remonter au plus grand et pas l'inverse (situation actuelle)

Situation actuelle
Si nb = 10
alors
cellule 1 = 1
cellule 2 = 0
Si nb = 100
alors
cellule 1 = 1
cellule 2 = 0
cellule 3 = 0
Situation souhaitée
Si nb = 10
alors
cellule 1 = 0
cellule 2 = 1
Ainsi les unités sont toutes sur la même colonne (cellule 1), les dizaines aussi (cellule 2), etc.
Merci pour votre aide




A voir également:

3 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
2 avril 2012 à 18:20
Bonjour

On peut utiliser la fonction StrRreverse

Sub test()
inverse = StrReverse(ActiveCell)
nbre = Len(ActiveCell)
For x = 1 To nbre
     ActiveCell.Offset(0, x) = Mid(inverse, x, 1)
Next
End Sub

1
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
2 avril 2012 à 15:51
Bonjour,
Le nombre sera rentre ou ????
0
Merci michel.

Cette solution est la plus simple et la meilleure.

Je m'étais lancé en créant un vecteur et en lui donnant une taille sachant que je pouvais avoir au max 8 chiffres. Chaque chiffre s'écrivait ensuite dans une cellule.
0