Ajuda com formulári...
 
Notifications
Clear all

Ajuda com formulário.

14 Posts
2 Usuários
0 Reactions
1,635 Visualizações
cthulhuu
(@cthulhuu)
Posts: 16
Active Member
Topic starter
 

Boa noite, galera!

Venho aqui pedir ajuda de vocês. Estou fazendo este formulário de cadastro de funcionário, mas não estou conseguindo fazer o checkbox fica invisível no ato de rodar o formulário.
A ideia é que somente quando a ComboBox for = a "Sim" elas apareçam no formulário para serem marcadas e quando qualquer uma delas for marcada, automaticamente apareça uma Caixa de texto para poder ser digitado o valor que nos meus resultados finais da planilha completa será somado ao salário, mas isso fica para depois.
Pensei em fazer assim:

Private Sub cboRemuneracao_Change()
If Me.cboRemuneracao.Value = "Sim" Then
    
        Me.chkQuinqueno.Enabled = True
        Me.chkInsalubridade.Enabled = True
        Me.chkPericulosidade.Enabled = True
        Me.chkProdutividade.Enabled = True
        Me.chkAnuenio.Enabled = True
        Me.chkTrienio.Enabled = True
        Me.chkGratificacao.Enabled = True
        Me.chkAssiduidade.Enabled = True
        Me.chkInsentivo.Enabled = True
        Me.chkPTS.Enabled = True
        Me.chkPremioTarefa.Enabled = True
    Else
        Me.chkQuinqueno.Enabled = False
        Me.chkQuinqueno = False
        
        Me.chkInsalubridade.Enabled = False
        Me.chkInsalubridade = False
        
        Me.chkPericulosidade.Enabled = False
        Me.chkPericulosidade = False
        
        Me.chkProdutividade.Enabled = False
        Me.chkProdutividade = False
           
        Me.chkAnuenio.Enabled = False
        Me.chkAnuenio = False
        
        Me.chkTrienio.Enabled = False
        Me.chkTrienio = False
        
        Me.chkGratificacao.Enabled = False
        Me.chkGratificacao = False
        
        Me.chkAssiduidade.Enabled = False
        Me.chkAssiduidade = False
        
        Me.chkInsentivo.Enabled = False
        Me.chkInsentivo = False
        
        Me.chkPTS.Enabled = False
        Me.chkPTS = False
        
        Me.chkPremioTarefa.Enabled = False
        Me.chkPremioTarefa = False
        
    End If

Outra coisa, como faço para ter um contador inteligente que analise se tem ou não determinado código de funcionário em vez do usuário digitar o código toda vez de digitar o código toda vez?

Caso queiram ajudar a melhorar o formulário estarei de braços abertos.

Agradeço desde já, obrigado.

Att Cthulhu

 
Postado : 02/06/2014 10:06 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

Eu não entendi muito bem, mas a 1º dúvida pode ser assim.

Private Sub cboRemuneracao_Change()
      Frame1.Visible = Not Frame1.Visible
End Sub

A parte do Textbox eu não entendi.

2º Dúvida além de eu não entender, vamos tentar finalizar a primeira, antes de continuar tentar uma solução para a mesma.

Att

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 03/06/2014 12:32 pm
cthulhuu
(@cthulhuu)
Posts: 16
Active Member
Topic starter
 

Boa tarde, alexandrevba.

Obrigado pela atenção.

Então, não é bem assim que eu gostaria de fazer. Segue em anexo uma planilha exemplo do que eu gostaria de fazer, a respeito da 1º dúvida.

Att

 
Postado : 03/06/2014 12:45 pm
cthulhuu
(@cthulhuu)
Posts: 16
Active Member
Topic starter
 

Olá de novo, alexandrevba!

