Vídeo recomendado
https://youtu.be/diWPPPhW-9E

Label para contar valores únicos contidos na Planilha, sem determinar uma qtd de linhas.

Fórum para dúvidas sobre os fundamentos da linguagem de programação Visual Basic no contexto do VBA
Jom
Acabou de chegar
Acabou de chegar
Mensagens: 9
Registrado em: Dom Dez 13, 2020 3:43 pm

Label para contar valores únicos contidos na Planilha, sem determinar uma qtd de linhas.

Mensagem por Jom »

Olá pessoal, tdo tranquilo?
Sou iniciante em Excel VBA. Poderiam me ajudar?
Estou com 2 problemas:
1) Mostrar numa Label do Userform1 os valores únicos contidos na PLAN 2, coluna 2.
2) Mostrar numa Label do UserForm2 os valores únicos contidos na LISTBOX 1, coluna 2.
Na Plan2: Na ListBox1:
B3 = Verde (Linha1, Coluna2) = Verde
B4 = Verde (Linha2, Coluna2) = Verde
B5 = Verde (Linha2, Coluna2) = Verde
B6 = Azul (Linha3, Coluna2) = Azul
B7 = Azul (Linha4, Coluna2) = Azul

Label: Total 02 (Porque consta 2 cores diferentes)
Se na linha B:10.780 aparecesse +1 cor , a Label mostraria Total: 03 (independente de qtas Linhas tenha).

Sobre contar valores únicos na PLANILHA, achei uma fórmula Matriz que funciona direitinho, mas o problema é que essa fórmula exige que eu determine a qtd exata de linhas, mas eu não sei qtas linhas vai ter, por isso dá erro.

Sobre contar valores únicos na LISTBOX, não consegui achar nenhum editorial em português sobre o assunto.
Poderiam me ajudar? Que códigos devo usar pra contar valores únicos, sem limitação de linhas - tanto da Planilha como em ListBox ???
Se tiverem um tempinho, me ajudem por favor.
Att.


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


srobles
Jedi
Jedi
Mensagens: 805
Registrado em: Qua Mai 06, 2015 7:39 pm

Re: Label para contar valores únicos contidos na Planilha, sem determinar uma qtd de linhas.

Mensagem por srobles »

jom,

Veja se os métodos abordados abaixo atendem sua necessidade.

Creio que com pouca adaptação, você consiga alcançar o resultado desejado.

Rotina que soma as cores únicas e retorna o total ao controle Label do Form1 :

Código: Selecionar todos

Sub retornaUnicos_CORES()

    Dim planDados As WorkSheet
    Dim coresUnicas As Long
        
    Set planDados = ThisWorkBook.Sheets(2)
    
    coresUnicas = 0
        
    With planDados
        
        .Activate
        
        For vLinha = 1 to .Cells(Rows.Count, 2).End(xlUp).Rows
            
            If .Cells(vLinha,2) <> .Cells(vLinha+1,2) Then
                
                coresUnicas = coresUnicas + 1
                
            End If
        
        Next
        
    End With
    
    With UserForm1.Label1
        
        .Caption = "Valores únicos : " & coresUnicas
        
    End With

End Sub
Rotina que soma os itens únicos do ListBox e retorna o total ao controle Label do Form2 :

Código: Selecionar todos

Sub retornaUnicos_LBX()

    Dim itensUnicos As Long
        
    itensUnicos = 0
        
    With UserForm2.ListBox1
        
        For vItem = 0 to .ListCount - 1
            
            If .List(vItem,1) <> .List(vItem+1,1) Then
                
                itensUnicos = itensUnicos + 1
                
            End If
        
        Next
        
    End With
    
    With UserForm2.Label1
        
        .Caption = "Valores únicos : " & itensUnicos
        
    End With

End Sub
Então ao final de cada operação / rotina que atualiza a planilha ou o ListBox, chame as rotinas acima, respectivamente.

Para retornar os totais da planilha2:

Código: Selecionar todos

   Call retornaUnicos_Cores
E para retornar os totais do ListBox após atualizar a lista dele:

Código: Selecionar todos

   Call retornaUnicos_LBX


Jom
Acabou de chegar
Acabou de chegar
Mensagens: 9
Registrado em: Dom Dez 13, 2020 3:43 pm

Re: Label para contar valores únicos contidos na Planilha, sem determinar uma qtd de linhas.

Mensagem por Jom »

Prezado Saulo,
Obrigado por enviar os códigos acima.
Fiz as adaptações que vc mencionou e chamei as rotinas mas não funcionaram nos meus Formulários.
1. "Rotina que soma as cores únicas e retorna o total ao controle Label do Form1" mostra "Erro em tempo de execução 13: tipos incompatíveis".
Verificando, notei que na Linha: Set planDados = ThisWorkBook.Sheets(2) mostra "Nothing".

