Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 Trouver nombre de combinaisons de lettres

  • Initiateur de la discussion Initiateur de la discussion Etoto
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Etoto

XLDnaute Barbatruc
Supporter XLD
Hello à tous,

Je demande de nouveau de l'aide sur le forum pour une question que je me pose. Est-ce possible de faire qu'Excel renvoie toutes les combinaisons possible d'anagrammes d'un mot ou nom ?

Exemple :

J'ai sur le fichier joint le prénom "Romain" et j'aimerai qu'Excel en colonne B renvoie tous les anagrammes possible de ce nom (sans doublons) comme j'avait déjà commencé en colonne B. J'avait utilisé la fonction Anagramme de @Magic_Doctor mais comme la fonction ALEA, elle renvoie des doublons.


Merci d'avance
 

Pièces jointes

Pour être précis, dans la macro, les doublons ne sont pas supprimés mais simplement pas créés. Avec :
VB:
Dico(Prefixe & Texte) = Prefixe & Texte
Si Préfixe & Texte sont déjà dans le dico une nouvelle entrée n'est pas créée.
 
ok j'ai testé le post 2 tout les fichiers celui avec la colonne "A" fonctionne
vérifier quand même de 120 à 30 je me demande si il ne manque pas des combi
mais j'avoue elle est pas mal la combi récursive
ça me rappelle un des algo que j'ai cité plus haut , il faudrait que je retrouve ça sur DVP
 
ok j'ai pas bien encore pigé comment la boucle s'arréte
mais je sais que ca se joue avec le if else et le la boucle len (chaine)
en debug je n'atteins jamais 0 et 1 je l’atteint plusieurs fois ,par contre 5 je l'atteins 1 fois en dernier 🤔

en attendant je vous l'ai transformé en fonction(toujours récursive)

VB:
Sub AppelCombi2()
    Dim TexteCombi As String, Tablo
    TexteCombi = Application.InputBox(prompt:="Texte combinaison")
    Cells.ClearContents
    Tablo = StringCombinaison("", TexteCombi, True)
    Cells(1).Resize(UBound(Tablo)) = Application.Transpose(Tablo)
End Sub


Function StringCombinaison(prefixe$, chaine$, Optional raz As Boolean = False)
    Static dic As Object
    Dim i As Long
    If dic Is Nothing Or raz = True Then Set dic = CreateObject("Scripting.Dictionary")
    If Len(chaine) <= 1 Then
        dic(prefixe & chaine) = prefixe & chaine
    Else
        For i = 1 To Len(chaine)
            StringCombinaison prefixe & Mid(chaine, i, 1), Left(chaine, i - 1) & Right(chaine, Len(chaine) - i)
        Next i
    End If
       StringCombinaison = dic.keys
End Function
 
après je le redis c'est pas le meilleur algo car des que l'on va vers entre 7 et 10 caractères voir plus
ben le moulin ne s’arrête plus
j'ai essayé le mot "identiquement" (soit 13 lettres ) et donc après 22 minutes d'attente , j'ai du avorter excel car il n'avait toujours pas fini , je suis pas sur qu'il se serait arrêté un jour 🤣🤣🤣

donc en ce qui me concerne c'est WRONG WAY!!! 😉
 
entre 7 et 10 caractères voir plus
ben le moulin ne s’arrête plus
Bas le positif est que mes strings les plus longs sont de 6 caractères, donc ça marche bien. Mais c'est sur qu'avec un "anticonstitutionnellement" ou un "patricktoulon", 😏 ça risque de mouliner 😁. Heureusement que je n'ai pas un prénom ni un pseudo trop long 🤣🤪. Et c'est normal Excel a 1'048'576 lignes, alors que le nombres de combinaisons de "patricktoulon" sans compter les lettres identiques est de 6'227'020'800 😱 😵 .
 
Dernière édition:
et oui le temps de travail est exponentiel
*7 a peu prés (par étage de puissance)
et c'est bien ce que je pensais le chiffre phare de excel est fatal c'est le chiffre 9
9 caractères et c'est fini ça ne s’arrête plus
j'avais a l'époque (il y a pas mal d'année )fait cela en javascript et utilisé ça dans un scriptcontrol et ça allais vachement plus vite
il faudrait que je retrouve ce truc dans mes archives ou dans DVP
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
21
Affichages
2 K
Réponses
18
Affichages
2 K
Réponses
19
Affichages
3 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…