ce code premet de generer de smot a partir d'une serie de lettre
ex : "abc" donne aaa, aab,aac,aba,abc etc ..
la fonction est une fonction recursive
l'avantage de cette source est que pour une chaine de 8 lettres, il n'y a pas besoin d'imbriquer 8 boucles
Maj la mise a jour permet de choisir le nombre de lettre en sorti
ex : abc avec 3,3 = aaa,aab,aac,aba etc ..
abc avec 3,2 = aa,ab,ac etc ..
ATTENTION : ce code de mande pas mal de memoire vive si l'on veut bcp de lettre
Voila
desole c'est du code vba donc pas d'interface
Source / Exemple :
Public Sub AppelleGeneMot()
Dim chaine As String
Dim PosLettre(1 To 3) As Integer 'initiale un tableau de n case pour un mot à n lettre
chaine = ""
PosLettre(1) = 1
PosLettre(2) = 1
PosLettre(3) = 1
'le premier chiffre correspond au nombre lettre de la chaine ex abc = 3
' le deuxieme correspond au nombre de lettre voulue en sortie ex 3= aaa,aab,aac 2=aa,ab,ac
GeneMot "abc", PosLettre, chaine, 3, 3
MsgBox chaine
End Sub
Public Function GeneMot(chaine As String, PosLettre As Variant, ch As String, LongeurChaine As Integer, nbLettreVoulue As Integer)
While PosLettre(1) < LongeurChaine + 1
For l = 1 To nbLettreVoulue
a = a & Mid(chaine, PosLettre(l), 1)
Next l
ch = ch & a & Chr(13)
For m = nbLettreVoulue To 1 Step -1
If PosLettre(m) = LongeurChaine Then
If m <> 1 Then
PosLettre(m) = 1
Else
PosLettre(m) = PosLettre(m) + 1
End If
Else
PosLettre(m) = PosLettre(m) + 1
Exit For
End If
Next m
GeneMot chaine, PosLettre, ch, LongeurChaine, nbLettreVoulue
Wend
End Function
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.