none
LIstbox RRS feed

  • Pergunta

  • Prezados bom dia.

    Gostaria de uma ajuda, pois sou leigo em vbaExcel, tenho uma planilha com listbox, a planilha está com 200 linhas preenchidas, só que os dados inseridos apartir dessa linha, A200, o listbox não está localizando, alguem pode me ajudar?

    sexta-feira, 12 de outubro de 2018 14:39

Todas as Respostas

  • Para ajudar é necessário um pouco mais de informações, como o código que está utilizando e a estrutura de sua planilha, se possível uma imagem ou o próprio arquivo resumido.

    Aguardo.


    Filipe Magno

    domingo, 14 de outubro de 2018 21:55
  • Filipe.

    Segue o código abaixo, veja para Correção, o código não carrega os dados novos na listbox, lançados na planilha

    Option Explicit

    Private Valor_Pesquisado As String

    Private Sub TxtBuscar_Change()

        Valor_Pesquisado = TxtBuscar.Text

        Call Carregar_Valores

    End Sub

    Private Sub TxtBuscar_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)

        TxtBuscar.Text = ""

        TxtBuscar.ForeColor = &H80000008

    End Sub,

    'COMANDO PARA CARREGAR E PESQUISAR DADOS DENTRO DA LISTBOX

    Private Sub Carregar_Valores()

        Dim Guia As Worksheet

        Dim Linha As Integer

        Dim Coluna As Integer

        Dim LinhaListBox As Integer

        Dim Valor_Celula As String

        Dim Conta_Registro As Integer

        Dim rowsource

        Set Guia = ThisWorkbook.Worksheets(1)

      

        Linha = 2

        Coluna = 1

        LinhaListBox = 0

        Conta_Registro = 0

       

        ListBox1.Clear

       

        With Guia

            While .Cells(Linha, Coluna).Value <> ""

            Valor_Celula = Cells(Linha, Coluna).Value

            If UCase(Left(Valor_Celula, Len(Valor_Pesquisado))) = UCase(Valor_Pesquisado) Then

       

        With UserForm1.ListBox1

            .AddItem

            .List(LinhaListBox, 0) = Sheets("Lancamentos").Cells(Linha, 1)

            .List(LinhaListBox, 1) = Sheets("Lancamentos").Cells(Linha, 2)

            .List(LinhaListBox, 2) = Sheets("Lancamentos").Cells(Linha, 3)

            .List(LinhaListBox, 3) = Sheets("Lancamentos").Cells(Linha, 4)

            .List(LinhaListBox, 4) = Sheets("Lancamentos").Cells(Linha, 5)

            .List(LinhaListBox, 5) = Sheets("Lancamentos").Cells(Linha, 6)

            LinhaListBox = LinhaListBox + 1

            Conta_Registro = Conta_Registro + 1

            Me.TxtBuscar.SetFocus

        End With

        End If

            Linha = Linha + 1

          

        Wend

        End With

       

            lbl_Registro = Conta_Registro

    End Sub

    Private Sub UserForm_Initialize()

        Call Carregar_Valores

    End Sub

    quinta-feira, 18 de outubro de 2018 17:01
  • Olá.

    Não entendi muito bem o problema, mas identifiquei que esta faltando uma linha para informar quantas colunas tem o ListBox (poderia ser após o "clear"):

    ListBox1.ColumnCount = 6

    Sobre não "localizar mais dados", o seu código interrompe a busca quando encontra uma célula vazia na coluna "A" (Coluna = 1). Não seria este o motivo de não carregar mais dados?


    Filipe Magno

    sexta-feira, 19 de outubro de 2018 02:30
  • Sobre não "localizar mais dados", o seu código interrompe a busca quando encontra uma célula vazia na coluna "A" (Coluna = 1). Não seria este o motivo de não carregar mais dados?

    Sim Felipe, como corrigir o problema? preciso adicionar algum código, me oriente. obrigado!

    segunda-feira, 22 de outubro de 2018 14:30
  • Sobre não "localizar mais dados", o seu código interrompe a busca quando encontra uma célula vazia na coluna "A" (Coluna = 1). Não seria este o motivo de não carregar mais dados?

    Sim Felipe, como corrigir o problema? preciso adicionar algum código, me oriente. obrigado!

    Então você precisa definir qual o critério para interromper o carregamento. Por exemplo: até a linha 500 ou até a última linha preenchida em determinada coluna, mesmo que existam linhas vazias no intervalo.

    Filipe Magno

    segunda-feira, 22 de outubro de 2018 14:33
  • Meu caro,

    como faria isso? dar pra o Sr. fazer essa correção no código e postar pra mim copiar.

    colocar até a ultima linha preenchida, 

    se quiser posto a planilha aqui.

    segunda-feira, 22 de outubro de 2018 16:36
  • Para percorrer até a última linha preenchida na coluna "A" bastaria trocar o seu "While" pelo "For" a seguir:

    For i = Linha To ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
    
        'Seu código...
        
    Next

    Abraço


    Filipe Magno

    terça-feira, 23 de outubro de 2018 22:58
  • Obrigado meu nobre Filipe, era o que faltava, deu certo. funcionou.
    quarta-feira, 24 de outubro de 2018 19:04