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.

Carregar CheckBox [RESOLVIDO]

Fórum para dúvidas sobre os fundamentos da linguagem de programação Visual Basic no contexto do VBA
AjHottz
Colaborador
Colaborador
Mensagens: 10
Registrado em: Qua Nov 27, 2019 5:05 pm

Carregar CheckBox [RESOLVIDO]

Mensagem por AjHottz » Sex Nov 29, 2019 4:57 pm

Boa tarde gente,
uso o seguinte código para selecionar os valores das checkbox marcadas e preencher a planilha excel

Código: Selecionar todos

Private Sub CarregaRegistro()
'carrega os dados do primeiro registro
     'Variável para armazenar 14 controles
    Dim ctlNome(1 To 14) As String
    'Variável para podermos trabalhar apenas nos controles do Form
    Dim ctlChk As Control
    'Variável para controle dos objetos
    Dim contador As Integer
    Dim a As Long
    
    'Laço FOR EACH para validarmos quais CheckBox estão marcados
    For Each ctlChk In Me.Frame10.Controls
        'Se o tipo do nome do controle for igual a CheckBox e o mesmo estiver flagado
        If TypeName(ctlChk) = "CheckBox" And ctlChk = True Then
            'Incrementamos o contador
            contador = contador + 1
            'Adicionamos seu texto á lista de variáveis (15)
            ctlNome(contador) = ctlChk.Caption
        End If
    Next
    
    'Variável para armazenar todos os CheckBoxes flagados
    Dim listaIncisos As String
    
    'Verificamos quais dentre os 39 estão marcados
    For a = 1 To UBound(ctlNome)
        'Se a variável de id "a" for diferente de nula
        If ctlNome(a) <> "" Then
            'Adicionamos o texto do checkbox e concatenamos a variável o caracter ,
            listaIncisos = listaIncisos & ctlNome(a) & " , "
        End If
    Next
    .Cells(indice, colHomePage).Value = Mid(listaIncisos, 1, Len(listaIncisos))
    
E funciona perfeitamente, porém gostaria de quando carregar determinado registro, essas checkbox carregassem marcadas de acordo com o valor dessa célula. É possível?


Muito obrigado da ajuda de todos vocês,
Sou novo no fórum mas percebi que estão sempre dispostos a ajudar
Anexos
Modelo Cadastro Agora Vai.zip
(64.44 KiB) Baixado 6 vezes
Editado pela última vez por AjHottz em Qui Dez 05, 2019 3:17 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.


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

Re: Carregar CheckBox

Mensagem por Reinaldo » Sex Nov 29, 2019 6:41 pm

Segue uma possibilidade
Obs.: Alterado no nome dos checkbox as terminações numéricas para Romano, afim de facilitar a rotina
Anexos
Cópia de Modelo Cadastro Agora Vai.zip
(68.9 KiB) Baixado 10 vezes


Reinaldo
Gostou da resposta?:?: :oops: :D :mrgreen:

AjHottz
Colaborador
Colaborador
Mensagens: 10
Registrado em: Qua Nov 27, 2019 5:05 pm

Re: Carregar CheckBox

Mensagem por AjHottz » Seg Dez 02, 2019 6:10 pm

Reinaldo, Muito obrigado da ajuda, funcionou perfeitamente no que você fez maaaaas... Não consigo replicar ele pros outros Checkbox. Pode me ajudar?
Além do checkbox agora também existem optionbuttons. Acredito que seja parecido o procedimento mas tentei de todas as formas e não conseguir replicar

Segue planilha em anexo
Anexos
Modelo Cadastro Agora Vai quase finalizado.zip
(69.74 KiB) Baixado 3 vezes



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

Re: Carregar CheckBox

Mensagem por Reinaldo » Ter Dez 03, 2019 10:38 am

"...pros outros Checkbox..." --> Não consegui entender/visualisar onde será(ão) armazenado esses novos checkbox's
Para Option, pela maneira que está no projeto a maneira encontrada foi incluir a rotina "CarregaParecer"

Código: Selecionar todos

Private Sub CarregaParecer()
'Verifica e "carrega" (se houver); parecer primeiro Conselheiro
If wsCadastro.Cells(indiceRegistro, colVoto1).Value <> "" And wsCadastro.Cells(indiceRegistro, colVoto1).Value = "Favorável" Then
    Me.OptionButton6 = True
ElseIf wsCadastro.Cells(indiceRegistro, colVoto1).Value <> "" And wsCadastro.Cells(indiceRegistro, colVoto1).Value = "Desfavorável" Then
    Me.OptionButton7 = True
End If
'Verifica e "carrega" (se houver); parecer Segundo Conselheiro
If wsCadastro.Cells(indiceRegistro, colVoto2).Value <> "" And wsCadastro.Cells(indiceRegistro, colVoto2).Value = "Favorável" Then
    Me.OptionButton8 = True
ElseIf wsCadastro.Cells(indiceRegistro, colVoto2).Value <> "" And wsCadastro.Cells(indiceRegistro, colVoto2).Value = "Desfavorável" Then
    Me.OptionButton9 = True
End If
'Verifica e "carrega" (se houver); parecer Terceiro Conselheiro
If wsCadastro.Cells(indiceRegistro, colVoto3).Value <> "" And wsCadastro.Cells(indiceRegistro, colVoto3).Value = "Favorável" Then
    Me.OptionButton10 = True