2. "Rotina que soma os itens únicos do ListBox e retorna o total ao controle Label do Form2" mostra resultado 0 (zero) e não se altera, independente das alterações na ListBox e mesmo chamando na rotina.

Sou iniciante em VBA, então posso ter errado em algo.
Saberia me dizer por que ocorreram isso?

Att.
jom


Jom
Acabou de chegar
Acabou de chegar
Mensagens: 9
Registrado em: Dom Dez 13, 2020 3:43 pm

Re: Label para contar valores únicos contidos na Planilha, sem determinar uma qtd de linhas.

Mensagem por Jom »

Prezado Saulo,
Obrigado por enviar os códigos acima.
Fiz as adaptações que vc mencionou e chamei as rotinas mas não funcionaram nos meus Formulários.
1. "Rotina que soma as cores únicas e retorna o total ao controle Label do Form1" mostra "Erro em tempo de execução 13: tipos incompatíveis".
Verificando, notei que na Linha: Set planDados = ThisWorkBook.Sheets(2) mostra "Nothing".

2. "Rotina que soma os itens únicos do ListBox e retorna o total ao controle Label do Form2" mostra resultado 0 (zero) e não se altera, independente das alterações na ListBox e mesmo chamando a rotina.

Sou iniciante em VBA, então posso ter errado em algo.
Saberia me dizer por que ocorreram isso?

Att.
jom


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


srobles
Jedi
Jedi
Mensagens: 805
Registrado em: Qua Mai 06, 2015 7:39 pm

Re: Label para contar valores únicos contidos na Planilha, sem determinar uma qtd de linhas.

Mensagem por srobles »

jom,

Se possivel, disponibilize um modelo com dados ficticios. Assim talvez possa entender melhor sua demanda e ajudar a solucionar esta demanda.


Jom
Acabou de chegar
Acabou de chegar
Mensagens: 9
Registrado em: Dom Dez 13, 2020 3:43 pm

Re: Label para contar valores únicos contidos na Planilha, sem determinar uma qtd de linhas.

Mensagem por Jom »

Saulo,
Obrigado pela sua atenção novamente.
Meus conhecimentos em Excel são bem limitados, por isso tenho dificuldades até executar códigos simples, rsrs
Também é difícil achar editoriais em português sobre alguns assuntos.

Enviei uma Planilha de rascunho (Teste3.xlsm) pra vc dar uma olhada sobre as questões citadas acima.
Não repare pq ali aparecem outras dúvidas que venho quebrando a cabeça, rsrs.
Não pretendo abusar de sua boa vontade, então desconsidere-as ao vê-las.
Em outras oportunidades envio aqui no Fórum. Mas se achar q são simples demais e quiser dar uma olhada, fique a vontade.

Att.
Jom
Anexos
modelo_JOM.zip
(65.93 KiB) Baixado 169 vezes


srobles
Jedi
Jedi
Mensagens: 805
Registrado em: Qua Mai 06, 2015 7:39 pm

Re: Label para contar valores únicos contidos na Planilha, sem determinar uma qtd de linhas.

Mensagem por srobles »

Jom,

Analisei seu modelo e acredito que tenha chego á um resultado satisfatório. Somente não entendi o trecho de código que alimenta a Planilha3 com os dados do ListBox no estilo de cabeçalho.
Todavia, peço que teste e retorne ok?
Anexos
Teste3.zip
(61.6 KiB) Baixado 168 vezes


Jom
Acabou de chegar
Acabou de chegar
Mensagens: 9
Registrado em: Dom Dez 13, 2020 3:43 pm

Re: Label para contar valores únicos contidos na Planilha, sem determinar uma qtd de linhas.

Mensagem por Jom »

Bom dia Saulo,
Desculpa a demora.
Obrigado novamente pela sua ajuda. E por ter me ajudado além das coisas que eu perguntei no Fórum.
Precisei fazer alguns ajustes nos códigos, mas funcionaram quase todos.
Apenas os registros na Plan3 continuam sendo registrados incorretamente. (UserForm1 - botão "Salvar")

Ex.: Se eu digitar 222 e Qtd. 4...depois fizer um novo registro: 564 e Qtd. 4, ele salva corretamente na Plan2, mas na Plan3 fica assim:
564,565,567,570,222,223,225,228...
NOTE: O novo registro fica na frente do anterior.

Deveria ficar assim...
222,223,225,228,564,565,567,570...

Att.
Jom


srobles
Jedi
Jedi
Mensagens: 805
Registrado em: Qua Mai 06, 2015 7:39 pm

Re: Label para contar valores únicos contidos na Planilha, sem determinar uma qtd de linhas.

Mensagem por srobles »

Jom,

Estude as alterações feitas nos botões que Geram as sequências e que salva os dados na Planilha3 e veja se atendem sua necessidade.
Anexos
Teste3.zip
(50.94 KiB) Baixado 167 vezes


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Responder