Ir ao conteúdo
  • Cadastre-se
Alex Toledo

RESOLVIDO Excel macro par buscar dados até a última linha preenchida

Recommended Posts

Bom dia Pessoal, abusando mais um pouco...

Há possibilidade de modificar esse código para que a procura ignore as linhas em branco e carregue todos os dados no listbox?

Nesta situação, ao filtrar no textbox ele procura os dados inseridos no txt1 mas somente ate achar uma linha em branco e para. Se tiver mais dados abaixo desta linha em branco ele nao carrega na listbox.

 

Obrigado!

 

Private Sub txt1_Change()


Dim guia As Worksheet
Dim valor_celula, linha, linhalistbox As Integer
Set guia = Plan1
linhalistbox = 0
linha = 2
ListBox4.Clear
With guia

While .Cells(linha, 2).Value <> Empty


valor_celula = .Cells(linha, 3).Value
If UCase(Left(valor_celula, Len(txt1.Text))) = UCase(txt1.Text) Then ' campus


valor_celula = .Cells(linha, 9).Value
If UCase(Left(valor_celula, Len(txt2.Text))) = UCase(txt2.Text) Then ' cpf


valor_celula = .Cells(linha, 39).Value
If UCase(Left(valor_celula, Len(txt3.Text))) = UCase(txt3.Text) Then ' data

valor_celula = .Cells(linha, 40).Value
If UCase(Left(valor_celula, Len(txt4.Text))) = UCase(txt4.Text) Then ' situacao

With ListBox4
.AddItem

.List(linhalistbox, 0) = guia.Cells(linha, 1)
.List(linhalistbox, 1) = guia.Cells(linha, 2)
.List(linhalistbox, 2) = guia.Cells(linha, 4)
.List(linhalistbox, 3) = guia.Cells(linha, 9)
.List(linhalistbox, 4) = guia.Cells(linha, 22)
.List(linhalistbox, 5) = guia.Cells(linha, 25)
.List(linhalistbox, 6) = guia.Cells(linha, 39)
.List(linhalistbox, 7) = guia.Cells(linha, 40)
.
End With
linhalistbox = linhalistbox + 1
End If
End If
End If
End If

linha = linha + 1

Wend

End With

End Sub

 

Compartilhar este post


Link para o post
Compartilhar em outros sites


 

Private Sub txt1_Change()


Dim guia As Worksheet
Dim valor_celula, linha, linhalistbox As Integer
Set guia = Plan1
linhalistbox = 0
ListBox4.Clear
With guia

For linha = 2 To .Cells(Rows.Count, 2).End(3).Row
 If .Cells(linha, 2).Value <> "" Then


valor_celula = .Cells(linha, 3).Value
If UCase(Left(valor_celula, Len(txt1.Text))) = UCase(txt1.Text) Then ' campus


valor_celula = .Cells(linha, 9).Value
If UCase(Left(valor_celula, Len(txt2.Text))) = UCase(txt2.Text) Then ' cpf


valor_celula = .Cells(linha, 39).Value
If UCase(Left(valor_celula, Len(txt3.Text))) = UCase(txt3.Text) Then ' data

valor_celula = .Cells(linha, 40).Value
If UCase(Left(valor_celula, Len(txt4.Text))) = UCase(txt4.Text) Then ' situacao

With ListBox4
.AddItem

.List(linhalistbox, 0) = guia.Cells(linha, 1)
.List(linhalistbox, 1) = guia.Cells(linha, 2)
.List(linhalistbox, 2) = guia.Cells(linha, 4)
.List(linhalistbox, 3) = guia.Cells(linha, 9)
.List(linhalistbox, 4) = guia.Cells(linha, 22)
.List(linhalistbox, 5) = guia.Cells(linha, 25)
.List(linhalistbox, 6) = guia.Cells(linha, 39)
.List(linhalistbox, 7) = guia.Cells(linha, 40)
.
End With
linhalistbox = linhalistbox + 1
End If
End If
End If
End If

Next linha
End If


End With

End Sub

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Inverta a posição dos comandos conforme abaixo.

 

de

Next linha.

End If

 

para

End If

Next linha

Se não resolver ou aparecer outro problema disponibilize o seu arquivo com os códigos instalados e descreva com exatidão o que você quer.

Não entendi qual é a missão da variável "valor_celula" no seu código...^_^

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×