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.

Form carregar Registro Conforme Opção [RESOLVIDO]

Esclarecimentos e dúvidas sob o Modelo de Aplicativo de Cadastro em VBA no Microsoft Excel publicado no site e blog http://www.tomasvasquez.com.br
pedrobb
Colaborador
Colaborador
Mensagens: 61
Registrado em: Qua Jul 25, 2012 12:42 pm
Localização: Montes Claros-MG

Form carregar Registro Conforme Opção [RESOLVIDO]

Mensagem por pedrobb » Sáb Mai 06, 2017 6:27 pm

Pessoal,
Eu uso a função abaixo pra carregar um formulário:

Private Sub CarregaRegistro()
'carrega os dados do primeiro registro
If Not IsEmpty(.Cells(indiceregistro, colCod)) Then
Me.txtCod.Text = .Cells(indiceregistro, colCod).Value
Me.CombAtivos.Value = .Cells(indiceregistro, colNomedoAtivo).Value
Me.TxtTipo.Text = .Cells(indiceregistro, colTipo).Value
Me.txtStatus.Text = .Cells(indiceregistro, colStatus).Value
End Sub

Na Coluna 2, chamada colStatus tenho 2 status: Ativo e Inativo.
Quando o form é aberto, carrega todos os dados, seja Ativo ou Inativo.

Como fazer pro usuário optar por Carregar no Form conforme a sua conveniência?
Ou seja, filtrar por Status: Ativo, Inativo, ou Todos.
Grato,
Pedro
Editado pela última vez por pedrobb em Dom Ago 27, 2017 6:48 pm, em um total de 1 vez.



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
Jedi
Jedi
Mensagens: 766
Registrado em: Qua Mai 06, 2015 7:39 pm

Re: Form carregar Registro Conforme Opção

Mensagem por srobles » Dom Mai 07, 2017 12:53 am

pedrobb,

Para aplicar um filtro ao carregar os dados, adicione OptionButtons ou um ComboBox com os Status citados, e na rotina de carga, adicione a linha contendo o filtro.

Exemplo para o ComboBox:

Código: Selecionar todos

Private Sub CarregaRegistro()
   'carrega os dados do primeiro registro
      If Not IsEmpty(.Cells(indiceregistro, colCod)) Then
      	 If ComboBox1 <>"TUDO" Or ComboBox1 <>"Tudo" Then
            If .Cells(indiceregistro, colStatus) = Me.ComboBox1 Then 'linha para aplicar o filtro
               Me.txtCod.Text = .Cells(indiceregistro, colCod).Value
               Me.CombAtivos.Value = .Cells(indiceregistro, colNomedoAtivo).Value
               Me.TxtTipo.Text = .Cells(indiceregistro, colTipo).Value
               Me.txtStatus.Text = .Cells(indiceregistro, colStatus).Value
            End If
         Else
               Me.txtCod.Text = .Cells(indiceregistro, colCod).Value
               Me.CombAtivos.Value = .Cells(indiceregistro, colNomedoAtivo).Value
               Me.TxtTipo.Text = .Cells(indiceregistro, colTipo).Value
               Me.txtStatus.Text = .Cells(indiceregistro, colStatus).Value         
         End If
      End If
End Sub
Exemplo para os OptionButtons:

Código: Selecionar todos

'Filtrar apenas Ativos
Private Sub OptionButton1_Click()
   'carrega os dados do primeiro registro
      If Not IsEmpty(.Cells(indiceregistro, colCod)) And .Cells(indiceregistro, colStatus) = "Ativo" Then
            Me.txtCod.Text = .Cells(indiceregistro, colCod).Value
            Me.CombAtivos.Value = .Cells(indiceregistro, colNomedoAtivo).Value
            Me.TxtTipo.Text = .Cells(indiceregistro, colTipo).Value
            Me.txtStatus.Text = .Cells(indiceregistro, colStatus).Value
      End If
End Sub

'Filtrar apenas Inativos
Private Sub OptionButton2_Click()
   'carrega os dados do primeiro registro
      If Not IsEmpty(.Cells(indiceregistro, colCod)) And .Cells(indiceregistro, colStatus) = "Inativo" Then
            Me.txtCod.Text = .Cells(indiceregistro, colCod).Value
            Me.CombAtivos.Value = .Cells(indiceregistro, colNomedoAtivo).Value
            Me.TxtTipo.Text = .Cells(indiceregistro, colTipo).Value
            Me.txtStatus.Text = .Cells(indiceregistro, colStatus).Value
      End If
End Sub

'Todos os registros
Private Sub OptionButton3_Click()
   'carrega os dados do primeiro registro
      If Not IsEmpty(.Cells(indiceregistro, colCod)) Then
            Me.txtCod.Text = .Cells(indiceregistro, colCod).Value
            Me.CombAtivos.Value = .Cells(indiceregistro, colNomedoAtivo).Value
            Me.TxtTipo.Text = .Cells(indiceregistro, colTipo).Value
            Me.txtStatus.Text = .Cells(indiceregistro, colStatus).Value
      End If
End Sub
Experimente e retorne ok?

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].

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

Re: Form carregar Registro Conforme Opção

Mensagem por pedrobb » Dom Mai 07, 2017 9:23 am

Saulo,
Tentei com OptionButton.
Ao clicar no OptionButton1_Click() já sai do procedimento, pois o primeiro registro é "INATIVO".
Acho que precisa de While ou Do Until, Loop, etc, que é a minha dificuldade.

Pra facilitar, anexo um modelo.
Preciso que os Botões Ativos e Inativos funcionem.
Grato,
Pedro
Anexos
Investimento - TESTE.zip
(394.82 KiB) Baixado 139 vezes



srobles
Jedi
Jedi
Mensagens: 766
Registrado em: Qua Mai 06, 2015 7:39 pm

Re: Form carregar Registro Conforme Opção

Mensagem por srobles » Dom Mai 07, 2017 12:37 pm

pedrobb,

Fiz as modificações necessárias. Veja se é isso o que pretende ok?

Abs
Anexos
Investimento - TESTE.zip
(86.58 KiB) Baixado 151 vezes


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].

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: 61
Registrado em: Qua Jul 25, 2012 12:42 pm
Localização: Montes Claros-MG

Re: Form carregar Registro Conforme Opção

Mensagem por pedrobb » Seg Mai 08, 2017 9:31 am

Saulo,
Achei genial a sua idéia. Muito obrigado!
Ao passar pra minha planilha, está dando problema ao mover os registros.
Na Listbox, quando o cursor chega no último registro, as caixas de texto mostram os dados do cabeçalho.
Isso não ocorre no seu exemplo postado.
O que ocorre?



srobles
Jedi
Jedi
Mensagens: 766
Registrado em: Qua Mai 06, 2015 7:39 pm

Re: Form carregar Registro Conforme Opção

Mensagem por srobles » Seg Mai 08, 2017 10:41 am

pedrobb,

Nos testes que realizei aqui, isso não ocorre. Vou verificar a possível causa disso e volto a postar aqui a solução.
Sua nova planilha possui a mesma estrutura de dados que a postada aqui? O ideal seria trabalharmos na planilha que você utilizará no dia-a-dia.

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].

srobles
Jedi
Jedi
Mensagens: 766
Registrado em: Qua Mai 06, 2015 7:39 pm

Re: Form carregar Registro Conforme Opção

Mensagem por srobles » Dom Mai 21, 2017 6:40 pm

pedrobb,

Como vai amigo?

Favor, caso sua dúvida tenha sido sanada, edite o título de seu tópico com o texto [RESOLVIDO], ok?

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].

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