Página 1 de 1

Listview Mostrar Item Selecionado

Enviado: Qui Fev 08, 2018 10:46 am
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

Re: Erros em Pesquisa com Filtro Listview

Enviado: Qui Fev 08, 2018 9:58 pm
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

Re: Erros em Pesquisa com Filtro Listview

Enviado: Sex Fev 09, 2018 11:39 am
por pedrobb
Reinaldo,
Muito obrigado.
A linha do Cabeçalho (Linha 1 da Plan1) aparece como último registro do Listview1. Como evitar isso?

Re: Erros em Pesquisa com Filtro Listview

Enviado: Sex Fev 09, 2018 12:04 pm
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

Re: Erros em Pesquisa com Filtro Listview

Enviado: Sex Fev 09, 2018 2:19 pm
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á.

Re: Erros em Pesquisa com Filtro Listview

Enviado: Sáb Fev 10, 2018 10:31 am
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

Re: Erros em Pesquisa com Filtro Listview

Enviado: Sáb Fev 10, 2018 6:09 pm
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

Listview Mostrar Item Selecionado

Enviado: Qui Fev 15, 2018 10:31 am
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