Dècomposition d'un nombre avec excel.

* daniel
Anonyme
Envoyé le 30/08/2010 à 11:59

Bonjour,peut on dècomposè un nombre? ex:125458 dans une cellule et mettre le 1 dans une autre cellule puis le 2 encore dans une autre,le 5,etc: je n'ai trouver que droite et gauche avec excel.Merci [8(]

* DENIS
Anonyme
Envoyé le 30/08/2010 à 23:44

Bonsoir

Dans quel but voulez vous faire cela?

Fusionner les cellules serait il suffisant ou des interactions doivent elles être prises en compte.

Essayez de detailler un peu plus parceque là c'est un peu minimaiste je trouve comme description.

Cordialement.



* daniel
Anonyme
Envoyé le 31/08/2010 à 11:59

Merci denis le plus simple possible, trop difficile à expliquer (les carré magiques vous connaissez (5*5)dètailler se serais trop long).et je ne suis pas un expert Excel je bidouille. (?)

Pegase Pegase
1 023 contributions
Membre depuis le 07/02/2002
Envoyé le 31/08/2010 à 14:48 Modifié par Pegase


Bonjour,

J'avais posté une réponse ce matin qui n'apparait pas bizarre !

Je disais en gros
Est-cela que tu veux
nsa19.casimages.com/img/2010/08/31/100831110606405326.jpg

Voici une solution pas très élégante mais qui fonctionne
Dans la cellule B1 tu tapes
=GAUCHE(DROITE(A1;NBCAR(A1)-0);1)

Dans la cellule C1 tu tapes
=GAUCHE(DROITE(A1;NBCAR(A1)-1);1)

Dans la cellule D1 tu tapes
=GAUCHE(DROITE(A1;NBCAR(A1)-2);1)
etc...

Seule le caractère en gras change d'une cellule à l'autre.

Voici une solution beaucoup plus élégante et pratique.
En effet elle permet de s'adapter à la longueur initiale de la chaîne de caractères 125458, elle permet d'écrire, automatiquement, le résultat à partir de la cellule de droite adjacente à celle qui contient 125458.
Dans ma macro, une ligne de commande efface automatique les 10 cellules adjacente à 125458 afin de palier à des erreurs de frappes (ex on tape 1254580 puis on corrige en 125458).
Avant de lancer la macro il faut sélectionner la cellule à décomposer


Sub Decompo()
Dim Chaine As String, LgChaine As Integer, Lg As Integer, Cl As Integer
Lg = ActiveCell.Row 'N° de ligne de la cellule à décomposer
Cl = ActiveCell.Column 'N° de colonne de la cellule à décomposer
Chaine = Cells(Lg, Cl)
LgChaine = Len(Chaine) 'Calcul de la longueur de la chaîne de caractères
Range(Cells(Lg, Cl + 1), Cells(Lg, Cl + 10)).Clear 'Effacement de 10 cellules
For I = 1 To LgChaine 'Boucle d'écriture de la décomposition
Cells(Lg, Cl + I) = Mid(Chaine, I, 1)
Next

End Sub


Les information après l'apostrophe ' sont des commentaires pour t'aider à comprendre.

Si tu ne sais pas où copier cette macro, demande !
Moi, le jour où j'aurai vraiment mon âge, je mourrai (Léo Ferré).
Pegase Pegase
1 023 contributions
Membre depuis le 07/02/2002
Envoyé le 31/08/2010 à 15:39


Il y a un pb en ce moment sur Mémoclic
La contribution de J_D où il disait "je fais un test n'apparait plus".
De plus impossible d'utiliser les icones gras italique... au dessus de l'espace de réponse.

J_D tiens nous au courant de ton test, mais chez moi cela fonctionne bien
Moi, le jour où j'aurai vraiment mon âge, je mourrai (Léo Ferré).
* daniel
Anonyme
Envoyé le 31/08/2010 à 18:51

Merci pour la macro je la met sous le coude.
la formule fonctionne très bien.
met depuis cette nuit j'ai manipuler quelques fonctions excel et j'ai mis au point une formule qui à la fonction désiré: je vous la comunique:
=stxt(a1;1;1)
=stxt(a1;2;1)
=stxt(a1;3;1)
etc.... je pensais que la fonction stxt conscerné uniquement les caractéres texte [:Z] je me suis tromper.
A bientôt cordialement.

MemoClic MemoClic
494 contributions
Membre depuis le 22/02/2001
Envoyé le 31/08/2010 à 19:03



Il y a un pb en ce moment sur Mémoclic
La contribution de J_D où il disait "je fais un test n'apparait plus".
De plus impossible d'utiliser les icones gras italique... au dessus de l'espace de réponse.

J_D tiens nous au courant de ton test, mais chez moi cela fonctionne bien


je travaille sur le forum en théorie cela devrait fonctionner correctement maintenant. désolé…  [:)(]
Nicolas Santos : Webmaster de MemoClic
Pegase Pegase
1 023 contributions
Membre depuis le 07/02/2002
Envoyé le 31/08/2010 à 21:10



je vous la comunique:
=stxt(a1;1;1)
=stxt(a1;2;1)
=stxt(a1;3;1)


Effectivement et c'est beaucoup plus simple.
Je la connaissais mais je l'avais oublié, surtout que j'ai plutôt tendance à écrire des macros pour résoudre ce type de problème. Or la synthaxe des formules et celle des macros sont différentes.
Moi, le jour où j'aurai vraiment mon âge, je mourrai (Léo Ferré).

Discussion trop ancienne

Cette discussion a été automatiquement fermée car elle n'a plus reçue de nouveau message depuis trop longtemps.

Nous vous suggérons de créer un nouveau message

« Retour sur la liste des messages de ce forum