Notifications
Clear all

Atualizar Listbox

5 Posts
2 Usuários
0 Reactions
1,418 Visualizações
(@jrodrig7)
Posts: 50
Trusted Member
Topic starter
 

Pessoal, boa tarde. Tudo bem?

Tenho uma listbox dentro de uma userform que tem o seguinte código para carregá-la.

Private Sub UserForm_Activate()
Sheets("GavetaseNomes").Activate
ListBox1.ColumnHeads = True
    With Sheets("GavetaseNomes").UsedRange
    ListBox1.ColumnWidths = "1"
        ListBox1.ColumnCount = .Columns.Count
        ListBox1.RowSource = .Offset(1).Resize(.Rows.Count - 1).Address
End With
End Sub

Essa userform tem uma combobox que é usada para filtrar a tabela que serve de base para a listbox, mas preciso que essa listbox atualize depois da troca de valor na combobox. Hoje a planilha é filtrada, mas a listbox não.
O código que uso na combobox hoje é o seguinte:

Private Sub cbxnumero_Change()
Sheets("GavetaseNomes").Activate
Sheet6.Range("B13").Value = cbxnumero.Value
NomeDaGaveta = Application.WorksheetFunction.VLookup(Sheet6.Range("B13"), Sheet6.Range("A15:B30"), 2, False)
txtnomedagaveta.Text = NomeDaGaveta
Sheet6.Range("C13").Value = NomeDaGaveta

ActiveSheet.ListObjects("Documentos").Range.AutoFilter Field:=4, Criteria1 _
:=cbxnumero.Value
End Sub

Alguém pode me ajudar, por favor?

Obrigado
Jean

 
Postado : 22/02/2016 11:41 am
Trindade
(@trindade)
Posts: 278
Reputable Member
 

Boa tarde, jrodrig7.

Como não postou um exemplo, fica hum pouco complicado de encontrar uma solução, mas vamos lá ...

Coloque essa parte do código como uma Sub:

Sub CarregaListBox()
Sheets("GavetaseNomes").Activate
ListBox1.ColumnHeads = True
    With Sheets("GavetaseNomes").UsedRange
    ListBox1.ColumnWidths = "1"
        ListBox1.ColumnCount = .Columns.Count
        ListBox1.RowSource = .Offset(1).Resize(.Rows.Count - 1).Address
End With

Depois realizer a chamada dela no UserForm:

Private Sub UserForm_Initialize()
        Call CarregaListBox
End Sub

Em seu ComboBox ficaria mais ou menos assim:

Private Sub cbxnumero_Change()
Sheets("GavetaseNomes").Activate
Sheet6.Range("B13").Value = cbxnumero.Value
NomeDaGaveta = Application.WorksheetFunction.VLookup(Sheet6.Range("B13"), Sheet6.Range("A15:B30"), 2, False)
txtnomedagaveta.Text = NomeDaGaveta
Sheet6.Range("C13").Value = NomeDaGaveta

ActiveSheet.ListObjects("Documentos").Range.AutoFilter Field:=4, Criteria1 _
:=cbxnumero.Value

        Call CarregaListBox

End Sub

Testa e nos de um retorno...De preferência com uma arquivo de exemplo :D

Se a resposta foi útil! Clique na mãozinha ao lado do botão Citar.
Sua dúvida foi respondida? Marque como RESOLVIDO em seus tópicos, usando o botão com marca verde.

 
Postado : 22/02/2016 2:24 pm
(@jrodrig7)
Posts: 50
Trusted Member
Topic starter
 

Bom dia.

Muito obrigado pela disposição em responder, mas continuo com o mesmo problema. A planilha é filtrada corretamente, mas a listbox continua apresentando todos os itens, ignorando o filtro.

Envio o modelo em anexo.

Obrigado
Jean

 
Postado : 23/02/2016 7:19 am
(@jrodrig7)
Posts: 50
Trusted Member
Topic starter
 

Alguém?

 
Postado : 23/02/2016 10:11 am
Trindade
(@trindade)
Posts: 278
Reputable Member
 

Boa tarde, jrodrig7.

Teste esse arquivo.

Se a resposta foi útil! Clique na mãozinha ao lado do botão Citar.
Sua dúvida foi respondida? Marque como RESOLVIDO em seus tópicos, usando o botão com marca verde.

 
Postado : 23/02/2016 12:24 pm