ElseIf wsCadastro.Cells(indiceRegistro, colVoto3).Value <> "" And wsCadastro.Cells(indiceRegistro, colVoto3).Value = "Desfavorável" Then
    Me.OptionButton11 = True
End If
'Verifica e "carrega" (se houver); parecer quarto Conselheiro
If wsCadastro.Cells(indiceRegistro, colVoto4).Value <> "" And wsCadastro.Cells(indiceRegistro, colVoto4).Value = "Favorável" Then
    Me.OptionButton12 = True
ElseIf wsCadastro.Cells(indiceRegistro, colVoto4).Value <> "" And wsCadastro.Cells(indiceRegistro, colVoto4).Value = "Desfavorável" Then
    Me.OptionButton13 = True
End If
'Verifica e "carrega" (se houver); parecer quinto Conselheiro
If wsCadastro.Cells(indiceRegistro, colVoto5).Value <> "" And wsCadastro.Cells(indiceRegistro, colVoto5).Value = "Favorável" Then
    Me.OptionButton14 = True
ElseIf wsCadastro.Cells(indiceRegistro, colVoto5).Value <> "" And wsCadastro.Cells(indiceRegistro, colVoto5).Value = "Desfavorável" Then
    Me.OptionButton15 = True
End If
EndSub
E alterar a "limpeza" dos Checkbox, incluindo tambem os options

Código: Selecionar todos

Private Sub Limpa_Checkbox()
Dim control As control
Dim x As Integer
    For Each control In Me.Frame10.Controls
        control.Value = 0
    Next
    For x = 6 To 15
    Me.Controls("OptionButton" & x) = False
    Next
End Sub
Segue seu modelo/exemplo alterado


Reinaldo
Gostou da resposta?:?: :oops: :D :mrgreen:

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.


AjHottz
Colaborador
Colaborador
Mensagens: 10
Registrado em: Qua Nov 27, 2019 5:05 pm

Re: Carregar CheckBox

Mensagem por AjHottz » Ter Dez 03, 2019 2:13 pm

Nossa Reinaldo, você é muito sinistro, os optionbuttons ficaram certinhos. A limpeza eu tinha colocado na Sub LimpaControles, mas por ser muito leigo em VBA, coloquei um por um. Você fez tudo rapidinho rs.

Quanto aos checkBox: Os do frame11 devem preencher e carregar a coluna M (colAgravantes),
os do frame10, foi o que você me ajudou e preenche e carrega a coluna N (colHomePage)
Os do frame13 devem preencher e carregar a coluna U (colAgravantes2),
Os do frame14 devem preencher e carregar a coluna V (colIncisos2).

Porém o código que usei pra preencher a coluna N, não consegui replicar para as outras. Pode me ajudar com isso também? :)
Anexos
Cópia de Modelo Cadastro Agora Vai quase finalizado.zip
(71.76 KiB) Baixado 3 vezes



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

Re: Carregar CheckBox

Mensagem por Reinaldo » Ter Dez 03, 2019 3:05 pm

Não localizei frame15 em seu projeto somente 10/11/12/13.
Considero Frame 12 na coluna V e Frame 13 na coluna U ?
Considero também que a exemplo do Frame10 o Frame12 "carregue" os números romanos dos incisos I II....XIII; correto?
O que "carregar" dos Frames 11 e 13 ?
A descrição dos Caption/Label's são bem extensas e não faz, a meu ver, sentido utiliza-las; alternativa?


Reinaldo
Gostou da resposta?:?: :oops: :D :mrgreen:

AjHottz
Colaborador
Colaborador
Mensagens: 10
Registrado em: Qua Nov 27, 2019 5:05 pm

Re: Carregar CheckBox

Mensagem por AjHottz » Ter Dez 03, 2019 4:22 pm

Consegui gravar nas células, só não consigo carregar os checkboxes quando puxo o registro.
Único problema que quando deixo o checkbox em branco ele retorna um erro. Como consigo resolver isso?
Nos frames 11 e 13 são 3 opções que preciso na mesma célula para filtrar depois, pois são agravantes.

Segue modelo com os checkbox gravando, mas precisam estar marcados para não retornar erro
Anexos
Modelo Cadastro Agora Vai v789.zip
(76.7 KiB) Baixado 4 vezes



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

Re: Carregar CheckBox

Mensagem por Reinaldo » Qua Dez 04, 2019 1:35 pm

Experimente:
Cópia de Modelo Cadastro Agora Vai v789.zip
(90.36 KiB) Baixado 8 vezes


Reinaldo
Gostou da resposta?:?: :oops: :D :mrgreen:

AjHottz
Colaborador
Colaborador
Mensagens: 10
Registrado em: Qua Nov 27, 2019 5:05 pm

Re: Carregar CheckBox

Mensagem por AjHottz » Qui Dez 05, 2019 3:13 pm

Reinaldo, ficou perfeito!!!!
Muito obrigado, sem você não sei se esse projeto sairia.
Deixo aqui minha planilha final caso alguém queira usar para alguma coisa

Muito obrigado mesmo.
Senha: 1234
Anexos
Planilha Conselho Diretor vFinal6.zip
(108.64 KiB) Baixado 4 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