Notifications
Clear all

macro para gerar sequencias

9 Posts
3 Usuários
0 Reactions
1,192 Visualizações
(@contagrrla)
Posts: 0
New Member
Topic starter
 

gostaria de saber como faco um macro para gerar sequencias. as sequencias que eu queria fazer são todas as combinações de impares dados em 6 cifras, por exemplo:

3, 5 e 7

3 3 3 3 3 3
3 3 3 3 3 5
3 3 3 3 3 7
3 3 3 3 5 5
etc

é possivel?

obrigado

 
Postado : 09/04/2015 3:59 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia,

Veja se atende:

Sub Gerar()
    Dim Vetor
    Dim i As Long
    Dim a1 As Integer
    Dim a2 As Integer
    Dim a3 As Integer
    Dim a4 As Integer
    Dim a5 As Integer
    Dim a6 As Integer
    
    Vetor = Array(3, 5, 7)
    i = 1
    For a1 = 0 To 2
        For a2 = a1 To 2
            For a3 = a2 To 2
                For a4 = a3 To 2
                    For a5 = a4 To 2
                        For a6 = a5 To 2
                            Cells(i, 1).Value = Vetor(a1)
                            Cells(i, 2).Value = Vetor(a2)
                            Cells(i, 3).Value = Vetor(a3)
                            Cells(i, 4).Value = Vetor(a4)
                            Cells(i, 5).Value = Vetor(a5)
                            Cells(i, 6).Value = Vetor(a6)
                            i = i + 1
                        Next
                    Next
                Next
            Next
        Next
    Next
End Sub

Abraço

 
Postado : 09/04/2015 6:56 am
(@contagrrla)
Posts: 0
New Member
Topic starter
 

muito obrigado cara, era isso mesmo, agora como faço para adicionar novos numeros impares? tentei modificar isso: Vetor = Array(3, 5, 7) mas n deu certo

 
Postado : 09/04/2015 4:10 pm
(@contagrrla)
Posts: 0
New Member
Topic starter
 

e outra coisa, temos ai todas as combinacoes mesmo?

 
Postado : 09/04/2015 4:16 pm
(@edcronos)
Posts: 1006
Noble Member
 

pode tentar assim

Sub sequencial()
cx = 1 'coluna
Ln = 3 'linha inicial

For n1 = 3 To 3 Step 2
For n2 = 1 To 5 Step 2
For n3 = 5 To 9 Step 2

Cells(Ln, cx).Value2 = n1 & n2 & n3
Ln = Ln + 1  ' pila para a proxima linha

Next
Next
Next

End Sub

o step faz a contagem pular
então se a contagem começar em 3 até 9
3 > 5 >7>9

então a partir daí vc estuda a macro e completa como quiser adicionando mais laços for next e fazendo a contagem do jeito que quiser
ela pula a linha automaticamente

 
Postado : 09/04/2015 4:45 pm
(@contagrrla)
Posts: 0
New Member
Topic starter
 

aquele primeiro tava beleza, so ta faltando algumas combinações entre os impares...

o segundo resultou isso:

315
317
319
335
337
339
355
357
359

?

 
Postado : 09/04/2015 5:36 pm
(@edcronos)
Posts: 1006
Noble Member
 

eu falei para estudar a macro e adicionar oq vc queria
eu coloquei de maneira que apresentasse valores diferentes para se saber como funciona cada linha
afinal de contas nem sempre vai ter alguem para fazer oq vc quer como vc quer

e pelo que entendi os valores vão alterar
eu ão sei em que, nem quais vão ser alterados

a macro é bem simples com um pouco de empenho se consegue entender e modificar a vontade

Sub sequencial()
cx = 1 'coluna
Ln = 3 'linha inicial
For n1 = 3 To 7 Step 2
For n2 = 3 To 7 Step 2
For n3 = 3 To 7 Step 2
For n4 = 3 To 7 Step 2
For n5 = 3 To 7 Step 2
For n6 = 3 To 7 Step 2

Cells(Ln, cx).Value2 = n1 & n2 & n3 & n4 & n5 & n6
Ln = Ln + 1
Next
Next
Next
Next
Next
Next
End Sub

 
Postado : 09/04/2015 5:50 pm
(@edcronos)
Posts: 1006
Noble Member
 

peço desculpa caso não seja sequencia perfeita que vc quer

    333333
    333335
    333337
    333353
    333355
    333357
    333373
    333375
    333377
    333533[/list:u:3pce2bzs]
    e seu pedido
    3 3 3 3 3 3
    3 3 3 3 3 5
    3 3 3 3 3 7
    3 3 3 3 5 5
    está pulando uma sequencia

    mas a macro gera sequencias em numeros determinadas nos laços for de maneira linear
    mas pode ser organizados como se queira

     
Postado : 09/04/2015 6:07 pm
(@contagrrla)
Posts: 0
New Member
Topic starter
 

ow, agora ficou bom ^^

 
Postado : 09/04/2015 6:21 pm