almacenar fechas

24/11/2005 - 02:30 por Edison Torres | Informe spam
Como como puedo almacenar en un texbox la fecha cuando el usuario la ingresa
por codigo vba el formato seria mm/dd/yyyy

gracias

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
24/11/2005 - 06:44 | Informe spam
hola, Edison !

Como como puedo almacenar en un texbox la fecha cuando el usuario la ingresa por codigo vba el formato seria mm/dd/yyyy



'trabajar' con fechas en vba, requiere de algunos puntos 'a considerar' [como la configuracion regional, entre otros]
y [probablemente] algunas 'medidas' para prevencion/correccion de [posibles] errores en la forma de entrada que haga el usuario ;)
[ademas] depende de si necesitas 'tomar y devolver' [en el mismo textbox] y que 'haras despues' [con un dato u otro]
[es decir] podrias 'almacenar' un dato fecha/serial en una variable y/o 'manejarla' como 'formato' desde el combo -?-

comentas los detalles adiiconales ?
saludos,
hector.
Respuesta Responder a este mensaje
#2 Edison Torres
24/11/2005 - 14:19 | Informe spam
Hola Hector:
Solo lo necesito cuando el usuario sepa que debe de ingresar la fecha (pe.
01/01/2001) y el formato que debe de seguir es (mm/dd/yyyy), es decir, como
ves que solo me acepte ingresar fecha ningun otro dato.

Gracias

"Héctor Miguel" escribió:

hola, Edison !

> Como como puedo almacenar en un texbox la fecha cuando el usuario la ingresa por codigo vba el formato seria mm/dd/yyyy

'trabajar' con fechas en vba, requiere de algunos puntos 'a considerar' [como la configuracion regional, entre otros]
y [probablemente] algunas 'medidas' para prevencion/correccion de [posibles] errores en la forma de entrada que haga el usuario ;)
[ademas] depende de si necesitas 'tomar y devolver' [en el mismo textbox] y que 'haras despues' [con un dato u otro]
[es decir] podrias 'almacenar' un dato fecha/serial en una variable y/o 'manejarla' como 'formato' desde el combo -?-

comentas los detalles adiiconales ?
saludos,
hector.



Respuesta Responder a este mensaje
#3 Héctor Miguel
24/11/2005 - 20:10 | Informe spam
hola, Edison !

Solo lo necesito cuando el usuario sepa que debe de ingresar la fecha (pe. 01/01/2001)
y el formato que debe de seguir es (mm/dd/yyyy)
es decir... que solo me acepte ingresar fecha ningun otro dato



'partiendo' de que un control textbox 'acepta' todo 'tipo' de entrada por parte del usuario...
-> un 'dato-fecha' puede ser 'introducido' en diferentes 'formatos' y Excel puede [intuitivamente] 'interpretarlo bien'
aunque segun los formatos [entrada/userform y fechas/panel de control] pudiera 'tratarse' de fechas diferentes

1.- una [posible] forma seria 'dar formato' al textbox 'en la salida' [evento _Exit] o en el cambio [evento _Change]
2.- otra [posible] solucion seria usar 3 textboxes 'separados' por controles 'label' =>/<= [para simular 'la vista' ../../..]
[podrias usar otros controles 'label' debajo de los textboxes para indicar 'el orden de entrada' =>dd/mm/aa. mm/dd/aa ...]
3.- otra [posible] forma seria usando un control 'DTPicker/Calendar' [en el formulario] para seleccionar una fecha [...]

para la opcion uno, suponiendo un solo textbox para indicar la fecha [Y solo para 'darle vista' al textbox]:
1.- primero 'asegurate' de indicar al usuario la secuencia 'correcta' de entrada de fechas [segun el orden del sistema]
antes de mostrar el formulario 'indica' la secuencia 'apropiada' [suponiendo que existe un control 'label' para ello]
en el codigo de un procedimiento 'normal' y antes de que se muestre el formulario [p.e.]
en el modulo de codigo del formulario ==Private Sub UserForm_Initialize()
Select Case Application.International(xlDateOrder)
Case 0: Label_X = "mm/dd/aa"
Case 1: Label_X = "dd/mm/aa"
Case 2: Label_X = "aa/mm/dd"
End Select
End Sub
en el modulo del formulario en el evento '_Exit' [al salir] del textbox le 'aplicas' el formato de fecha que prefieras [p.e.]
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TextBox1 = Format(TextBox1, "mm/dd/yyyy")
End Sub

