Notifications
Clear all

Contador Incrementador

9 Posts
3 Usuários
0 Reactions
1,321 Visualizações
(@zinabre)
Posts: 7
Active Member
Topic starter
 

Boa noite,

Gostaria de um código que fosse capaz de fazer a seguinte contagem.

Usando a célula A1 como ínicio, a contagem tem que ser de 1 até 100.
Chegando em 100 a célula A2 passa a contar de 1 a 100 e a A1 volta pro valor 1 e incrementa + 1 a cada contagem de 1 a 100 da A2.
Quando A1 chegar em 100 novamente, A1 e A2 resetam pro valor 1 e A3 começa a contar de 1 a 100 e a cada ciclo incrementa +1 em A2, que por sua vez ao chegar em 100, encrementa +1 em A1, tornando infinita a contagem.
Seria uma contador em escada que continuasse adicionando linhas até o momento em que seja interrompida a execução.

Caso seja possível ser criado esse código, gostaria também que com alguma alteração, uma segunda contagem seja da seguinte forma.

A1 conta 1 a 100; A2 conta de 2 a 100, mas quando A1 = 2, A2 conta de 3 a 100 e assim por diante.
Resumindo a célula da linha seguinte, sempre começa a contagem 1 número a frente da célula da linha anterior.

Espero que seja possível entender.

Grato!!!

 
Postado : 05/02/2017 6:30 pm
(@mprudencio)
Posts: 2749
Famed Member
 

Nao entedi

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 05/02/2017 6:49 pm
brunoxro
(@brunoxro)
Posts: 698
Honorable Member
 

Boa Noite Zinabre,

Não entendi o que você quer, principalmente nesse trecho: "Seria uma contador em escada que continuasse adicionando linhas até o momento em que seja interrompida a execução."

Você quer adicionar linhas? Qual seria o critério de interrupção?

att,

 
Postado : 05/02/2017 6:51 pm
(@zinabre)
Posts: 7
Active Member
Topic starter
 

Vamos ver se consigo desenrolar.

Clico no botão iniciar e a contagem inicia:

A1= 1,2,3,4....100 (conta de 1 até 100)

A1 =100 então A1= 1 e A2= 1

A2= 2,3,4...100

A2= 100 então A1= 2 e A2= 1

A2= 2,3,4...100

A2= 100 então A1= 3 e A2= 1
.
.
.
.
A1= 100 e A2=100 então A3= 1

A1= 1; A2= 1

A3= 2,3,4....100

Isso nunca vai ter fim, a nao ser que eu peça pra parar.

 
Postado : 05/02/2017 7:09 pm
brunoxro
(@brunoxro)
Posts: 698
Honorable Member
 

Zinabre,

Primeiro, isso vai ter fim porque o Excel possui 1.048.576 linhas. Segundo esse processo vai ser tão rápida que você tem que colocar um critério de interrupção. Se não vai travar quando chegar na última linha do Excel.

E qual o objetivo disso? Qual a finalidade dessa contagem?

att,

 
Postado : 05/02/2017 7:36 pm
(@zinabre)
Posts: 7
Active Member
Topic starter
 

Não há necessidade de um critério de interrupção. Acredito que como são cálculos com crescimento exponencial, em 1 hora rodando, nem mesmo 30 linhas de contagem seriam criadas. Mas se precisar, podemos considerar que a interrupção aconteça na linha 100.

Na verdade vou adaptar esse código em uma outra planilha. Os números gerados nas linhas serão usados para uma procura.

Digamos que tenha:

A1= 52
A2= 89
A3= 3
A4= 18

esse números serão usados para efetuar uma busca na tabela e comparar com outra.

 
Postado : 05/02/2017 7:56 pm
brunoxro
(@brunoxro)
Posts: 698
Honorable Member
 

Zinabre,

Dependendo da forma que for montado essa contagem em uma hora essa contagem vai estar muito grande, ainda mais porque não envolve colocar formulas e nem precisa selecionar a célula. (também depende do processador do seu PC)

Se você precisar gerar uma tabela de números aleatórios, você pode usar as funções =ALEATÓRIO() ou =ALEATÓRIOENTRE(). Bem mais prático para utilizar em eventuais análises.
Falo isso, porque o procedimento que você quer é determinista, se parar na linha 100 o resultado vai ser sempre o mesmo.

att,

 
Postado : 05/02/2017 8:29 pm
(@zinabre)
Posts: 7
Active Member
Topic starter
 

Anexei uma planilha. Acho que agora vai dar pra entender o que eu preciso, esquecendo o que foi dito antes.

A planilha gera todas combinações possíveis de acordo com os números que estão na coluna A e traz o resultado a partir da coluna C.
Só que o resultado vem um em cada linha.
O que eu preciso é que todos resultados rodem na mesma linha.

 
Postado : 05/02/2017 9:32 pm
(@zinabre)
Posts: 7
Active Member
Topic starter
 

Consegui fazer os cálculos na mesma linha e colunas diferentes. Já consigo usar isso no que eu preciso, mas
alguém saberia fazer ao contrário. Mesma coluna e linhas diferentes?

Private Sub CommandButton1_Click()

Application.ScreenUpdating = False

Dim vElements As Variant, vresult As Variant
Dim lRow As Long, i As Long
 
vElements = Application.Transpose(Range("A1", Range("A1").End(xlDown)))
Columns("C:Z").Clear
 
lRow = 1
For i = 1 To UBound(vElements)
    ReDim vresult(1 To i)
    Call CombinationsNP(vElements, i, vresult, lRow, 1, 1)
Next i

Application.ScreenUpdating = True

End Sub
 
Sub CombinationsNP(vElements As Variant, p As Long, vresult As Variant, lRow As Long, iElement As Integer, iIndex As Integer)
Dim i As Long
 
For i = iElement To UBound(vElements)
    vresult(iIndex) = vElements(i)
    If iIndex = p Then
        lRow = lRow
        Range("C" & lRow).Resize(, p) = vresult
    Else
        Call CombinationsNP(vElements, p, vresult, lRow, i + 1, iIndex + 1)
    End If
Next i
End Sub
 
Postado : 05/02/2017 9:51 pm