Personalizar la entrada de datos en un TextBox (Máscara de Entrada)

26/06/2007 - 23:45 por Insumos | Informe spam
Hola Gente del Foro:

Espero todos esten bien! Mi consulta de hoy es: Hay alguna manera de
personalizar la forma en que los usuarios ingresen datos en un TextBox?
Lo que busco exactamente es lo siguiente: en un Userform yo tengo un TextBox
en el cuál hay que ingresar un dato manualmente que es una fecha. De la
manera como está ahora los usuarios, si por ejemplo deben ingresar 22/06/07,
deben ingresar cada uno de los caracteres (incluyendo las barras "/"). La
cuestión es que esto puede dar lugar a errores, como que los usuarios tipeen
2206/07 (salteando una barra, por ejemplo) o 22/06 (olvidando ingresar el
año), o 22/06/077 (ingresando un 7 de más), etc, etc. Lo que yo necesitaria
es algo así como una "máscara de entrada" (del tipo que hay en access) de
modo que los usuarios tengan en el TextBox predefinido el formato _ _ / _ _
/ _ _ del cual no puedan apartarse. De esta manera obligaría a los usuarios
a ingresar los datos de una manera standarizada, en la cual no hayan ni
olvidos ni agregados en el dato, y evito todos los trastornos que puedan
generar en las operaciones los errores de ingreso.
Espero haberme explicado correctamente.
Saludos y desde ya muchas gracias!!

Mariano

CONTADURIA

Preguntas similare

Leer las respuestas

#6 Ivan
27/06/2007 - 17:54 | Informe spam
hola Hector,

muchas gracias de nuevo, tanto por tu ayuda como por este comentario
=>

que la *enmascarada* que le has dado a los textboxes me parece *genial*





aunque ten por seguro que si (realmente) tiene algo de genial la mayor
parte de la culpa es tuya (y no es falsa modestia). Aun asi no deja de
'ayudar' viniendo de tu parte.

b) me atrae la atencion el ejemplo que expones de la ventana de inmediato: ?cdate("29/02/01") -> 01/02/2029





tienes razon. Estoy harto de verlo y ni siquiera se me habia ocurrido
fijarme

c) cuando CDate encuentra *conflictos*... que puede resolver... los resuelve *como Dios le de a entender* :))





eso me parecia, con lo que, si no se quieren correr riesgos lo mas
seguro debe ser la opcion del DTPicker que mencionas

2) fechas en excel y vba ???... [como ya lo expones, *da para rato*]...





tan es asi que supongo que, aun revisando el enlace, por estos lares,
'volveremos' a molestarte mas de una vez con el tema

[nota: aunque ya le debes conocer... es probable que le sirva tambien a OP] :))





estoy convencido de que 'OP' tambien le sacara partido, tanto al
enlace como al hilo. Ya nos comentara


bueno, lo dicho, muchas gracias de nuevo y hasta pronto
Ivan
Respuesta Responder a este mensaje
#7 Feliciano
27/06/2007 - 20:38 | Informe spam
Hola a Mariano, Hector, Juan y a todos los demas:
Me parece que me habeis aludido con eso de OP [¿otros posteadores?] :)))
He seguido el hilo y, como experiencia personal (continuamente estoy
manejando fechas en distintos programas), creo que lo mejor es optar por
"op1: inserta a tu formulario . un control Calendar", que indica Hector.
Y con todo habra mas de uno que al seleccionar la fecha no se fije (por
ejemplo en el año) y ponga 27/06/2008 en vez de 27/06/2007 (o viceversa).


Saludos,

Feliciano.
"Ivan" escribió en el mensaje
news:
hola Hector,

muchas gracias de nuevo, tanto por tu ayuda como por este comentario
=>

que la *enmascarada* que le has dado a los textboxes me parece *genial*





aunque ten por seguro que si (realmente) tiene algo de genial la mayor
parte de la culpa es tuya (y no es falsa modestia). Aun asi no deja de
'ayudar' viniendo de tu parte.

b) me atrae la atencion el ejemplo que expones de la ventana de
inmediato: ?cdate("29/02/01") -> 01/02/2029





tienes razon. Estoy harto de verlo y ni siquiera se me habia ocurrido
fijarme

c) cuando CDate encuentra *conflictos*... que puede resolver... los
resuelve *como Dios le de a entender* :))





eso me parecia, con lo que, si no se quieren correr riesgos lo mas
seguro debe ser la opcion del DTPicker que mencionas

2) fechas en excel y vba ???... [como ya lo expones, *da para rato*]...





tan es asi que supongo que, aun revisando el enlace, por estos lares,
'volveremos' a molestarte mas de una vez con el tema

[nota: aunque ya le debes conocer... es probable que le sirva
tambien a OP] :))





estoy convencido de que 'OP' tambien le sacara partido, tanto al
enlace como al hilo. Ya nos comentara


bueno, lo dicho, muchas gracias de nuevo y hasta pronto
Ivan

Respuesta Responder a este mensaje
#8 Ivan
27/06/2007 - 22:21 | Informe spam
On 27 jun, 20:38, "Feliciano" wrote:
Hola a Mariano, Hector, Juan y a todos los demas:
Me parece que me habeis aludido con eso de OP [¿otros posteadores?] :)))
He seguido el hilo y, como experiencia personal (continuamente estoy
manejando fechas en distintos programas), creo que lo mejor es optar por
"op1: inserta a tu formulario . un control Calendar", que indica Hector.
Y con todo habra mas de uno que al seleccionar la fecha no se fije (por
ejemplo en el año) y ponga 27/06/2008 en vez de 27/06/2007 (o viceversa).

