[VBA] formato de fecha en textbox
antic80
Mensajes publicados
4877
Estado
Colaborador
-
nabilone -
nabilone -
hola
me gustaría saber cómo forzar en VBA bajo Excel a que un usuario ingrese una fecha en el formato ddmmyy, porque si, por ejemplo, escribo 222 en el cuadro de texto, me hace la conversión
quiero que el usuario esté obligado a ingresar, por ejemplo, 151205, que se convertirá en 15/12/2005
actualmente tengo esto para el formateo de la fecha en 15/12/2005
TXT_du = Left(TXT_du, 2) & "/" & Mid(TXT_du, 3, 2) & "/" & Right(TXT_du, 2)
gracias a ustedes
me gustaría saber cómo forzar en VBA bajo Excel a que un usuario ingrese una fecha en el formato ddmmyy, porque si, por ejemplo, escribo 222 en el cuadro de texto, me hace la conversión
quiero que el usuario esté obligado a ingresar, por ejemplo, 151205, que se convertirá en 15/12/2005
actualmente tengo esto para el formateo de la fecha en 15/12/2005
TXT_du = Left(TXT_du, 2) & "/" & Mid(TXT_du, 3, 2) & "/" & Right(TXT_du, 2)
gracias a ustedes
13 respuestas
Hola.
5 años después y para aquellos que pasen por aquí:
1 - En la Sub TextBoxToto_KeyPress de tu TextBox, solo aceptamos números
Algo así como:
If KeyAscii < 48 Or KeyAscii > 57 then KeayAscii = 0
2 - En la Sub TextBoxToto_BeforeUpdate controlamos que el valor introducido sea una fecha. Si no es el caso, rechazamos la modificación (se restaura el antiguo valor) y si es así, ponemos el valor introducido en el formato de fecha esperado.
Algo así como:
If IsDate(TextBoxToto.Text) then
TextBoxToto.Text = Format (TextBoxTotot.Text,"dd/mm/yyyy")
Else
Cancel = True
End If
Con este código el usuario podrá introducir, por ejemplo, 2/2 y eso dará el 02/02 del año actual en el formato 02/02/2011.
De este modo, la extracción del mes no puede dar error una vez que la modificación ha sido aceptada. Además, puedes añadir cualquier otro control sobre tu fecha (< fecha de hoy, etc...) en la primera rama del If ya que sabes que estás trabajando con una fecha válida.
Espero que esto sirva a alguien de paso (y que desde 2006 hayas resuelto tu problema :o).
5 años después y para aquellos que pasen por aquí:
1 - En la Sub TextBoxToto_KeyPress de tu TextBox, solo aceptamos números
Algo así como:
If KeyAscii < 48 Or KeyAscii > 57 then KeayAscii = 0
2 - En la Sub TextBoxToto_BeforeUpdate controlamos que el valor introducido sea una fecha. Si no es el caso, rechazamos la modificación (se restaura el antiguo valor) y si es así, ponemos el valor introducido en el formato de fecha esperado.
Algo así como:
If IsDate(TextBoxToto.Text) then
TextBoxToto.Text = Format (TextBoxTotot.Text,"dd/mm/yyyy")
Else
Cancel = True
End If
Con este código el usuario podrá introducir, por ejemplo, 2/2 y eso dará el 02/02 del año actual en el formato 02/02/2011.
De este modo, la extracción del mes no puede dar error una vez que la modificación ha sido aceptada. Además, puedes añadir cualquier otro control sobre tu fecha (< fecha de hoy, etc...) en la primera rama del If ya que sabes que estás trabajando con una fecha válida.
Espero que esto sirva a alguien de paso (y que desde 2006 hayas resuelto tu problema :o).
Syssy
Es simple y eficaz. Gracias.
nabilone
Merci.