Consegui resolver da maneira da planilha em anexo na mensagem anterior.
Todos os chk começam ".Enable = False"

 If Me.cboRemuneracao.Value = "Sim" Then
    Me.chkQuinqueno.Enabled = True
    chkInsalubridade.Enabled = True
    chkPericulosidade.Enabled = True
    chkProdutividade.Enabled = True
    chkAnuenio.Enabled = True
    chkTrienio.Enabled = True
    chkGratificacao.Enabled = True
    chkAssiduidade.Enabled = True
    chkInsentivo.Enabled = True
    chkPTS.Enabled = True
    chkPremioTarefa.Enabled = True
Else
    chkQuinqueno.Enabled = False
    chkInsalubridade.Enabled = False
    chkPericulosidade.Enabled = False
    chkProdutividade.Enabled = False
    chkAnuenio.Enabled = False
    chkTrienio.Enabled = False
    chkGratificacao.Enabled = False
    chkAssiduidade.Enabled = False
    chkInsentivo.Enabled = False
    chkPTS.Enabled = False
    chkPremioTarefa.Enabled = False
    
End If

Agora só falta as outras dúvidas. Tentarei explicar melhor. Se o usuário marcar um checkbox quero que apareça uma caixa de texto para que ele possa digitar o valor do tipo de remuneração.

Espero ter explicado melhor.

Att

 
Postado : 03/06/2014 1:23 pm
cthulhuu
(@cthulhuu)
Posts: 16
Active Member
Topic starter
 

Bom consegui fazer quase 100% do que eu gostaria, só que está dando um erro que não estou conseguindo resolver. Segue em anexo a planilha.
*obs: consegui uma vez resolver sussa, mas acredito que não tenha salvado e quando cheguei em casa deu o erro.

Aguardo a ajuda de vocês.

Att

 
Postado : 03/06/2014 9:08 pm
cthulhuu
(@cthulhuu)
Posts: 16
Active Member
Topic starter
 

Um adendo: O erro ocorre quando o Botão de Opção "50%" é acionado.

 
Postado : 03/06/2014 9:38 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Teste

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 05/06/2014 6:25 am
cthulhuu
(@cthulhuu)
Posts: 16
Active Member
Topic starter
 

Muito bom, Reinaldo! Excelente trabalho.

Vi que fez umas alterações sobre gravar os valores com formatos definidos.

O que eu tinha colocado:

    Dim sal As Currency
    Dim quinqueno As Currency
    Dim periculosidade As Currency
    Dim produtividade As Currency
    Dim anuenio As Currency
    Dim trienio As Currency
    Dim gratificacao As Currency
    Dim assiduidade As Currency
    Dim insentivo As Currency
    Dim pts As Currency
    Dim premiotarefa As Currency
    Dim data As Date
    Dim codi As Double

