Comment Générer toutes les Permutations dans Excel ?
Written by
Reviewed by
Last updated on novembre 27, 2023
Ce tutoriel montre comment générer toutes les permutations dans Excel.
Générer toutes les Permutations
À l’aide d’une macro VBA, vous pouvez générer toutes les permutations possibles d’un ensemble donné de caractères. Il vous suffit de créer un petit morceau de code et de saisir les caractères d’entrée
- Dans le Ruban, allez dans Développeur > Visual Basic. Si cet onglet n’est pas disponible, découvrez comment ajouter l’onglet Développeur.
- Dans la fenêtre VBA, allez dans Insérer > Module.
- Dans la fenêtre de code située à droite, collez le code suivant et enregistrez.
Sub GetString()
Dim xStr As String
Dim FRow As Long
Dim xScreen As Boolean
xScreen = Application.ScreenUpdating
Application.ScreenUpdating = False
xStr = Application.InputBox("Entrez le texte à permuter :", "Permutation", , , , , 2)
If Len(xStr) < 2 Then Exit Sub
If Len(xStr) >= 8 Then
MsgBox "Trop de permutations !", vbInformation, "Permutation"
Exit Sub
Else
ActiveSheet.Columns(1).Clear
FRow = 1
Call GetPermutation("", xStr, FRow)
End If
Application.ScreenUpdating = xScreen
End Sub
Sub GetPermutation(Str1 As String, Str2 As String, ByRef xRow As Long)
Dim i As Integer, xLen As Integer
xLen = Len(Str2)
If xLen < 2 Then
Range("A" & xRow) = Str1 & Str2
xRow = xRow 1
Else
For i = 1 To xLen
Call GetPermutation(Str1 Mid(Str2, i, 1), Left(Str2, i - 1) Right(Str2, xLen - i), xRow)
Next
End If
End Sub
- Vous avez maintenant créé la macro GetString et vous pouvez l’exécuter. Dans le Ruban, allez dans Développeur > Macros.
- Si elle n’est pas déjà sélectionnée, sélectionnez la macro et cliquez sur Exécuter.
- Dans la fenêtre contextuelle, entrez les caractères pour la permutation (ici, abcde) et cliquez sur OK.
Vous obtenez ainsi, dans la colonne A, toutes les permutations possibles (120) des caractères saisis.
Outre la macro décrite ci-dessus, Excel dispose d’une fonction intégrée, la fonction PERMUTATION, qui vous permet de calculer le nombre de permutations possibles pour un nombre donné. Cette fonction ne fonctionne qu’avec des nombres et non avec du texte.