Saludos,

Feliciano.



hola Feliciano,

como parece que no lo recuerdas, te pego un trozo de la conversacion
en la que yo me entere de lo que era OP (para que eches un ojo)


-
Hola Hector

: > [ahora que lo mencionas]... debo asumir que OP [probablemente]
esta
utilizando macros o algun otro 'mecanismo' -?-
[definitivamente] OP necesita ofrecer detalles mas...


'significativos' > :D

Disculpa mi ignorancia. ¿Que es OP?. ¿Operacion de Pegado?.

Saludos,
Feliciano.
­--

hola, Feliciano !

... Que es OP?. Operacion de Pegado?.



es un termino adoptado en las comunidades entre usuarios desde UseNet
significa: Original Post(er) [la consulta original o quien hizo la
consulta original/inicial] :))

saludos,
hector.


Hola Hector :
Muchas gracias por la información.

Saludos,
Feliciano.

-



en cualquier caso estoy de acuerdo en que posiblemente lo mejor sea
usar controles especificos para las fechas

un saludo
Ivan
Respuesta Responder a este mensaje
#9 Feliciano
28/06/2007 - 21:27 | Informe spam
Hola Ivan:
Gracias por el recordatorio.
Espero que la proxima vez que vea OP recuerde lo que significa.

Saludos,

Feliciano.
"Ivan" escribió en el mensaje
news:
On 27 jun, 20:38, "Feliciano" wrote:
Hola a Mariano, Hector, Juan y a todos los demas:
Me parece que me habeis aludido con eso de OP [¿otros posteadores?] :)))
He seguido el hilo y, como experiencia personal (continuamente estoy
manejando fechas en distintos programas), creo que lo mejor es optar por
"op1: inserta a tu formulario . un control Calendar", que indica
Hector.
Y con todo habra mas de uno que al seleccionar la fecha no se fije (por
ejemplo en el año) y ponga 27/06/2008 en vez de 27/06/2007 (o viceversa).

Saludos,

Feliciano.



hola Feliciano,

como parece que no lo recuerdas, te pego un trozo de la conversacion
en la que yo me entere de lo que era OP (para que eches un ojo)


-
Hola Hector

: > [ahora que lo mencionas]... debo asumir que OP [probablemente]
esta
utilizando macros o algun otro 'mecanismo' -?-
[definitivamente] OP necesita ofrecer detalles mas...


'significativos' > :D

Disculpa mi ignorancia. ¿Que es OP?. ¿Operacion de Pegado?.

Saludos,
Feliciano.
­--

hola, Feliciano !

... Que es OP?. Operacion de Pegado?.



es un termino adoptado en las comunidades entre usuarios desde UseNet
significa: Original Post(er) [la consulta original o quien hizo la
consulta original/inicial] :))

saludos,
hector.


Hola Hector :
Muchas gracias por la información.

Saludos,
Feliciano.

-



en cualquier caso estoy de acuerdo en que posiblemente lo mejor sea
usar controles especificos para las fechas

un saludo
Ivan
Respuesta Responder a este mensaje
#10 Insumos
29/06/2007 - 19:42 | Informe spam
Hola Hector, Ivan y Feliciano:

Muchas gracias por todas las respuestas! La verdad que me sorprendió ver
todo el "hilo"que se generó por mi pregunta! Pero justamente esto es lo
positivo del foro.
En fin, les cuento como me fue con sus propuestas.
De las 2 opciones que me menciona Hector Miguel, la primera (DTPicker o un
control Calendar) no tengo idea como es ni como incorporarlo. Tampoco parece
que tenga el archivo ese que menciona instalado en todas las maquinas, lo
cual puede ser un problema para los usuarios.
La segunda opción (usar 3 Textbox) la experimenté con éxito, ya que esta más
al alcanze de mis conocimientos.
Después probé varias veces el enmascarador de Ivan, pero lamentablemente
presione la tecla que presione siempre me tira el mismo error "El tipo de
argumento de ByRef no coincide". Intente ver si podía ver cual podía ser el
error en el código y descubri que había olvidado poner la línea "Dim Borrar
As Boolean". Ahora anda perfectamente (hasta donde lo he probado). Es
genial!!
También hoy aprendí el siginificado del termino OP!
Bueno, les estoy infinitamente agradecido por todo.
Muchas gracias y saludos!!

Mariano

"Héctor Miguel" escribió en el mensaje
news:#
hola. Mariano !

> ... alguna manera de personalizar la forma en que los usuarios ingresen


datos en un TextBox?
> ... en un Userform... un TextBox... ingresar un dato... fecha...
> ... algo asi como una "mascara de entrada" (del tipo que hay en access)


[...]

toma en cuenta que un control textbox [por su misma caracteristica]


'acepta' datos de todo tipo...
suponiendo que diferentes usuarios pudieran tener diferentes *costumbres*


en el orden de fechas...
y considerando que NO es 'el fuerte' de excel... andar 'enmascarando' las


entradas del usuario...

op1: inserta a tu formulario un control DTPicker o un control Calendar

op2: utilza TRES controles textbox para usarlos segun el orden de fechas


que vayas a controlas [dd/mm/aa <-> mm/dd/aa]

si cualquier duda... comentas ?
saludos,
hector.

p.d. el control DTPicker requiere que esta instalado y registrado...
-> el componente [+/- C:\Windows\System[32]\mscomct2.ocx]...
el control calendar requiere que este instalado y registrado...
-> el componente [C:\Archivos de programa\Microsoft Office


x.0\Officexx\MSCal.ocx]


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida