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