Ir ao conteúdo

Posts recomendados

Postado

Pasta1.rar

Bom dia!

no exemplo em anexo eu tenho um formulário de cadastro de usuário, que salva o nome e senha na aba "Senha", e 5 checkbox que se referem as abas que o usuário quer ter acesso,

porém ao salvar o Checkbox salva o valor "VERDADEIRO", como eu altero isso para uma String como Senha, Plan1,Plan2, etc.

Postado

 

Dim NomePlan As String
 If CheckBox1.Value = xlOn Then NomePlan = "Plan1"
 ...
 ...
 .Cells(totalregistro, 3) = NomePlan

 

ou

If CheckBox1.Value = xlOn Then .Cells(totalregistro, 3) = NomePlan = "Plan1"

 

Postado

Agradeço a Dica @osvaldomp

porém ao incluir o meu form, ele envia as informações do usuário e da senha, mas não dos checkbox, pode me dizer o que fiz de errado

 

'Aqui está o botão responsável por salvar os dados na Planilha de Login lembram da mesma no topico anterior?
Private Sub Salvar_Click()
 
'Tomada de Decisão Sim e Não
    Dim Resposta As String
    Resposta = MsgBox("Deseja Salvar Este Usuário Agora?", vbYesNo, "Novo usuário")
    If Resposta = vbYes Then
 
        'Nossa pasta renomeada no post anterior e onde gravaremos os novos usuários e senhas
 
        totalregistro = Worksheets("Senha").UsedRange.Rows.Count + 1
        
        'Campo Obrigatório
        If txtNome.Text = "" Then
            MsgBox "Necessito De Um Nome Para Continuar. "
            txtNome.SetFocus
            Exit Sub
        End If
        
 Dim NomePlan As String
        With Worksheets("Senha")
            .Cells(totalregistro, 1) = txtNome
            .Cells(totalregistro, 2) = txtSenha
            If CheckBox1.Value = xlOn Then
            .Cells(totalregistro, 3) = NomePlan = "Plan1"
            End If
            
        End With
        

        'Mensagem apos a gravação de dados
 
        MsgBox ("Gravado Com Sucesso"), vbInformation, ("Novo usuário")
        txtNome = ""
        txtSenha = ""
        'txtAcesso = ""
 
        txtNome.SetFocus
    End If
    'Resposta Não aqui
    If Reposta = vbNo Then
 
        'Mensagem caso sua resposta seja não
        MsgBox ("Seus Dados Não Foram Gravados"), vbInformation, ("Novo usuário")
 
        txtNome = ""
        txtSenha = ""
       ' txtAcesso = ""
 
        txtNome.SetFocus
    End If
    
       
'Unload Me
'ActiveWorkbook.Close True
'Application.Quit

   End Sub

Postado

 

Experimente com True em lugar de xlOn:

 

If CheckBox1.Value = True Then .Cells(totalregistro, 3) = NomePlan

ou direto, sem utilizar variável

If CheckBox1.Value = True Then .Cells(totalregistro, 3) = "Plan1"

 

Postado

Agradeço muito man, deu certo sem utilizar a variável

 

adicionado 15 minutos depois

@osvaldompAproveitando a ajuda amigo, o código que você me passou ficou da forma abaixo.

isso para 2 Textbox e 5 Checkbox, minha dúvida é como eu poderia fazer que ao selecionar as 5 Checkbox o código repetisse o conteúdo das txtNome (Coluna A) e do txtSenha(Coluna B) e inclui-se a sequencia dos Checkbox?

 

 With Worksheets("Senha")
            .Cells(totalregistro, 1) = txtNome
            .Cells(totalregistro, 2) = txtSenha
            If CheckBox1.Value = True Then
            .Cells(totalregistro, 3) = "Senha"
            End If
            If CheckBox2.Value = True Then
            .Cells(totalregistro, 3) = "Gibis"
            End If
            If CheckBox3.Value = True Then
            .Cells(totalregistro, 3) = "Livros"
            End If
            If CheckBox4.Value = True Then
            .Cells(totalregistro, 3) = "Relatorio"
            End If
            If CheckBox5.Value = True Then
            .Cells(totalregistro, 3) = "Historia"
            End If
        End With

Postado

coloque esta declaração logo abaixo do nome da sub ~~~> Dim i As Long

 

substitua estas linhas

'        With Worksheets("Senha")
'            .Cells(totalregistro, 1) = txtNome
'            .Cells(totalregistro, 2) = txtSenha
'            .Cells(totalregistro, 3) = CheckBox1
'         End With

 


por estas 
 

 For i = 1 To 5
   If Cadastrar.Controls("CheckBox" & i) Then
    With Worksheets("Senha")
     .Cells(Rows.Count, 1).End(3)(2) = txtNome
     .Cells(Rows.Count, 2).End(3)(2) = txtSenha
     .Cells(Rows.Count, 3).End(3)(2) = Controls("CheckBox" & i).Caption
     'Controls("CheckBox" & i) = 0 '<~~~ se quiser limpar as CheckBoxes descomente esta linha
     End With
   End If
  Next i

 

Postado

Veja o arquivo anexo. É uma cópia do seu arquivo com as alterações que eu sugeri no post #6 somente.

Funciona corretamente. 😉

 

Pasta1 v2.zip

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!