Vídeo recomendado
https://youtu.be/diWPPPhW-9E

Listview Mostrar Item Selecionado

Fórum para dúvidas sobre os fundamentos da linguagem de programação Visual Basic no contexto do VBA
pedrobb
Colaborador
Colaborador
Mensagens: 74
Registrado em: Qua Jul 25, 2012 12:42 pm
Localização: Montes Claros-MG

Listview Mostrar Item Selecionado

Mensagem por pedrobb »

Pessoal,
Baixei o anexo na Internet, e estou com dificuldades em adaptar:

a) Coloquei as 2 linhas abaixo no INITIALIZE pra Carregar os Listview com TODOS os registros ao abrir:
sCriterioDaBusca = txt_Procurar.Text
Call ProcuraPersonalizada("*.*", "Tudo")
'ERRO: Ao Abrir o Form, alguns registros não aparecem no ListView (exemplo: 11); e a maioria foi DUPLICADA; o último registro não aparece

b) Gostaria que a primeira linha aparecesse Selecionada automaticamente (e não Manualmente)

c) Quero excluir a COMBOBOX1 e implementar a Consulta através dos OPTIONBUTTONS da Frame FILTRAR POR:.
Obs: que o cabeçalho NÃO aparecesse no Listview (digite A no Textbox txt_procurar e a Listview mostra o cabeçalho).

Grato,
Pedro
Anexos
Busca Personalizada 4.zip
(103.42 KiB) Baixado 292 vezes
Editado pela última vez por pedrobb em Sex Fev 16, 2018 8:47 pm, em um total de 3 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.


Avatar do usuário
Reinaldo
Jedi
Jedi
Mensagens: 1537
Registrado em: Sex Ago 01, 2014 4:09 pm
Localização: Garça - SP / SCS - SP

Re: Erros em Pesquisa com Filtro Listview

Mensagem por Reinaldo »

Considerações referente a
a) Coloquei as 2 linhas...
a linha: sCriterioDaBusca = txt_Procurar.Text,
não tem motivo pratico visto que ao iniciar o formulario o Txt_Procurar estará sempre em branco.

a linha:Call ProcuraPersonalizada("*.*", "Tudo") - aqui você está procurando qualquer referencia/célula que contenha um ponto (.); sendo que justamente essa procura e que está gerando dados repetidos e faltantes.
Veja Na célula E2 há ponto assim a linha 2 e marcada para carregar,
Seguindo a pesquisa na célula G2 (mesmo estando oculta) também e encontrado ;novamente a linha 2 e marcada para carregar
Obs.: Apesar de na planilha visualmente ao editar a célula o numero ser 635371970,99, internamente (e e o que o vba está lendo) esse numero e "visto" como 635371970.99 (ponto e o separador de decimal)
Pelo mesmo motivo o registro 11 não é carregado, não foi encontrado nenhum dado com ponto nessa linha.
Sugestão ao determinar na procura inical Tudo, determine uma unica coluna (preferivelmente a coluna A)e substitua o *.* por *
Experimente seu initialize assim:

Código: Selecionar todos

Private Sub UserForm_Initialize()
SpinButton1.Enabled = False
btn_Editar.Enabled = False
btn_Excluir.Enabled = False

Label_Registros_Contador.Caption = ""
    
Call ConfigurarListaDeCampos
Call ConfigListView
   
sCriterioDaBusca = ""
Call ProcuraPersonalizada("*", "Código")
End Sub


pedrobb
Colaborador
Colaborador
Mensagens: 74
Registrado em: Qua Jul 25, 2012 12:42 pm
Localização: Montes Claros-MG

Re: Erros em Pesquisa com Filtro Listview

Mensagem por pedrobb »

Reinaldo,
Muito obrigado.
A linha do Cabeçalho (Linha 1 da Plan1) aparece como último registro do Listview1. Como evitar isso?


