Segue o código abaixo. o numero 6 esta em negrito é este valor que quero alterar para que busque de uma célula que esta em outro Sheet. Tipo o resultado deste código esta e tem de aparecer no Sheet 01 e a variável esta no Sheet 02.
'C(n, p) = n! / ((n-p)! * p!)
'lPermutações a ser definido, seria o 'p' da fórmula acima
Const lPermutações As Long = 3
Dim r As Long
Dim v(1 To 10)
Sub Teste()
Dim lElementos As Long
'Popula vetor de elementos
v(1) = Range("A1")
v(2) = Range("B1")
v(3) = Range("C1")
v(4) = Range("D1")
v(5) = Range("E1")
v(6) = Range("F1")
v(7) = Range("G1")
v(8) = Range("H1")
v(9) = Range("I1")
v(10) = Range("J1")
'C(n, p) = n! / ((n-p)! * p!)
'lElementos seria o 'n' da fórmula acima
lElementos = UBound(v) - LBound(v) + 1
'Contador de linhas para uso no Excel:
r = 2
'Limpa Planilha ativa
'Cells.Delete
'Inicia recursão:
Combinação lElementos, lPermutações, 1
End Sub
Sub Combinação(n As Long, p As Long, k As Long, Optional s As String)
If p > n - k + 1 Then Exit Sub
If p = 0 Then
'Para visualizar o resultado de uma combinação no Excel:
r = r + 1
Cells(r, "A").Resize(1, lPermutações) = Split(s, "|")
'Se quiser visualizar o resultado na Janela de Verificação imediata, use:
Debug.Print s
Exit Sub
End If
'Recorre novamente:
Combinação n, p - 1, k + 1, s & v(k) & "|"
'Recorre novamente a partir do elemento anterior:
Combinação n, p, k + 1, s
End Sub
Postado : 05/11/2014 4:22 pm