Como establecer el formato de las cajas de texto y evitar errores en Visual Basic

Introducción

A lo mejor (estimado lector(a)) ya conoce a Microsoft Excel, el programa para las hojas de calculo. En ellas se pueden se pueden configurar las celdas con un auto formato numérico que se ejecuta al salir de la celda; es decir si se configura un celda con el formato de puntuación decimal al escribir 12350000 y salir de la celda este valor se transforma a 12.350.000,00. Este tipo de formato también se puede utilizar para las cajas de texto de Visual Basic.

Instrucción Format

Esta instrucción se utiliza para darle formato al contenido de una caja de texto, con esta instrucción se pueden establecer todo tipo de formatos numéricos y de texto, aquí voy a enseñar como usarlo para obtener el formato ###.###.###,00.

Suponiendo que ya tienes creado un proyecto, dale doble click a la caja de texto a formatear, y escoge el evento LostFocus del combo de eventos.

Escribe allí:

Text1 = Format(CCur(Text1.Text), "###,###,###,##0.00")

CCur: (Currency) es un tipo de datos con un intervalo de -922.337.203.685.477,5808 a 922.337.203.685.477,5807. Utiliza este tipo de datos para cálculos de tipo monetario y cálculos de punto fijo donde es especialmente importante la exactitud. (MSDN library).

Pero así no mas es posible que ocurra un error:

- Si sales del control (TextBox) sin escribir nada obtendrás un error.

Para evitar cualquier complicación, mientras estas en la etapa de diseño escribe en la propiedad Text del TextBox 0,00 para que cuando ejecutes el programa ya tenga un valor con el formato establecido.

Luego escribe esto antes de la instrucción Format:

If Text1.Text = "" Then
Text1.Text = "0,00"
End If
Text1 = Format(CCur(Text1.Text), "###,###,###,##0.00")

Esto es porque si sales del TextBox y esta vacio (es decir Null) se producirá un error debido a que Null no es numérico y no se adapta al formato establecido, ahora si le pones que, si al salir esta vacio, escriba 0,00 no habrá error por que esto si se adapta al formato.

Nota Importante: Si utilizas las cajas formateadas para cálculos aritméticos NO pongas por ejemplo:

TxtTotal = Val(Text1) + Val(Text2)

Sino...

TxtTotal = CDbl(Text1) + CDbl(Text2)

Porque "Val" no soporta un formato Real o decimal para los cálculos aritméticos. (Solo para mostrarlos...)

 

Agradezco a:
A: R. Portacio (Analista) y a Marcela Ardila "Mi prima" (por prestarme el computador)


Andrés Escobar
Analista y Programador de sistemas
(Sincelejo - Sucre - Colombia)
[email protected]