Como filtrar dados no Listbox


VBA - Como Filtrar dados no ListBox
Este é um código de exemplo que tenho a muito tempo, mas como o pessoal tem pedido muito, vou deixá-lo em uma forma mais visível.
Como o VBA carece de controles de apresentação de dados mais avançados, como Grids e Listas complexas, acabamos apelando para o controle ListBox para apresentação de dados vindos de ResultSets (particularmente, prefiro apresentar os dados em uma planilha). Bom, como os dados já estão na LisBox, porque não aplicar o filtro nele mesmo?
Para ver um exemplo, proceda da seguinte forma:
  • Em um novo arquivo, crie uma lista de dados na Plan1, na coluna A a partir da célula A1
  • Abra o VBA (Alt+F11)
  • Adicione um UserForm ao projeto
  • No UserForm, adicione um controle TextBox e um ListBox (mantenha os nomes padrão dos controles)
  • Cliquem em F7 para exibir o código e adicione o seguinte:

Option Explicit

Private TextoDigitado As String

Private Sub ListBox1_Click()

End Sub

Private Sub TextBox1_Change()
    TextoDigitado = TextBox1.Text
    Call PreencheLista
End Sub

Private Sub UserForm_Initialize()
    Call PreencheLista
End Sub

Private Sub PreencheLista()
    Dim ws As Worksheet
    Dim i As Integer
    Dim TextoCelula As String
    Set ws = ThisWorkbook.Worksheets("Planilha1")
    i = 1
    ListBox1.Clear
    With ws
        While .Cells(i, 1).Value <> Empty
            TextoCelula = .Cells(i, 1).Value
            If UCase(Left(TextoCelula, Len(TextoDigitado))) = UCase(TextoDigitado) Then
                ListBox1.AddItem .Cells(i, 1)
            End If
            i = i + 1
        Wend
    End With
End Sub

Um comentário:

  1. Harrah's Casino & Hotel Las Vegas - MapYRO
    Hotel 토토사이트 and Casino 출장안마 at Harrah's Las Vegas, Las Vegas, NV. 3131 Las Vegas Blvd. South 89109. Check reviews and discounted 정읍 출장샵 rates for 충주 출장마사지 AAA/AARP members, 문경 출장마사지 seniors,

    ResponderExcluir