Preciso de um código em vba que faça todas as combinações possíveis:
Tenho 4 elementos:
MA, MD, FA, F5
Preciso saber todas as combinações possíveis
Por exemplo:
1MA2MD3FA4F5
Os números representam as posiçõe dos elementos
1 primeira posição (1MA) Elemento MsA na primeira posição
2 segunda posição (2MD) Elemento MD na segunda posição
3 terceira posição (3FA) Elemento FA na terceira posição
4 quarta posição (4F5) Elemento F5 na quarta posição
O 5 não é quinta posição. É parte integrante de um dos elementos.
Todos os elementos deverão ocupar a primeira, a segunda, a terceira e a quarta posições.
A mesma posição poderá repetir o mesmo elemento em linha diferente, desde que não gere combinação repetida de 4 elementos na mesma sequência.
Outros exemplos:
1MA2FA3F54MD
1MA2F53MD4FA
Cada combinação de 4 números e 4 elementos será uma linha de uma combobox.
Creio que estas seriam as combinações possíveis:
Option Explicit
Private Sub UserForm_Initialize()
Dim TEXTO As String
Dim I, J As Integer
Dim ELEMENTO(1 To 4) As String
ELEMENTO(1) = "MA"
ELEMENTO(2) = "MD"
ELEMENTO(3) = "FA"
ELEMENTO(4) = "F5"
' For J = 1 To 4
' For I = 1 To 4
TEXTO = "1" & ELEMENTO(1) & "2" & ELEMENTO(2) & "3" & ELEMENTO(3) & "4" & ELEMENTO(4)
UserForm1.ComboBox1.AddItem (TEXTO)
TEXTO = "1" & ELEMENTO(1) & "2" & ELEMENTO(2) & "3" & ELEMENTO(4) & "4" & ELEMENTO(3)
UserForm1.ComboBox1.AddItem (TEXTO)
TEXTO = "1" & ELEMENTO(1) & "2" & ELEMENTO(3) & "3" & ELEMENTO(4) & "4" & ELEMENTO(2)
UserForm1.ComboBox1.AddItem (TEXTO)
TEXTO = "1" & ELEMENTO(1) & "2" & ELEMENTO(3) & "3" & ELEMENTO(2) & "4" & ELEMENTO(4)
UserForm1.ComboBox1.AddItem (TEXTO)
TEXTO = "1" & ELEMENTO(1) & "2" & ELEMENTO(4) & "3" & ELEMENTO(3) & "4" & ELEMENTO(2)
UserForm1.ComboBox1.AddItem (TEXTO)
TEXTO = "1" & ELEMENTO(1) & "2" & ELEMENTO(4) & "3" & ELEMENTO(2) & "4" & ELEMENTO(3)
UserForm1.ComboBox1.AddItem (TEXTO)
TEXTO = "1" & ELEMENTO(2) & "2" & ELEMENTO(1) & "3" & ELEMENTO(3) & "4" & ELEMENTO(4)
UserForm1.ComboBox1.AddItem (TEXTO)
TEXTO = "1" & ELEMENTO(2) & "2" & ELEMENTO(1) & "3" & ELEMENTO(4) & "4" & ELEMENTO(3)
UserForm1.ComboBox1.AddItem (TEXTO)
TEXTO = "1" & ELEMENTO(2) & "2" & ELEMENTO(3) & "3" & ELEMENTO(4) & "4" & ELEMENTO(1)
UserForm1.ComboBox1.AddItem (TEXTO)
TEXTO = "1" & ELEMENTO(2) & "2" & ELEMENTO(3) & "3" & ELEMENTO(1) & "4" & ELEMENTO(4)
UserForm1.ComboBox1.AddItem (TEXTO)
TEXTO = "1" & ELEMENTO(2) & "2" & ELEMENTO(4) & "3" & ELEMENTO(3) & "4" & ELEMENTO(1)
UserForm1.ComboBox1.AddItem (TEXTO)
TEXTO = "1" & ELEMENTO(2) & "2" & ELEMENTO(4) & "3" & ELEMENTO(1) & "4" & ELEMENTO(3)
UserForm1.ComboBox1.AddItem (TEXTO)
TEXTO = "1" & ELEMENTO(3) & "2" & ELEMENTO(2) & "3" & ELEMENTO(1) & "4" & ELEMENTO(4)
UserForm1.ComboBox1.AddItem (TEXTO)
TEXTO = "1" & ELEMENTO(3) & "2" & ELEMENTO(2) & "3" & ELEMENTO(4) & "4" & ELEMENTO(1)
UserForm1.ComboBox1.AddItem (TEXTO)
TEXTO = "1" & ELEMENTO(3) & "2" & ELEMENTO(1) & "3" & ELEMENTO(4) & "4" & ELEMENTO(2)
UserForm1.ComboBox1.AddItem (TEXTO)
TEXTO = "1" & ELEMENTO(3) & "2" & ELEMENTO(1) & "3" & ELEMENTO(2) & "4" & ELEMENTO(4)
UserForm1.ComboBox1.AddItem (TEXTO)
TEXTO = "1" & ELEMENTO(3) & "2" & ELEMENTO(4) & "3" & ELEMENTO(1) & "4" & ELEMENTO(2)
UserForm1.ComboBox1.AddItem (TEXTO)
TEXTO = "1" & ELEMENTO(3) & "2" & ELEMENTO(4) & "3" & ELEMENTO(2) & "4" & ELEMENTO(1)
UserForm1.ComboBox1.AddItem (TEXTO)
TEXTO = "1" & ELEMENTO(4) & "2" & ELEMENTO(2) & "3" & ELEMENTO(3) & "4" & ELEMENTO(1)
UserForm1.ComboBox1.AddItem (TEXTO)
TEXTO = "1" & ELEMENTO(4) & "2" & ELEMENTO(2) & "3" & ELEMENTO(1) & "4" & ELEMENTO(3)
UserForm1.ComboBox1.AddItem (TEXTO)
TEXTO = "1" & ELEMENTO(4) & "2" & ELEMENTO(3) & "3" & ELEMENTO(1) & "4" & ELEMENTO(2)
UserForm1.ComboBox1.AddItem (TEXTO)
TEXTO = "1" & ELEMENTO(4) & "2" & ELEMENTO(3) & "3" & ELEMENTO(2) & "4" & ELEMENTO(1)
UserForm1.ComboBox1.AddItem (TEXTO)
TEXTO = "1" & ELEMENTO(4) & "2" & ELEMENTO(1) & "3" & ELEMENTO(3) & "4" & ELEMENTO(2)
UserForm1.ComboBox1.AddItem (TEXTO)
TEXTO = "1" & ELEMENTO(4) & "2" & ELEMENTO(1) & "3" & ELEMENTO(2) & "4" & ELEMENTO(3)
UserForm1.ComboBox1.AddItem (TEXTO)
' Next I
' Next J
End Sub
Mas eu quero montar através de laço de repetição / recursividade.
Postado : 25/11/2017 5:23 pm