Programación General > VBA
Txt En Euros!
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, ",") = 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) = "." Then KeyAscii = Asc(",") If KeyAscii <> vbKeyBack Then If Len(Text1.Text) > 0 Then If KeyAscii <> Asc(",") 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, "#,###,###,###,###,##0.00")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 "{tab}" End IfEnd Sub
Espero que te sirva.
PD: He posteado porque veo que el control Masked Edit no te gusta :P
Saludos,
Navegación
[*] Página Anterior
Ir a la versión completa