[VBA] formato de fecha en textbox

antic80 Mensajes publicados 4877 Estado Colaborador -  
 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

13 respuestas

horseloverfat
 
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).
17
Syssy
 
Es simple y eficaz. Gracias.
0
nabilone
 
Merci.
0