Anagramme sur excel

Résolu
dmxs291 Messages postés 11 Date d'inscription   Statut Membre Dernière intervention   -  
dmxs291 Messages postés 11 Date d'inscription   Statut Membre Dernière intervention   -
Bonsoir, je voudrais savoir si on peut saisir une série de lettres sur excel et faire apparaitre tout les anagrammes possibles qu'ils aient un sens ou non. Si oui veillez me donner le procédé à suivre S.V.P, MERCI !
A voir également:

6 réponses

Frenchie83 Messages postés 2240 Date d'inscription   Statut Membre Dernière intervention   338
 
Bonjour
C'est un sujet récurrent, qui à eu beaucoup de réponses. Des intervenants très compétents sur ce site pourront vous proposer des solutions très performantes, mais en attendant, je peux vous proposer bien modestement une solution (qui informatiquement parlant, n'est pas des plus performantes, mais elle à le mérite de fonctionner).
Saisissez les caractères à permuter en A1 (maximum 12 caractères), puis cliquez sur le bouton. Il est évident que, plus il y a de caractères, plus le temps de recherche des permutation sera long.
Essayez en attendant de meilleures propositions.
https://www.cjoint.com/c/CIishRLh5pr
bonne soirée
cdlt
2
Raymond PENTIER Messages postés 58988 Date d'inscription   Statut Contributeur Dernière intervention   17 352
 
... avec macro, comme annoncé dans mes trois messages.
0
Frenchie83 Messages postés 2240 Date d'inscription   Statut Membre Dernière intervention   338
 
Bonsoir Raymond
Oui bien sûr avec macro. En Excel, ce serait peut-être faisable, mais compliqué à mettre en oeuvre.
Raymond, j'ai vu dans de précédents posts que vous ne pratiquiez pas le VBA, mais vu votre maîtrise d'Excel et sans vouloir vous jeter des fleurs, je ne doute pas un instant que vous apporteriez des solutions pratiques à des problèmes qui ne peuvent se résoudre que par le VBA.
Alors Raymond, le VBA, c'est pour quand?
Bien amicalement
0
Raymond PENTIER Messages postés 58988 Date d'inscription   Statut Contributeur Dernière intervention   17 352
 
Tous mes neurones sont occupés, et saturés ; il ne m'en reste plus suffisamment pour attaquer une nouvelle activité ; et VBA, c'en est vraiment une !
Autant j'étais fana du Basic, au temps du DOS, autant je n'ai jamais vraiment adhéré à Visual Basic, malgré diverses tentatives.
Mais je te remercie de ton attention !
0
Raymond PENTIER Messages postés 58988 Date d'inscription   Statut Contributeur Dernière intervention   17 352
 
Bonjour.

Si on peut ? Avec une macro écrite en VBA, peut-être ...

Avec les méthodes classiques, je crains qu'il n'y ait aucune autre méthode que celle que tu utilises avec un papier et un crayon !
Excel ne peut alors te servir
1) qu'à calculer le nombre de résultats possibles, à savoir
=PERMUTATION(NBCAR(A1);NBCAR(A1))
et si A1 contient "zut" le résultat du calcul est 6 (à savoir zut-ztu-utz-uzt-tzu-tuz)
Mais si A1 contient "cinq" il y a déjà 24 possibilités ; si A1 contient "douze" il y a 120 solutions ... et quand on arrive à "cordialement" c'est 479 001 600 anagrammes qu'il faut trouver !
2) qu'à écrire tout cela proprement

C'est bien, la retraite ! Surtout aux Antilles ... :-)
☻ Raymond ♂
1
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
Bonjour à tous

Avec mon vieil excel 2003 je ne peux pas ouvrir le fichier de frenchie83 ....
Une autre proposition peut être différente mais toujours VBA
https://www.cjoint.com/?3IitOSd1E7H

Bonne fin de journée ... et bon après midi à Raymond (le veinard)
1
Frenchie83 Messages postés 2240 Date d'inscription   Statut Membre Dernière intervention   338
 
Bonsoir ccm81
Pour le plaisir de partager
Voici en version 2000, tout d'abord, je tiens à préciser que mon travail relève de la bidouille, donc pas comparable avec votre travail de Pro, mais bon, ça fonctionne. Quant à la présentation, elle est différente, puisque je mets chaque résultat de permutation dans la même cellule, ce qui me permet de remplir plusieurs colonnes dans le cas où le nombre de caractères à traiter implique un résultat supérieur aux nombres de lignes max.
Pour le fonctionnement, en A1, on met les caractères à permuter sans séparateur, puis on clique sur le bouton.
Un jour où j'aurai le temps, je m'amuserai à le refaire.
bonne soirée
0
Frenchie83 Messages postés 2240 Date d'inscription   Statut Membre Dernière intervention   338
 
