Trouver des mots à partir des lettres

R@chid

XLDnaute Barbatruc
Bonjour les amis,
je me permet de poser la question, espérant que ce que je veux soit réalisable sur Excel.
je veux un code VBA qui peut combiner des lettres pour faire des mots et d'en extraire juste les mots qui fonts partis du dictionnaire français.

je joins un fichier.

Merci d'avance
 

Pièces jointes

  • Exemple_XLD.xlsx
    11 KB · Affichages: 81

david84

XLDnaute Barbatruc
Re : Trouver des mots à partir des lettres

Bonjour Rachid,

le problème dans ta demande n'est pas tant la génération de mots que le traitement de chaque mot pour savoir si c'est un mot français ou pas. Donc avant de traiter de la génération de mots il faut déjà voir si une solution existe pour ensuite traiter correctement les mots générés.

Peut-être une piste à explorer en passant par le vérificateur d'orthographe. Le problème c'est que si l'utilisateur a dans son dictionnaire personnalisé des mots qui ne veulent rien dire ils seront tout de même ramenés.
Autrement dit la procédure ne va pas te dire si tel mot est français ou non mais simplement si ce mot figure dans le dictionnaire chargé de vérifier l'orthographe d'un texte.

Place des mots dans la colonne A et lance la procédure.
Les mots reconnus (car existant dans le dictionnaire) seront recopiés en colonne B.
Code:
Sub test()
Dim R As Range, C As Range, DerLig As Long, i As Long, T() As String
With Worksheets("Feuil1")
  DerLig = .Range("A" & .Cells.Rows.Count).End(xlUp).Row
  Set R = Worksheets("Feuil1").Range("A2:A" & DerLig)
  ReDim T(1 To DerLig)
  For Each C In R
    If MotExiste(C.Value) = True Then
      i = i + 1
      T(i) = C.Value
    End If
  Next C
  .Range("B2").Resize(i) = Application.Transpose(T)
End With
End Sub

Private Function MotExiste(ByVal strMot As String) As Boolean 'http://vb.developpez.com/faqvba/?page=3.1.2#CheckSpell
    MotExiste = Application.CheckSpelling(strMot, , False)
End Function

Après, voir si d'autres dictionnaires sont disponibles.

A+
 

R@chid

XLDnaute Barbatruc
Re : Trouver des mots à partir des lettres

Bonjour @ tous,
salut david84,
merci de ton intervention, mais en fait, la colonne A est réservée aux résultats du code VBA, cela dit que je ne prévois rien placer dans la colonne A d’où la question qu'il faut que le code combine les lettres et m'en sortir les mots du dictionnaire.

Merci
 

Paf

XLDnaute Barbatruc
Re : Trouver des mots à partir des lettres

Bonjour R@chid, Le_Troll_Du_27, david84,

Je ne sais pas si ça répond bien à la demande:
un vieil essai, basé sur une liste de mots récupérés sur un site (lequel ?). Tous les mots n'y sont pas, il y a des mots inutiles ...
On saisit une lettre par textbox (12)
on choisit la longueur des mots à rechercher

La recherche commence à être longue (voire très longue) à partir des mots de 7 lettres.

A+
 

Pièces jointes

  • cherche mots.zip
    339.5 KB · Affichages: 1 005

david84

XLDnaute Barbatruc
Re : Trouver des mots à partir des lettres

merci de ton intervention, mais en fait, la colonne A est réservée aux résultats du code VBA
D'accord mais bon ça c'est du détail : l'important est de voir si le principe est fonctionnel, et ce avant d'envisager la génération aléatoire de chaînes de texte.
Une autre façon de faire serait peut-être d'utiliser des requêtes à partir d'un site (de type dictionnaire par exemple) qui permet de vérifier si la suite de lettres générée correspond à un mot français.

A+
 

R@chid

XLDnaute Barbatruc
Re : Trouver des mots à partir des lettres

Re,
Salut Paf merci de ta belle réponse, mais ce serait mieux de se référer au dictionnaire et pas une colonne Excel où on tape des mots, si on peut garder la même structure dans mon fichier ce serait impec.

@ david84 :
oui le principe de chercher les mots dans le dictionnaire me convient parfaitement même s'il contient des mots qui sont pas forcement français, mais je ne veux pas me référer à des sites.

Merci @ tous
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Trouver des mots à partir des lettres

tristesse.jpg Bonjour à tous,

Un essai dans le fichier en lien ci-dessous. Cliquez sur le lien ICI puis, dans la fenêtre du navigateur, cliquer dans le bandeau supérieur noir sur l’icône 'Enregistrer sous" tele.jpg

(m'informer si le fichier est inaccessible svp)
 

R@chid

XLDnaute Barbatruc
Re : Trouver des mots à partir des lettres

Bonjour,
merci j'ai bien téléchargé le fichier.
il fonctionne parfaitement, j'ai constaté que tu te réfères à une base de mots sur l'autre onglet.
je garde la solution en espérant en avoir une autre qui cherche directement sur le dictionnaire :)



Mille Merci et merci :)
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Trouver des mots à partir des lettres

Bonjour R@chid,

C'était la première fois que j'utilisais Google Drive. C'est bon, ça fonctionne. Merci.

Je ne suis pas certain que construire tous les arrangements des lettres de départ et vérifier que chaque arrangement fait partie ou non du dictionnaire soit plus rapide qu'une méthode de recherche dans une liste de mots. D'autant plus qu'il faut, (selon ma pomme), tenir compte des lettres accentuées, des mots avec un ou plusieurs tirets, etc. ; ce qui augmente considérablement le nombre d’arrangements à tester. Mais quelqu'un démontrera sans doute que je me trompe...
 
Dernière édition:

david84

XLDnaute Barbatruc
Re : Trouver des mots à partir des lettres

Bonjour,
je partage l'avis de mapomme : le fait de travailler par rapport à une liste de mots permet d'accélérer la procédure. De plus dans le dictionnaire utilisé dans Excel peuvent figurer des termes qui ne sont pas des mots mais que l'utilisateur a pu accepter à un moment donné.
On pourrait envisager d'inclure dans la procédure l'import du fichier texte qui contient cette liste à partir d'internet mais si son chemin change la procédure ne fonctionne plus.

Après on peut débattre sur le fait de "désaccentuer" les mot pour les traiter car cela a bien entendu une influence sur le résultat (faite et faîte, mat et mât par exemple sont des mots différents) et si je choisis un "î" dans les lettres à prendre en compte la procédure pourrait éventuellement en tenir compte.

A+
 

R@chid

XLDnaute Barbatruc
Re : Trouver des mots à partir des lettres

Bonsoir @ tous,
merci mes chers amis pour votre aide et vos conseils
comme vous le dites c'est vrai que le fait de chercher les mots sur le fichier sera plus rapide que de chercher dans le dictionnaire.
pour le problème des accents il faut juste une grande base de données avec des mots accentués pour faire marcher la macro de l'ami mapomme je pense.


Merci les amis et @ plus
 

Discussions similaires

Réponses
16
Affichages
981