Página 1 de 1

[RESOLVIDO] Duvida para adicionar itens em Listbox

Enviado: Qui Dez 01, 2016 11:57 am
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!!!

Re: Duvida para adicionar itens em Listbox

Enviado: Qui Dez 01, 2016 2:39 pm
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?

Re: Duvida para adicionar itens em Listbox

Enviado: Qui Dez 01, 2016 2:49 pm
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

Re: Duvida para adicionar itens em Listbox

Enviado: Sex Dez 02, 2016 8:37 am
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!!!

Re: [RESOLVIDO] Duvida para adicionar itens em Listbox

Enviado: Qua Fev 13, 2019 12:59 pm
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?