Notifications
Clear all

Auxílio - Pegar referências e contar ocorrências.

2 Posts
2 Usuários
0 Reactions
752 Visualizações
(@alexbrian)
Posts: 0
New Member
Topic starter
 

Bom dia, recentemente comecei a trabalhar com VBA e estou engatinhando ainda, descobri o fórum hoje mesmo e pelo que percorri o pessoal parece ser muito animado para ajudar, não vejo a hora de chegar em um nível relativamente bom para ajudar também.
Creio que estou com mais problemas sobre a sintaxe da programação do que a lógica em si.

Tenho basicamente duas colunas, que vou simplificar abaixo, pois a planilha tem cerca de 6000 entradas.

Titulo_X STATUS_X_Y

A 0
A 1
A 0
B 1
B 1
.
.
.

No caso teria na tabela Titulo_X múltiplas entradas de um mesmo dado, porém com diferentes status, sendo assim, seria necessário que eu obtivesse como resultado, a quantidade das ocorrências de cada STATUS(0 e 1) em A,B... e assim por diante.
O que eu tenho tentado é fazer um loop com dois "for" para percorrer as tabelas, além disso, pensei em usar algo como dois ifs, sendo um deles referenciando a linha anterior para verificar se é a mesma ocorrência de título e, em caso positivo, outro if para verificar status, e com isso somar caso 0 e caso 1, possibilitando que eu saiba a quantidade de ocorrências em cada Título, porém a minha limitação na sintaxe do VBA impede que eu consiga realizar o procedimento, pois tenho apenas experiência com Java.

Alguém poderia me ajudar ou me indicar alguma documentação que contenha informações sobre como resolver o problema? Aceito qualquer tipo de tutorial como ajuda, até prefiro, porque estou aprendendo e vou usar muito disso no estágio que consegui fazem 5 dias, e 3 deles estou me dedicando fortemente a VBA e Excel, pena que só encontrei esse fórum hoje.

 
Postado : 14/01/2015 8:33 am
(@gtsalikis)
Posts: 2373
Noble Member
 

Não entendi muito bem, mas pela tua descrição, seria algo +/- assim:

Sub experimente_GT()

Dim i               As Long
Dim UL              As Long 'última linha
Dim linha           As Variant
Dim titulo          As String
Dim tabela(1 To 2)  As Range
Dim status          As Long

Set tabela(1) = Range("A1:B50")
Set tabela(2) = Range("D11:E60")

UL = tabela(1).Rows.Count

For i = 1 To UL
    titulo = Cells(i, "A").Value2
    linha = Application.Match(titulo, tabela(2), 0)
    If IsNumeric(linha) Then
        status = Application.WorksheetFunction.Index(tabela(2), linha, 1)
        Cells(i, "B").Value2 = Cells(i, "B").Value2 + status
    End If
Next i
End Sub

Se não for isso, ajudaria vc postar uma planilha de exemplo, com o antes e o depois.

Abs

 
Postado : 14/01/2015 9:36 am