XL 2010 Générateur de mots

  • Initiateur de la discussion Initiateur de la discussion apt
  • 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 !

apt

XLDnaute Impliqué
Bonjour à tous,

J'aimerais utilisé Excel pour générer des mots à partir d'une série de lettres.

Comment puis-je procéder ?

Merci d'avance.
 
Solution
Bonsoir le fil

En cherchant dans les archives, je suis tombé sur cette réponse que j'avais posté en 2011.
J'ai pris le temps de retirer la poussière et de le franciser
Code:
Dim CurrentRow

Sub GetString()
    Dim InString As String
    InString = InputBox("Saisir le texte à permuter")
    If Len(InString) < 2 Then Exit Sub
    If Len(InString) >= 8 Then
        MsgBox "Pas plus de 8 caractères!", vbCritical
        Exit Sub
    Else
        ActiveSheet.Columns(1).Clear
        CurrentRow = 1
        Call GetPermutation("", InString)
    End If
End Sub

Sub GetPermutation(x As String, y As String)
'   The source of this algorithm is unknown...
Bonjour,

c'est le jeu du Scrabble ? ou le jeu "Le Mot le plus long" ? de toutes façons, apparemment, il s'agit de créer des mots à partir de lettres ; mais s'agit-il de mots français compréhensibles (qui font partie d'un dictionnaire de la langue française) ou de n'importe quel « mot » ? dans le second cas, ça revient à trouver tous les anagrammes possibles à partir des lettres proposées ; c'est alors un problème de permutations (au sens statistiques).

c'est juste quelques éléments de réflexion ; remarque : tu devrais mettre un fichier Excel exemple !

je laisse la suite à un autre contributeur. 🙂

soan
 
Bonjour

Comme toujours, les archives du forum méritent d'être exploitées
NB: Il y a d'autres discussions sur ce thème.
 
Bonsoir le fil

En cherchant dans les archives, je suis tombé sur cette réponse que j'avais posté en 2011.
J'ai pris le temps de retirer la poussière et de le franciser
Code:
Dim CurrentRow

Sub GetString()
    Dim InString As String
    InString = InputBox("Saisir le texte à permuter")
    If Len(InString) < 2 Then Exit Sub
    If Len(InString) >= 8 Then
        MsgBox "Pas plus de 8 caractères!", vbCritical
        Exit Sub
    Else
        ActiveSheet.Columns(1).Clear
        CurrentRow = 1
        Call GetPermutation("", InString)
    End If
End Sub

Sub GetPermutation(x As String, y As String)
'   The source of this algorithm is unknown
    Dim i As Integer, j As Integer
    j = Len(y)
    If j < 2 Then
        Cells(CurrentRow, 1) = x & y
        CurrentRow = CurrentRow + 1
    Else
        For i = 1 To j
            Call GetPermutation(x + Mid(y, i, 1), _
            Left(y, i - 1) + Right(y, j - i))
        Next
    End If
End Sub
1er résultat: 120 "mots" (avec présence de doublons)
Une fois, les doublons supprimés (avec Données/Supprimer les doublons)
Il reste 60 valeurs.
 
- 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
19
Affichages
488
  • Question Question
Réponses
2
Affichages
73
  • Question Question
Réponses
6
Affichages
284
Réponses
10
Affichages
234
Retour