Notifications
Clear all

Atualizar Listbox

5 Posts
2 Usuários
0 Reactions
1,397 Visualizações
(@jrodrig7)
Posts: 0
New 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)
Posts: 0
New 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

 
Postado : 22/02/2016 2:24 pm
(@jrodrig7)
Posts: 0
New 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: 0
New Member
Topic starter
 

Alguém?

 
Postado : 23/02/2016 10:11 am
(@trindade)
Posts: 0
New Member
 

Boa tarde, jrodrig7.

Teste esse arquivo.

 
Postado : 23/02/2016 12:24 pm