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

[RESOLVIDO] Duvida para adicionar itens em Listbox

Fórum para dúvidas sobre os fundamentos da linguagem de programação Visual Basic no contexto do VBA
wweilersed
Acabou de chegar
Acabou de chegar
Mensagens: 2
Registrado em: Qui Dez 01, 2016 11:32 am

[RESOLVIDO] Duvida para adicionar itens em Listbox

Mensagem por wweilersed »

Boa tarde,

Olá, antes de tudo agradeço antecipadamente pela ajuda, aviso que sou leigo na linguagem VBA, mas me arrisco a criar uns formulários para gerar planilhas com os tópicos que existem neste site, que por sinal é muito bom para ajudar pessoas como eu.
Bom!!!! Meu problema é o seguinte, tenho que gerar itens para uma Listbox a partir de uma uma coluna A:A, que apresenta linhas com informações repetidas e com linhas ocultas também, em razão de existir filtros em outras colunas.
Para isso eu precisaria criar uma razão na qual desconsideraria as linhas ocultas mostrando somente as visíveis e mostrar somente uma vez as que estão repetidas. Eu ate tenho a razão de forma separada mas não consigo juntar as duas em uma só:

Código: Selecionar todos

Sub visualiza_sem_repetições()
'visualiza sem repetições
Me.ListBox1.Clear
Dim OCOLLECTION As New Collection
Dim VARVALUE As Variant
Dim I, ULTLINHA As Long
ULTLINHA = Plan1.Range("A65536").End(xlUp).Row
On Error Resume Next
For Each VARVALUE In Plan1.Range("A2:A" & ULTLINHA) 'Le os valores a partir da Linha2
'Convertemos a VARVALUE em Numero usando
'a Funções de conversão de tipos CStr
OCOLLECTION.Add CStr(VARVALUE), CStr(VARVALUE)
Next
For I = 1 To OCOLLECTION.Count
ListBox1.AddItem OCOLLECTION.Item(I)
Next
End Sub

Sub visualiza_somente_filtradas()
'visualiza somente filtradas
Dim lLast As Long
Dim l As Long

With ThisWorkbook.Sheets("Plan1")
ListBox1.ColumnCount = 7
ListBox1.Clear
lLast = .Cells(.Rows.Count, "A").End(xlUp).Row
'Considerando uma linha de cabeçalho:
For l = 2 To lLast
If .Rows(l).Hidden = False Then
ListBox1.AddItem Plan1.Cells(l, "A")
End If
Next l
End With
End Sub


Será que alguém poderia me ajudar com este problema?
Obrigado mais uma vez!!!
Editado pela última vez por wweilersed em Seg Dez 05, 2016 11:54 am, em um total de 1 vez.


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.


Avatar do usuário
webmaster
Administrador
Mensagens: 3114
Registrado em: Sex Jul 24, 2009 2:44 pm
Contato:

Re: Duvida para adicionar itens em Listbox

Mensagem por webmaster »

wweilersed,

Ficou uma divuda. O que precise ser de fato o resultado final? A lista sem repeticao e somente com os itens visiveis? Se sim, nao basta adicionar na primeira sub a checagem de se a Row esta com o Hidden = False?


Avatar do usuário
Reinaldo
Jedi
Jedi
Mensagens: 1537
Registrado em: Sex Ago 01, 2014 4:09 pm
Localização: Garça - SP / SCS - SP

Re: Duvida para adicionar itens em Listbox

Mensagem por Reinaldo »

Uma possibilidade, teste/exeperimente

Código: Selecionar todos

Sub visualiza_Filtrada_sem_repetições()
'visualiza sem repetições
Me.ListBox1.Clear
Dim OCOLLECTION As New Collection
Dim VARVALUE As Variant
Dim I As Long, ULTLINHA As Long
ULTLINHA = Plan1.Range("A65536").End(xlUp).Row
On Error Resume Next
For Each VARVALUE In Plan1.Range("A2:A" & ULTLINHA) 'Le os valores a partir da Linha2
    If Plan1.Rows(VARVALUE.Row).Hidden = False Then
        'Convertemos a VARVALUE em Numero usando
        'a Funções de conversão de tipos CStr
        OCOLLECTION.Add CStr(VARVALUE), CStr(VARVALUE)
    End If
Next
For I = 1 To OCOLLECTION.Count
    ListBox1.AddItem OCOLLECTION.Item(I)
Next
End Sub


wweilersed
Acabou de chegar
Acabou de chegar
Mensagens: 2
Registrado em: Qui Dez 01, 2016 11:32 am

Re: Duvida para adicionar itens em Listbox

Mensagem por wweilersed »

webmaster escreveu:wweilersed,

Ficou uma divuda. O que precise ser de fato o resultado final? A lista sem repeticao e somente com os itens visiveis? Se sim, nao basta adicionar na primeira sub a checagem de se a Row esta com o Hidden = False?
Eu não dei contar de acrescentar, como falei sou leigo :cry: , vou pegando uma coisa ali, outra coisa lá...mas obrigado!!!


Reinaldo escreveu:Uma possibilidade, teste/exeperimente

Código: Selecionar todos

Sub visualiza_Filtrada_sem_repetições()
'visualiza sem repetições
Me.ListBox1.Clear
Dim OCOLLECTION As New Collection
Dim VARVALUE As Variant
Dim I As Long, ULTLINHA As Long
ULTLINHA = Plan1.Range("A65536").End(xlUp).Row
On Error Resume Next
For Each VARVALUE In Plan1.Range("A2:A" & ULTLINHA) 'Le os valores a partir da Linha2
    If Plan1.Rows(VARVALUE.Row).Hidden = False Then
        'Convertemos a VARVALUE em Numero usando
        'a Funções de conversão de tipos CStr
        OCOLLECTION.Add CStr(VARVALUE), CStr(VARVALUE)
    End If
Next
For I = 1 To OCOLLECTION.Count
    ListBox1.AddItem OCOLLECTION.Item(I)
Next
End Sub
Puxa cara, funcionou perfeitamente!!! Obrigado!!!


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.


galdyno
Acabou de chegar
Acabou de chegar
Mensagens: 1
Registrado em: Qua Fev 13, 2019 12:56 pm

Re: [RESOLVIDO] Duvida para adicionar itens em Listbox

Mensagem por galdyno »

quando rodo no meu sistema esse código ele aparece somente uma coluna não as 15 colunas que devia, o que poderia ser?


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