Programación General > VBA

 Txt En Euros!

<< < (2/2)

Shiquilla:
Hola sndr82, podrías limitar la introducción de ciertos caracteres desde el evento KeyPress del txt y después formatear ese número en el LostFocus.

Ejemplo:


--- Código: Text ---'Función que devuelve si ya ha metido una coma en el textPrivate Function mfbYaHayUnaComa() As Boolean    mfbYaHayUnaComa = IIf(InStr(1, Text1.Text, &#34;,&#34;) = 0, False, True)End Function 'Evento que controla todo lo que se mete en el textoPrivate Sub Text1_KeyPress(KeyAscii As Integer)    If Chr(KeyAscii) = &#34;.&#34; Then KeyAscii = Asc(&#34;,&#34;)        If KeyAscii &#60;&#62; vbKeyBack Then        If Len(Text1.Text) &#62; 0 Then            If KeyAscii &#60;&#62; Asc(&#34;,&#34;) Then                If Not IsNumeric(Chr(KeyAscii)) Then                    KeyAscii = 0                    Beep                End If            ElseIf mfbYaHayUnaComa Then                KeyAscii = 0                Beep            End If        Else            If Not IsNumeric(Chr(KeyAscii)) Then                KeyAscii = 0                Beep            End If        End If    End IfEnd Sub 'Cuando pierdo el foco formateo el número introducidoPrivate Sub Text1_LostFocus()    Text1.Text = Format(Text1.Text, &#34;#,###,###,###,###,##0.00&#34;)End Sub 
Y ya si quieres que al pulsar el INTRO se pierda el foco del control, o bien lo controlas en el objeto txt o bien en las propiedades del formulario le pones la propiedad KeyPreview a TRUE y pones esto:


--- Código: Text ---Private Sub Form_KeyPress(KeyAscii As Integer)    If KeyAscii = vbKeyReturn Then        KeyAscii = 0        SendKeys &#34;{tab}&#34;    End IfEnd Sub 
Espero que te sirva.

PD: He posteado porque veo que el control Masked Edit no te gusta  :P

Saludos,

Navegación

[0] Índice de Mensajes

[*] Página Anterior

Ir a la versión completa