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.
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.
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
VBA LISTBOX LOOP
- Anexos
-
- investimento.png (12.71 KiB) Exibido 609 vezes
-
- contenha.png (68.11 KiB) Exibido 609 vezes
-
- code.png (5.4 KiB) Exibido 609 vezes
Re: VBA LISTBOX LOOP
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 :
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
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
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].
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].