O que você colocou depois:

    ActiveCell.Offset(0, 8) = CCur(Format(Me.txtQuinqueno.Value, """R$"" #,##0.00"))
    ActiveCell.Offset(0, 9) = CCur(Format(Me.txtPericulosidade.Value, """R$"" #,##0.00"))
    ActiveCell.Offset(0, 10) = CCur(Format(Me.txtProdutividade.Value, """R$"" #,##0.00"))
    ActiveCell.Offset(0, 11) = CCur(Format(Me.txtAnuenio.Value, """R$"" #,##0.00"))
    ActiveCell.Offset(0, 12) = CCur(Format(Me.txtTrienio.Value, """R$"" #,##0.00"))
    ActiveCell.Offset(0, 13) = CCur(Format(Me.txtGratificacao.Value, """R$"" #,##0.00"))
    ActiveCell.Offset(0, 14) = CCur(Format(Me.txtAssiduidade.Value, """R$"" #,##0.00"))
    ActiveCell.Offset(0, 15) = CCur(Format(Me.txtInsentivoMensal.Value, """R$"" #,##0.00"))
    ActiveCell.Offset(0, 16) = CCur(Format(Me.txtPTS.Value, """R$"" #,##0.00"))
    ActiveCell.Offset(0, 17) = CCur(Format(Me.txtPremioTarefa.Value, """R$"" #,##0.00"))

Não é bom fazer da maneira que eu fiz ou algo assim?
Espero que não se importe de eu estar perguntando, sou bastante curioso. rs

Enfim, muito obrigado pela a sua atenção Reinaldo.

Att

Lucas.

 
Postado : 05/06/2014 12:01 pm
cthulhuu
(@cthulhuu)
Posts: 16
Active Member
Topic starter
 

Reinaldo, está dando erros ainda, só que agora é no que tu inseriu.
Se você não digita nada nas caixas de textos dos checkbox ele dá erro. E se você seleciona "Não" na caixa de combinação ele também dá erro no mesmo local.

Att

Lucas.

 
Postado : 05/06/2014 12:16 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Nos testes que fiz, não apresentou erro algum, seria interessante descrever os passos que fez e gerou erro.
Quanto ao método que utilizou, é o que eu prefiro, não que o seu esteja errado.

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 05/06/2014 12:40 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Creio que "vi" onde gera erro, se não houver valor nos campos a conversão (Ccur) gera erro.
altere conforme abaixo

    If Me.txtQuinqueno.Value <> "" Then ActiveCell.Offset(0, 8) = CCur(Format(Me.txtQuinqueno.Value, """R$"" #,##0.00"))
    If Me.txtPericulosidade.Value <> "" Then ActiveCell.Offset(0, 9) = CCur(Format(Me.txtPericulosidade.Value, """R$"" #,##0.00"))
    If Me.txtProdutividade.Value <> "" Then ActiveCell.Offset(0, 10) = CCur(Format(Me.txtProdutividade.Value, """R$"" #,##0.00"))
    If Me.txtAnuenio.Value <> "" Then ActiveCell.Offset(0, 11) = CCur(Format(Me.txtAnuenio.Value, """R$"" #,##0.00"))
    If Me.txtTrienio.Value <> "" Then ActiveCell.Offset(0, 12) = CCur(Format(Me.txtTrienio.Value, """R$"" #,##0.00"))
    If Me.txtGratificacao.Value <> "" Then ActiveCell.Offset(0, 13) = CCur(Format(Me.txtGratificacao.Value, """R$"" #,##0.00"))
    If Me.txtAssiduidade.Value <> "" Then ActiveCell.Offset(0, 14) = CCur(Format(Me.txtAssiduidade.Value, """R$"" #,##0.00"))
    If Me.txtInsentivoMensal.Value <> "" Then ActiveCell.Offset(0, 15) = CCur(Format(Me.txtInsentivoMensal.Value, """R$"" #,##0.00"))
    If Me.txtPTS.Value <> "" Then ActiveCell.Offset(0, 16) = CCur(Format(Me.txtPTS.Value, """R$"" #,##0.00"))
    If Me.txtPremioTarefa.Value <> "" Then ActiveCell.Offset(0, 17) = CCur(Format(Me.txtPremioTarefa.Value, """R$"" #,##0.00"))

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 05/06/2014 12:48 pm
cthulhuu
(@cthulhuu)
Posts: 16
Active Member
Topic starter
 

Com essa alteração deu certo, Reinaldo, obrigado.
Se houver mais algum erro venho comunicar.
O cadastro que estou fazendo é para uma planilha de controle de ponto, acha que esse formulário supri a necessidade desse tipo de planilha ou eu tenho que colocar uma pesquisa?

Att

Lucas.

 
Postado : 05/06/2014 1:05 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Desculpe-me, mas isso não sei dizer. A necessidade é definida pelo usuário creio eu.
Como não trabalho/utilizo (sou apenas curioso em programação VBA e excel) não sei dizer o que necessita ou não.

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 05/06/2014 1:10 pm
cthulhuu
(@cthulhuu)
Posts: 16
Active Member
Topic starter
 

Beleza, Reinaldo, dá nada não.
Quando eu finaliza ela eu posto aqui no fórum para a galera.

Att

Lucas.

 
Postado : 05/06/2014 1:39 pm