Generer des mots à partir de lettres dans Excel [Résolu]

Signaler
Messages postés
16
Date d'inscription
dimanche 27 novembre 2011
Statut
Membre
Dernière intervention
21 février 2014
-
paolo_m
Messages postés
16
Date d'inscription
dimanche 27 novembre 2011
Statut
Membre
Dernière intervention
21 février 2014
-
Bonjour,
Je suis débutant avec le langage VBA Office.
J'aimerai faire un petit programme qui me permet de retrouver tous les mots dans une série de lettres aléatoire. Est il possible d'utiliser le dictionnaire office ?

Merci.

5 réponses

Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
220
Bonjour,
ce "dictionnaire office" n'existe pas vraiment exploitable comme un objet dictionnary.
Tout ce que tu pourrais tenter de faire avec, serait de vérifier (avec Application.checkspelling) que le mot "proposé" ne donne pas lieu à une correction.
Je ne sais pas si tu te rends compte de ce que cela veut dire :
1) le nombre de "mots" composé de n lettres est égal à n! (factorielle n) ... ===>> énorme à partir de 8 lettres. Pour SEULEMENT les "tenter" (et donc les déterminer avant "test") çà va être lent, lent, très lent ...
2) et cette lenteur va se trouver accrue par ton "test"
Tu es mal barré, là ... Surtout si (ce que tu dis être) tu es un débutant.

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviend
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
47
Bonjour

en net j'arrive à obtenir les permutations d'une chaine de 10 letttres en 2 secondes
11 lettres out of memory
en vba je ne sais pas combien cela prendra
l'algo sur lequel je me suis basé
e principe on applique la rotation sur la chaine et les sous chaines
ex 1234

rotation 3 fois
phase initiale 1234 rotation 3 fois
4123
3412
2341
rotation des sous chaines
1 & rotation(234) rotation deux fois
1 423
1 432
la meme chose avec 4123 ,3412,2341
on reprend le premier résultat
"12" & rotation(34) rotation une fois
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
220
Bonjour, cs_ShayW,
Je ne sais pas si cette méthode est vraiment plus rapide, mais de toutes manières :
1) on ne peut limiter à 10 la longueur des mots
2) j'espère qu'il ne s'agit pas d'un jeu tel le scrabble, jeu de chiffres et des lettres, etc ... car alors :
--- utiliser application.checkspelling serait une autre source de lenteur et (bien plus gênant) n'accepterait pas des mots sans accent lorsque l'accent est prévu (par exemple : thérapeute)
----ces jeux-là n'obligent pas à utiliser toutes les lettres ===>> il faudrait donc également recenser les autres mots possibles par longueur décroissante ===>> autre source de lenteur

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviend
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
47
Bonjour Ucfoutu

Si je pense que c'est assez rapide,j'avais trouvé l'algo dans google
en vb6 j'atteins les 8 sec
pour 10 caractères bien sur c'est seulement les permutations sans verifier s'il le mot existe.
ucfoutu
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
220
Bonjour, cs_ShayW,
Restent les autres aspects dont j'ai parlé. Et ils sont très loin d'être négligeables.
Et ne pas espérer pouvoir jouer avec les Ucase ou Lcase ...
Regarde (et continue) :

 MsgBox "Aaa " & Application.CheckSpelling("Aaa")
MsgBox "AAA " & Application.CheckSpelling("AAA")
MsgBox "Thé " & Application.CheckSpelling("Thé")
MsgBox "THE " & Application.CheckSpelling("THE")
MsgBox "THWOWO " & Application.CheckSpelling("THO")
MsgBox "thwowo " & Application.CheckSpelling("thwowo")
Messages postés
16
Date d'inscription
dimanche 27 novembre 2011
Statut
Membre
Dernière intervention
21 février 2014

Bonjour à tous.
Pour un premier essai je me suis peut être un peu trop emballé.
Merci pour vos réponse même si je n'y comprend pas la moitié.
Pour commencer je me suis lancé dans un petit programme de comptage d'heure de travail.
Encore merci.