Listbox travando a planilha  [Resolvido]

Visual Basic for Aplication e macros no Excel.
Regras do fórum
Sua dúvida foi respondida? Marque como RESOLVIDO em seus tópicos, usando o botão com marca verde. Imagem

Listbox travando a planilha

Mensagempor Andreyzes » Ter Set 10, 2019 2:49 pm

Boa tarde!

Criei uma planilha de cadastro de clientes com um formulário contendo duas abas:

Aba 1 - Excluir cadastros, pesquisar cadastros por nome, pesquisar por telefone, atualizar cadastros e adicionar novos cadastros.
Aba 2 - Lisbox para o usuário visualizar todos os cadastros feitos com duas caixas de pesquisa, que filtram automaticamente a listbox ou por nome ou por numero de telefone.

O PROBLEMA:

Fiz 500 cadastros para testar os comandos de pesquisa, quando vou na listbox e filtro por telefone, ele funciona perfeitamente, porém, quando começo a digitar pelo nome do cliente, a planilha trava e apresenta o seguinte erro:

O método '_Default' do objeto 'Range' falhou

E me mostra que o erro está na variável
Sub Filtro()
na linha:

Código: Selecionar todos
While.Cells(linha,1).Value<>""

Será que alguém pode me ajudar?
Andreyzes
Membro
Membro
 
Mensagens: 2
Registrado em: Seg Set 09, 2019 10:02 pm
Has thanked: 1 time
Have thanks: 0 time

{ SO_SELECT }

Re: Listbox travando a planilha  [Resolvido]

Mensagempor rlm » Ter Set 10, 2019 3:27 pm

Experimente utilizar a roitna Filtro conforme segue:
Código: Selecionar todos
Sub Filtro()
Dim linha As Integer, linhalistbox As Integer
Dim valor_celula As String

ListBox1.Clear
With ListBox1
    .AddItem
    .List(0, 0) = "Nome"
    .List(0, 1) = "Endereço"
    .List(0, 2) = "Telefone"
    .List(0, 3) = "Email"
    .List(0, 4) = "Imóvel"
    .List(0, 5) = "Observação"
    .ColumnWidths = "80;120;90;90;80;100"
End With

linhalistbox = 1
linha = 4

With Planilha3
    While .Cells(linha, 1).Value <> ""
        valor_celula = .Cells(linha, 1).Value
        If UCase(Left(valor_celula, Len(TextBoxMes.Text))) = UCase(TextBoxMes.Text) Then
        valor_celula = .Cells(linha, 3).Value
            If UCase(Left(valor_celula, Len(TextBoxTel.Text))) = UCase(TextBoxTel.Text) Then
                With ListBox1
                .AddItem
                .List(linhalistbox, 0) = Planilha3.Cells(linha, 1)
                .List(linhalistbox, 1) = Planilha3.Cells(linha, 2)
                .List(linhalistbox, 2) = Planilha3.Cells(linha, 3)
                .List(linhalistbox, 3) = Planilha3.Cells(linha, 4)
                .List(linhalistbox, 4) = Planilha3.Cells(linha, 5)
                .List(linhalistbox, 5) = Planilha3.Cells(linha, 6)
                End With
            linhalistbox = linhalistbox + 1
            End If
        End If
         linha = linha + 1
   Wend
End With
End Sub
Reinaldo
Garça - SP / SCS - SP

For this post the author rlm thanked:
Andreyzes (Ter Set 10, 2019 4:37 pm)
Avatar do usuário
rlm
Ninja do Excel
Ninja do Excel
 
Mensagens: 366
Registrado em: Qui Out 16, 2014 12:30 pm
Has thanked: 26 times
Have thanks: 165 times

Re: Listbox travando a planilha

Mensagempor Andreyzes » Ter Set 10, 2019 4:38 pm

Funcionou perfeitamente, muito obrigado!
Andreyzes
Membro
Membro
 
Mensagens: 2
Registrado em: Seg Set 09, 2019 10:02 pm
Has thanked: 1 time
Have thanks: 0 time


Voltar para VBA & Macros

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 7 visitantes