para la opcion dos, suponiendo que la 'secuencia' de entrada [en los textboxes] fuera: mm/dd/aa
textbox1 = los digitos del mes + textbox2 = los digitos del dia + textbox3 = los digitos del a#o
podrias 'asignar' a una variable 'su resultado' con la funcion DateSerial(a#o, mes, dia) [p.e.]
Dim Fecha As Date
Fecha = DateSerial(TextBox3, TextBox1, TextBox2)
=> es importante que 'observes' el orden <
para la opcion tres ['tendras que']:
a) agregar un control dtpicker o un control calendar en el cuadro de controles de vba,
b) insertar el control en el formulario y 'manejar' sus eventos y propiedades

como veras, 'trabajar' con fechas desde vba... tiene algunas 'visicitudes' y cosideraciones que se deben tener en cuenta :))

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
#4 Edison Torres
24/11/2005 - 22:30 | Informe spam
hector, la verdad no entiendo no me funciona incluso me permite ingresar
espacio en blanco y letras lo estoy haciendo por la opcion 1 que me distes

"Héctor Miguel" escribió:

hola, Edison !

> Solo lo necesito cuando el usuario sepa que debe de ingresar la fecha (pe. 01/01/2001)
> y el formato que debe de seguir es (mm/dd/yyyy)
> es decir... que solo me acepte ingresar fecha ningun otro dato

'partiendo' de que un control textbox 'acepta' todo 'tipo' de entrada por parte del usuario...
-> un 'dato-fecha' puede ser 'introducido' en diferentes 'formatos' y Excel puede [intuitivamente] 'interpretarlo bien'
aunque segun los formatos [entrada/userform y fechas/panel de control] pudiera 'tratarse' de fechas diferentes

1.- una [posible] forma seria 'dar formato' al textbox 'en la salida' [evento _Exit] o en el cambio [evento _Change]
2.- otra [posible] solucion seria usar 3 textboxes 'separados' por controles 'label' =>/<= [para simular 'la vista' ../../..]
[podrias usar otros controles 'label' debajo de los textboxes para indicar 'el orden de entrada' =>dd/mm/aa. mm/dd/aa ...]
3.- otra [posible] forma seria usando un control 'DTPicker/Calendar' [en el formulario] para seleccionar una fecha [...]

para la opcion uno, suponiendo un solo textbox para indicar la fecha [Y solo para 'darle vista' al textbox]:
1.- primero 'asegurate' de indicar al usuario la secuencia 'correcta' de entrada de fechas [segun el orden del sistema]
antes de mostrar el formulario 'indica' la secuencia 'apropiada' [suponiendo que existe un control 'label' para ello]
en el codigo de un procedimiento 'normal' y antes de que se muestre el formulario [p.e.]
en el modulo de codigo del formulario ==> Private Sub UserForm_Initialize()
Select Case Application.International(xlDateOrder)
Case 0: Label_X = "mm/dd/aa"
Case 1: Label_X = "dd/mm/aa"
Case 2: Label_X = "aa/mm/dd"
End Select
End Sub
en el modulo del formulario en el evento '_Exit' [al salir] del textbox le 'aplicas' el formato de fecha que prefieras [p.e.]
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TextBox1 = Format(TextBox1, "mm/dd/yyyy")
End Sub

para la opcion dos, suponiendo que la 'secuencia' de entrada [en los textboxes] fuera: mm/dd/aa
textbox1 = los digitos del mes + textbox2 = los digitos del dia + textbox3 = los digitos del a#o
podrias 'asignar' a una variable 'su resultado' con la funcion DateSerial(a#o, mes, dia) [p.e.]
Dim Fecha As Date
Fecha = DateSerial(TextBox3, TextBox1, TextBox2)
=> es importante que 'observes' el orden <>
para la opcion tres ['tendras que']:
a) agregar un control dtpicker o un control calendar en el cuadro de controles de vba,
b) insertar el control en el formulario y 'manejar' sus eventos y propiedades

como veras, 'trabajar' con fechas desde vba... tiene algunas 'visicitudes' y cosideraciones que se deben tener en cuenta :))

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.



Respuesta Responder a este mensaje
#5 Héctor Miguel
24/11/2005 - 22:43 | Informe spam
hola, Edison !

... la verdad no entiendo no me funciona incluso me permite ingresar espacio en blanco y letras lo estoy haciendo por la opcion 1 ...



1) si recuerdas el primer comentario en la respuesta 1...
'trabajar' con fechas en vba, requiere de algunos puntos 'a considerar' [como la configuracion regional, entre otros]



2) si recuerdas el primer comentario en la respuesta 2...
'partiendo' de que un control textbox 'acepta' todo 'tipo' de entrada por parte del usuario...





3) [probablemente] una mejor alternativa para evitar [en algo] 'ambiguedades' y sobre todo el uso de textboxes [cualquier texto]...
analiza la posibilidad de usar controles DTPicker o Calendar ;)

comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida