Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

combinaisons_ABC

3 réponses
Avatar
RGI
Bonjour

en VBA

j'ai trois cellules ayant pour valeur A B C

comment puis-je obtenir ce résultat

ABC
ACB
BAC
BCA
CAB
CBA

Merci

RGI

3 réponses

Avatar
Filochard
j'ai trois cellules ayant pour valeur A B C
comment puis-je obtenir ce résultat

ABC
ACB
BAC
BCA
CAB
CBA


En utilisant la feuille de calcul et pas de tableau en mémoire et à partir d'une
feuille vide :

Sub Combine_Lettres()
Range("A1").CurrentRegion.ClearContents
x% = 3 'nombre de lettres (A,B,C,D....) à adapter ou initialiser avec InputBox
Application.ScreenUpdating = False
For nb% = 1 To x
Cells(nb, 1) = Chr(64 + nb)
Next
Cells(x, 1).Select
encore:
Set plage = Range(Cells(1, ActiveCell.Column), ActiveCell)
plage.Cells(1).Offset(0, 1).Select
For Each cel In plage
For nb = 1 To x
ActiveCell = cel & Chr(64 + nb)
ActiveCell.Offset(1, 0).Select
Next nb
Next cel
ActiveCell.Offset(-1, 0).Select
If ActiveCell.Column < x Then GoTo encore
laCol = ActiveCell.Column
laLg = ActiveCell.Row

For i = laLg To 1 Step -1
For j = 1 To Len(Cells(i, laCol))
Ltt$ = Mid(Cells(i, laCol), j, 1)
If Len(Application.Substitute(Cells(i, laCol), Ltt, "")) <>
Len(Cells(i, laCol)) - 1 Then
Cells(i, laCol).Delete
Exit For
End If
Next j
Next i
Range("B:" & Split(Cells(1, laCol - 1).Address, "$")(1)).Delete
End Sub

http://cjoint.com/?jwswAUfzk6

Avatar
Filochard
PS : Ne pas exécuter l'exemple à partir de c-joint mais le sauvegarder d'abord
sur le DD par ex.
Avatar
RGI
Merci Filochard

ça fonctionne bien

PS : Ne pas exécuter l'exemple à partir de c-joint mais le sauvegarder d'abord
sur le DD par ex.