Esqueceu sua senha? Você pode usar o mecanismo de lembrete neste link: Recuperar senha

Você receberá um link de reativação no email cadastrado.

Não recebeu o email? Lembre-se checar o Lixo Eletrônico.

VBA LISTBOX LOOP

Fórum para dúvidas sobre os fundamentos da linguagem de programação Visual Basic no contexto do VBA
Ilathieri
Acabou de chegar
Acabou de chegar
Mensagens: 1
Registrado em: Dom Jan 13, 2019 7:08 pm

VBA LISTBOX LOOP

Mensagem por Ilathieri » Dom Jan 13, 2019 7:16 pm

Preciso de uma ajuda,
Tenho um codigo que ele faz a leitura de uma aba da planilha, onde contém todos os registros e depois ele retorna o valor que seja igual ao digitado (da esquerda para direita).
O problema é que quero retornar todo e qualquer registro que CONTENHA o que escrever e não somente esquerda.

cod.
Private Sub CbTituloCVM_Change()

Application.ScreenUpdating = True
Run "destravar"

valor_pesq = CbTituloCVM.Text

Dim guia As Worksheet
Dim linha As Integer
Dim coluna As Integer
Dim linhalistbox As Integer
Dim valor_celula As String
Dim conta_registros As Integer

Set guia = ThisWorkbook.Worksheets("Fun_Cadastro")




coluna = 3 'localizado dentro da coluna 3 os respectivos dados
linhalistbox = 0
conta_registros = 0
linha = 2 'dentro da aba de dados começa apartir da linha 2
'(linha, coluna) = (2,3) = c2


LstFundos.Clear

Sheets("Fun_Cadastro").Select

With guia 'Guia de dados no formulario

While .Cells(linha, coluna).Value <> Empty 'Enq. linha e coluna forem <> de 0
valor_celula = .Cells(linha, coluna).Value

If UCase(Left(valor_celula, Len(valor_pesq))) Like UCase(valor_pesq) Then


'--------------------------------

'OBSERVAÇÕES SOBRE A FORMULA

'UCase = Transforma tudo o q esta entre () em MAIUSCULO
'LEFT = Procurar a esq. de
'Len = Contador de Caract sobre um parametro (neste caso vlr. procurado)
'Empty = Valor NUll, ou seja, ZERO

'--------------------------------
With Me.LstFundos
.AddItem
.List(linhalistbox, 0) = Sheets("fun_cadastro").Cells(linha, 1) 'ID
.List(linhalistbox, 1) = Sheets("fun_cadastro").Cells(linha, 2) 'CNPJ
.List(linhalistbox, 2) = Sheets("fun_cadastro").Cells(linha, 3) 'Titulo CVM
.List(linhalistbox, 3) = Sheets("fun_cadastro").Cells(linha, 4) 'Titulo ABR
.List(linhalistbox, 4) = Sheets("fun_cadastro").Cells(linha, 5) 'Classificacao
.List(linhalistbox, 5) = Sheets("fun_cadastro").Cells(linha, 6) ' Conta
.List(linhalistbox, 6) = Sheets("fun_cadastro").Cells(linha, 7) ' Gestor
.List(linhalistbox, 7) = Sheets("fun_cadastro").Cells(linha, 8) ' Observação
linhalistbox = linhalistbox + 1
End With
conta_registros = conta_registros + 1

End If
linha = linha + 1
Wend
End With

Run "travar"
Application.ScreenUpdating = False

End Sub




____________________

Função LIKR não funciona, criterios de filtro como ="*"* não funcionam pois o listbox funciona com loop impossibilidando a função criterial.
Anexos
investimento.png
investimento.png (12.71 KiB) Exibido 485 vezes
contenha.png
contenha.png (68.11 KiB) Exibido 485 vezes
code.png
code.png (5.4 KiB) Exibido 485 vezes



Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


srobles
Sabe muito
Sabe muito
Mensagens: 738
Registrado em: Qua Mai 06, 2015 7:39 pm

Re: VBA LISTBOX LOOP

Mensagem por srobles » Ter Abr 09, 2019 10:06 pm

llathieri,

Com relação ao que foi destacado na última imagem, sim, esta linha deve ser alterada, já que a mesma verifica o conteúdo á esquerda, contido nesta célula.

Com base nessa informação, basta que se altere a instrução dela para :

Código: Selecionar todos

   If UCase(.Cells(linha, coluna).Value) Like UCase(valor_pesq) Then
Assim, a condição passa a ser SE o existe o valor pesquisado (valor_pesq) em todo o texto contido na celula atual.

Espero ter ajudado.

Abs


Espero ter ajudado.

Abs.

Saulo Robles


Remember when you were young?
You shone like the sun.
Shine On You Crazy Diamond


Se suas dúvidas foram esclarecidas, acrescente ao lado do título o texto [RESOLVIDO].

Responder