none
Como modificar o código? RRS feed

  • Pergunta

  • boa noite

    No codigo abaixo ao digitar 123456 retorna no textbox = 2014123456, onde:

    2014 = ano atual

    Porem, como incluir um codigo que possa digitar anos anteriores como:

    ex:2013123456

    Private Sub TxtCadastro_Exit(ByVal Cancel As MSForms.ReturnBoolean) TxtCadastro.BackColor = vbWhite TxtCadastro = lblCadastro End Sub

    Private Sub txtCadastro_Change() 'Limita a Qde de caracteres TxtCadastro.MaxLength = 6 Me.lblCadastro = Format(Plan3.Range("Y4"), "yyyy") & Format(Me.TxtCadastro, "000000") End Sub

    Private Sub txtCadastro_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) Select Case KeyCode Case 8, 48 To 57, 96 To 105 Case Else KeyCode = 0 End Select End Sub


    Obrigado.
    sábado, 11 de janeiro de 2014 02:51

Respostas

  • Bom dia JLNunes,

    pelo seu código, vc está limitando a quantidade de caracteres digitados em '6', ou seja, não há como digitar "2013123456" como vc disse.

    Supondo que não haja essa limitação, vc poderia fazer um teste da necessidade de adicionar o 2014, como algo do tipo:

    If Left(Me.TxtCadastro, 4) <> Year(Plan3.Range("Y4")) And Len(Me.TxtCadastro) > 6 Then

    ...

    ou ainda mais simples:

    If Len(Me.TxtCadastro) > 6 Then

    ...

    Isso resolve?

    Um abraço.


    Filipe Magno

    domingo, 12 de janeiro de 2014 13:35

Todas as Respostas

  • Bom, pelo visto, quem determina o ano é a célula Y4. Logo, você tem que alterar o valor dessa célula se quiser que o rótulo lblCadastro mostre um ano diferente.

    Felipe Costa Gualberto - http://www.ambienteoffice.com.br

    sábado, 11 de janeiro de 2014 16:30
    Moderador
  • Boa noite

    Hum..., este procedimento de mudar a celula seria muito complicado, teria que desproteger a planilha que tem muitas formulas, e ai o risco de danificar a planilha seria muito grande, uma vez que varias pessoas utiliza a planilha.

    achei que tivesse um procedimento que ao digitar 2013123456 ele ignorasse o procedimento "Me.lblCadastro = Format(Plan3.Range("Y4"), "yyyy") & Format(Me.TxtCadastro, "000000")".

    Obrigado

    sábado, 11 de janeiro de 2014 23:52
  • Bom dia JLNunes,

    pelo seu código, vc está limitando a quantidade de caracteres digitados em '6', ou seja, não há como digitar "2013123456" como vc disse.

    Supondo que não haja essa limitação, vc poderia fazer um teste da necessidade de adicionar o 2014, como algo do tipo:

    If Left(Me.TxtCadastro, 4) <> Year(Plan3.Range("Y4")) And Len(Me.TxtCadastro) > 6 Then

    ...

    ou ainda mais simples:

    If Len(Me.TxtCadastro) > 6 Then

    ...

    Isso resolve?

    Um abraço.


    Filipe Magno

    domingo, 12 de janeiro de 2014 13:35
  • boa noite

    ate o momento esta funcionando 100%.

    obrigado aos felipes.

    quarta-feira, 15 de janeiro de 2014 22:46