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

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

Form carregar Registro Conforme Opção [RESOLVIDO]

Mensagem por pedrobb »

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

Re: Form carregar Registro Conforme Opção

Mensagem por srobles »

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


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

Re: Form carregar Registro Conforme Opção

Mensagem por pedrobb »

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 376 vezes


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

Re: Form carregar Registro Conforme Opção

Mensagem por srobles »

pedrobb,

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

Abs
Anexos
Investimento - TESTE.zip
(86.58 KiB) Baixado 408 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.


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

Re: Form carregar Registro Conforme Opção

Mensagem por pedrobb »

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

Re: Form carregar Registro Conforme Opção

Mensagem por srobles »

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


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

Re: Form carregar Registro Conforme Opção

Mensagem por srobles »

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


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