Excel séparation d'un nombre à x chiffres
Résolu
jacko
-
jacko -
jacko -
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
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
3 réponses
-
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
-
Bonjour,
Le nombre sera rentre ou ???? -
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.