Comment générer ou lister toutes les permutations possibles dans Excel ?
Par exemple, j'ai trois caractères XYZ, et maintenant, je souhaite lister toutes les permutations possibles basées sur ces trois caractères pour obtenir six résultats différents comme ceci : XYZ, XZY, YXZ, YZX, ZXY et ZYX. Dans Excel, comment pourriez-vous rapidement générer ou lister toutes les permutations en fonction d'un nombre différent de caractères ?
Générer ou lister toutes les permutations possibles basées sur des caractères avec un code VBA
Générer ou lister toutes les permutations possibles basées sur des caractères avec un code VBA
Le code VBA suivant peut vous aider à lister toutes les permutations en fonction de votre nombre spécifique de lettres. Veuillez procéder comme suit :
1. Maintenez les touches ALT + F11 enfoncées pour ouvrir la fenêtre Microsoft Visual Basic pour Applications.
2. Cliquez sur Insérer > Module, puis collez le code suivant dans la fenêtre du module.
Code VBA : Liste de toutes les permutations possibles dans Excel
Sub GetString()
'Updateby Extendoffice
Dim xStr As String
Dim FRow As Long
Dim xScreen As Boolean
xScreen = Application.ScreenUpdating
Application.ScreenUpdating = False
xStr = Application.InputBox("Enter text to permute:", "Kutools for Excel", , , , , , 2)
If Len(xStr) < 2 Then Exit Sub
If Len(xStr) >= 8 Then
MsgBox "Too many permutations!", vbInformation, "Kutools for Excel"
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
3. Appuyez ensuite sur la touche F5 pour exécuter ce code, et une boîte de dialogue apparaît pour vous rappeler d'entrer les caractères dont vous voulez lister toutes les permutations, voir capture d'écran :
4. Après avoir entré les caractères, cliquez ensuite sur le bouton OK, toutes les permutations possibles sont affichées dans la colonne A de la feuille de calcul active. Voir capture d'écran :
Remarque : Si la longueur des caractères entrés est égale ou supérieure à 8 caractères, ce code ne fonctionnera pas car il y a trop de permutations.
Lister ou générer toutes les combinaisons possibles à partir de plusieurs colonnes
Si vous devez générer toutes les combinaisons possibles basées sur les données de plusieurs colonnes, il se peut qu'il n'y ait pas de bonne méthode pour traiter cette tâche. Mais l'utilitaire Lister toutes les combinaisons de Kutools pour Excel peut vous aider à lister toutes les combinaisons possibles rapidement et facilement. Cliquez pour télécharger Kutools pour Excel !
Kutools pour Excel : avec plus de 300 compléments Excel pratiques, essai gratuit sans limitation pendant 30 jours. Téléchargez et essayez gratuitement dès maintenant !
Meilleurs outils de productivité Office
Dynamisez vos compétences Excel avec Kutools pour Excel et découvrez une efficacité inégalée. Kutools pour Excel propose plus de300 fonctionnalités avancées pour booster votre productivité et gagner du temps. Cliquez ici pour obtenir la fonctionnalité la plus essentielle pour vous...
Office Tab apporte une interface à onglets à Office, et facilite grandement votre travail
- Activez la modification et la lecture par onglets dans Word, Excel, PowerPoint, Publisher, Access, Visio et Project.
- Ouvrez et créez plusieurs documents dans de nouveaux onglets de la même fenêtre, au lieu d’ouvrir de nouvelles fenêtres.
- Augmentez votre productivité de50% et réduisez des centaines de clics de souris chaque jour!