Avatar do usuário
Reinaldo
Jedi
Jedi
Mensagens: 1537
Registrado em: Sex Ago 01, 2014 4:09 pm
Localização: Garça - SP / SCS - SP

Re: Erros em Pesquisa com Filtro Listview

Mensagem por Reinaldo »

Uma possibilidade, altere a rotina que carrega o listview conforme abaixo

Código: Selecionar todos

Sub PreencheListView()
Dim i As Long
ListView1.ListItems.Clear

If IsArray(MatrizResultadosLinha) Then
    For i = 0 To UBound(MatrizResultadosLinha)
        If MatrizResultadosLinha(i) <> 1 Then
            Set NewItem = ListView1.ListItems.Add(, , i)
            With Sheets(CInt(MatrizResultadosPlanilha(i)))
                NewItem.SubItems(1) = .Cells(MatrizResultadosLinha(i), 1).Value
                NewItem.SubItems(2) = .Cells(MatrizResultadosLinha(i), 2).Value
                NewItem.SubItems(3) = .Cells(MatrizResultadosLinha(i), 3).Value
                NewItem.SubItems(4) = .Cells(MatrizResultadosLinha(i), 4).Value
                NewItem.SubItems(5) = .Cells(MatrizResultadosLinha(i), 5).Value
                NewItem.SubItems(6) = .Cells(MatrizResultadosLinha(i), 6).Value
            End With
        End If
    Next i
End If
End Sub


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.


pedrobb
Colaborador
Colaborador
Mensagens: 74
Registrado em: Qua Jul 25, 2012 12:42 pm
Localização: Montes Claros-MG

Re: Erros em Pesquisa com Filtro Listview

Mensagem por pedrobb »

Funcionou belezinha.
Show de Bola, Reinaldo!
Valeu!!!!
Obs: Os OptionButtons consigo fazer funcionar.
Vou tentar fazer com que o 1º registro da Listview apareça Selecionado automaticamente (e não Manualmente).
Se tiver sugestão, agradeço desde já.


pedrobb
Colaborador
Colaborador
Mensagens: 74
Registrado em: Qua Jul 25, 2012 12:42 pm
Localização: Montes Claros-MG

Re: Erros em Pesquisa com Filtro Listview

Mensagem por pedrobb »

Reinaldo,
Percebi um problema.
Quando abro o form, se clicar no 2º registro (por exemplo), o contador de registro (Label_Registros_Contador) continua no registro 1. Por isso a ação de Alterar ou Excluir o registro 2 se dá no registro 1 indevidamente.
Agradeço se puder verificar.
Pedro


Avatar do usuário
Reinaldo
Jedi
Jedi
Mensagens: 1537
Registrado em: Sex Ago 01, 2014 4:09 pm
Localização: Garça - SP / SCS - SP

Re: Erros em Pesquisa com Filtro Listview

Mensagem por Reinaldo »

Não sei do projeto original. mas pelo seu modelo atual, a listview "trabalha" separado do spinbutton.
Ambos alteram as txt's acima do spin, mas tem "funcionamento" distinto.

Fiz algumas alterações, veja atende
Anexos
Busca Personalizada 4.zip
(94.19 KiB) Baixado 272 vezes


pedrobb
Colaborador
Colaborador
Mensagens: 74
Registrado em: Qua Jul 25, 2012 12:42 pm
Localização: Montes Claros-MG

Listview Mostrar Item Selecionado

Mensagem por pedrobb »

Reinaldo,
Resolvi eliminar os SpinButtons. Veja as alterações no anexo.
Mas agora estou com 2 problemas:

1) Ao carregar, o primeiro ítem da Listview aparece Selecionado (assim que eu quero). Mas ao Filtrar o primeiro ítem NÃO aparece Selecionado. Por que?
2) Os Textboxs de Informes só aparecem ao clicar no ítem da Listview. Por que? Precisa ser automaticamente.

Se você ou outro expert puder ajudar, desde já agradeço,
Pedro
Anexos
Busca.zip
(209.86 KiB) Baixado 285 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.


Responder