Vídeo recomendado
https://youtu.be/diWPPPhW-9E
https://youtu.be/diWPPPhW-9E
Label para contar valores únicos contidos na Planilha, sem determinar uma qtd de linhas.
Label para contar valores únicos contidos na Planilha, sem determinar uma qtd de linhas.
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.
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.
Re: Label para contar valores únicos contidos na Planilha, sem determinar uma qtd de linhas.
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 :
Rotina que soma os itens únicos do ListBox e retorna o total ao controle Label do Form2 :
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:
E para retornar os totais do ListBox após atualizar a lista dele:
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
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
Para retornar os totais da planilha2:
Código: Selecionar todos
Call retornaUnicos_Cores
Código: Selecionar todos
Call retornaUnicos_LBX
Re: Label para contar valores únicos contidos na Planilha, sem determinar uma qtd de linhas.
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
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
Re: Label para contar valores únicos contidos na Planilha, sem determinar uma qtd de linhas.
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
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
Re: Label para contar valores únicos contidos na Planilha, sem determinar uma qtd de linhas.
jom,
Se possivel, disponibilize um modelo com dados ficticios. Assim talvez possa entender melhor sua demanda e ajudar a solucionar esta demanda.
Se possivel, disponibilize um modelo com dados ficticios. Assim talvez possa entender melhor sua demanda e ajudar a solucionar esta demanda.
Re: Label para contar valores únicos contidos na Planilha, sem determinar uma qtd de linhas.
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
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
Re: Label para contar valores únicos contidos na Planilha, sem determinar uma qtd de linhas.
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?
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
Re: Label para contar valores únicos contidos na Planilha, sem determinar uma qtd de linhas.
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
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
Re: Label para contar valores únicos contidos na Planilha, sem determinar uma qtd de linhas.
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.
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