Zut, j'ai oublié
https://www.cjoint.com/?CIiunYSVhiJ
mais c'est avec excel 97, ça doit marcher avec 2000
0
dmxs291 Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
 
C'est justement ce que je veux faire avec Excel mais j'ai pas l'habitude de l'utiliser conséquence je n'y comprend pas grand chose. Je veux juste programmer Excel de tel sorte que si je tape un mot, il me donne sur une liste toutes les anagrammes possibles.
0

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

Posez votre question
Raymond PENTIER Messages postés 58988 Date d'inscription   Statut Contributeur Dernière intervention   17 352
 
Je crois que tu n'as pas lu (ou compris) ce que j'ai écrit ... alors je résume :
Presqu'impossible ...
... sauf si tu connais le langage VBA, pour créer une macro.
0
Raymond PENTIER Messages postés 58988 Date d'inscription   Statut Contributeur Dernière intervention   17 352
 
Cette demande a déjà été formulée dans le forum, et d'après mes souvenirs personne n'avait pu proposer une solution classique.
0
dmxs291 Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
 
D'accord je vois, bah merci quand même !
0
JvDo Messages postés 1978 Date d'inscription   Statut Membre Dernière intervention   859
 
Bonsoir à tous,

Il est tout à fait possible de résoudre ton problème sans passer par VBA.

Il "suffit" de générer les permutations dans l'ordre lexicographique en partant, par exemple, d'un algo kivabien (celui que j'ai utilisé vient du livre de Berstel, Pin et Pocchiola : Mathématiques et informatiques) et de le transposer en Excel/feuille de calcul.

Naturellement, tout ce qui est combinatoire explose rapidement et le nombre d'anagrammes devient inexpoitable.
J'ai donc limité le nombre de lettres à 8 (40 320 permutations quand même).

Ensuite, j'ai travaillé sur les indices (de 1 à 8) pour lister les permutations de 12345678 à 87654321.
A partir de là, il suffit d'utiliser la fonction INDEX() pour avoir l'équivalent alphabétique des permutations.

Les formules ne sont cependant pas simples puisqu'elles font le travail d'un algo.
Voici donc un classeur https://www.cjoint.com/c/CIjbU1S01km qui liste les anagrammes d'un mot de 8 lettres.
Pour des raisons de taille, je n'ai gardé que les 40 premières lignes. Il faudra recopier vers le bas (jusqu'en 40322) pour avoir un tableau complet.

Il faudra le modifier un peu pour qu'il fonctionne avec des mots de longueurs inférieures.

Cordialement
0
Raymond PENTIER Messages postés 58988 Date d'inscription   Statut Contributeur Dernière intervention   17 352
 
Un seul mot : Bravo !
dmxs291 va pouvoir s'occuper ...
0
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
Peux tu mettre en ligne ton classeur au format excel 2003, je suis curieux de voir la "bête"
Merci
0
JvDo Messages postés 1978 Date d'inscription   Statut Membre Dernière intervention   859
 
Bonjour ccm81,

j'ai du remanier mes formules pour qu'elles passent en version 97/2003 (trop de niveaux d'imbrication).
J'ai quand même des messages d'erreur quand je change de format à l'enregistrement mais je ne vois pas de problème quand j'ouvre le fichier xls ainsi généré.
A toi de me dire si ça fonctionne chez toi.

J'ai ajouté des commentaires pour rendre compréhensibles les formules.

Cordialement

https://www.cjoint.com/?CIjo4ccNeVI
0
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
Bonjour JvDo

Merci d'avoir adapté (et envoyé) le fichier au format 2003
C'est vraiment sympa d'avoir pris la peine d'expliquer la démarche
Je n'ai pas d'erreur, ni à l'ouverture, ni après un F9, ni à l'enregistrement, donc de ce côté là tout va bien
Il ne me reste plus qu'à décortiquer la bête, et là, il y a apparemment du travail!

Bonne fin de journée

Cordialement
0
dmxs291 Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
 
Merci à tout les intervenants, j'ai trouvé ce que je voulais, vous êtes vraiment des petits génies, merci encore et bonne journée !
0