none
(SendKeys "{End}", False,) nao funciona no win 7 RRS feed

  • Pergunta

  • boa noite

    o evento abaixo funciona de uma forma muita estranha no win 7, ao clicar em um numero no teclado numerico, desativa o num lock, ao clicar em um numero no teclado maior, fica desativando e ativando o numlock e capslock.

    descobri que é o sendkeys.

    Pergunto:

    Tem algum codigo que substitue o sendkeys?

    Private Sub TxtData_Enter()
        TxtData.BackColor = &HFFFF&
    End Sub
    Private Sub TxtData_Exit(ByVal Cancel As MSForms.ReturnBoolean)
        TxtData.BackColor = vbWhite
        TxtData = Format(TxtData, "dd/mm/yyyy")
        If IsDate(Me.TxtData.Text) = False Then
         MsgBox " A Data " & TxtData & " é Inválida", vbCritical, "AVISO"
         TxtData = ""
         TxtData.SetFocus
         Else
        End If
        If Format(Me.TxtData.Text, "yyyy") > Format(Date, "yyyy") Then
         MsgBox "O Ano da Data " & TxtData & " é Maior que " & Date, vbCritical, "AVISO"
         TxtData = ""
         TxtData.SetFocus
         Else
        End If
    End Sub
    Private Sub TxtData_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    TxtData.MaxLength = 10
     Select Case KeyAscii
       Case 8, 48 To 57 ' BackSpace e numericos
        If Len(TxtData) = 2 Then TxtData.Text = TxtData.Text & "/"
        If Len(TxtData) = 5 Then TxtData.Text = TxtData.Text & "/"
        SendKeys "{End}", False    
        Case Else ' o resto é travado
        KeyAscii = 0
       End Select
    End Sub
    Obrigado.
    segunda-feira, 16 de dezembro de 2013 22:51

Respostas

Todas as Respostas

  • Tente substituir por:

    Me.TxData.SelStart = VBA.Len(Me.TxData.Value)


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

    • Sugerido como Resposta FilipeMagno quinta-feira, 19 de dezembro de 2013 00:12
    terça-feira, 17 de dezembro de 2013 22:20
    Moderador
  • boa noite

    Ate o momento funciona 100%.

    obrigado pela atenção.

    • Marcado como Resposta JLNunes quarta-feira, 18 de dezembro de 2013 23:29
    quarta-feira, 18 de dezembro de 2013 23:29