La Web del Programador: Comunidad de Programadores
 
    Pregunta:  8120 - MASCARAS DE EDICION
Autor:  Mariano Birba
Buenas Tardes.
Quisiera que me recomienden mascaras de edicion para datos como importes, porcentajes, etc.
Considero que el Mask Edition de Visual es una porqueria.
Muchas Gracias

  Respuesta:  Xavi
Hola Mariano, aqui te adjunto dos funciones que realice para ello...

'**************************************************
'* InsertarPuntosMiles 12/07/99 *
'* Inserta los puntos de miles en un valor *
'* numerico. Detecta la coma de separaciĆ³n de *
'* decimales *
'* *
'* Deve recibir el numero en formato string *
'* *
'* Devuelve el numero en formato string *
'**************************************************
Function InsertarPuntosMiles(Cadena As String, Pesetas1_Euros2 As Integer) As String
Dim i As Long
If Len(Cadena) = 0 Then
InsertarPuntosMiles = "0"
Exit Function
End If
Cadena = EliminarPuntosMiles(Cadena)
'colocamos las comas de los miles y punto de decimales
If Pesetas1_Euros2 = 2 Then 'Mostrar Euros
Cadena = Format(CCur(Cadena), "#,##0.000")
Else 'Mostrar Pesetas
Cadena = Format(CCur(Cadena), "#,##0")
End If
InsertarPuntosMiles = Cadena
End Function

'**************************************************
'* EliminarPuntosMiles 12/07/99 *
'* Elimina los puntos de miles en un valor *
'* numerico. Detecta la coma de separaciĆ³n de *
'* decimales. *
'* *
'* Deve recibir el numero en formato string *
'* *
'* Devuelve el numero en formato string *
'**************************************************
Function EliminarPuntosMiles(Cadena As String) As String
Dim Posicion As Long
Do
Posicion = InStr(Cadena, ".")
If Posicion <> 0 Then Cadena = Left(Cadena, Posicion - 1) & Right(Cadena, Len(Cadena) - Posicion)
Loop While Not Posicion = 0
EliminarPuntosMiles = Cadena
End Function

En el evento GotFocus, tienes que colocar:
text1.Text = EliminarPuntosMiles(txtPesetas.Text)

En el evento LostFocus, tienes que colocar:
text1.Text = InsertarPuntosMiles(txtPesetas.Text, 1)