Gerar Combinações - VBA - Ambiente Office
-
Upload
lupusolitarium -
Category
Documents
-
view
29 -
download
0
Transcript of Gerar Combinações - VBA - Ambiente Office
Home
Principal
Assinar
Dicas
Excel
Word
Outlook
Office/VBA
Suplementos
Vídeos
Outros
Busque neste site:
Pesquisar
Gerar Combinações
Última atualização: 10/04/2012
Introdução
Referências
Introdução
Esta página mostra um exemplo de como se gera uma lista da combinação de todos elementos de acordo com a equação:
O exemplo abaixo imprimirá os resultados no Excel. No entanto, é possível visualizá-los também na janela de verificação imediata.
Crie um módulo e insira o código abaixo:
Option Explicit
'C(n, p) = n! / ((n-p)! * p!)'lPermutações a ser definido, seria o 'p' da fórmula acimaConst lPermutações As Long = 3
Dim r As Long
Dim v(1 To 5)
Sub Teste() Dim lElementos As Long 'Popula vetor de elementos v(1) = "a" v(2) = "b" v(3) = "c" v(4) = "d" v(5) = "e" '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 = 0 'Limpa Planilha ativa Cells.Delete 'Inicia recursão: Combinação lElementos, lPermutações, 1End 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, sEnd Sub
Esse código, na verdade, é adaptado de Tom Ogilvy.
Você pode alterar à vontade os valores do elemento v, assim como sua dimensão e o valor de p na fórmula para obter resultados diferentes.
Esse código usa o algoritmo de recursão para exibir todas as combinações (clique aqui para saber mais sobre recursão).
No exemplo acima, a saída no Excel será:
Referências
Para baixar um arquivo de exemplo pronto, clique aqui.
---
Site de Felipe Costa Gualberto.
Belo Horizonte, Brasil, 2009-2013.
Gerar Combinações - VBA - Ambiente Office http://www.ambienteoffice.com.br/officevba/gerar_combinacoes/
1 de 1 20-abr-2013 23:25