Qué le hace falta a este código para que la fecha se pueda modificar? (Textbox en Useform de Visual B)

Tengo un textbox en un Useform de Visual Basic que requiero le sugiera al usuario la fecha de hoy pero que pueda ser modificable la fecha en caso de ser necesario. ¿Qué le hace falta a este código para que se pueda modificar? El resultado actual es que aparece la fecha actual si se intenta digitar algo en el campo pero no permite modificarla. (Requiero además que la fecha aparezca sola - por default al abrir el formulario - sin requerir intentar digitar algo en el campo)

Private Sub TextBox_FechaRegistro_Change()
TextBox_FechaRegistro.Value = Date

Select Case Len(TextBox_FechaRegistro.Value)
Case 2
TextBox_FechaRegistro.Value = TextBox_FechaRegistro.Value & "/"
Case 5
TextBox_FechaRegistro.Value = TextBox_FechaRegistro.Value & "/201"

End Select
End Sub

2 Respuestas

Respuesta
1

Deberías entonces poner el código

TextBox_FechaRegistro.Value = Date

Pero en el evento de abrir el formulario

Prívate sub formulario_Initialize()

Gracias!  Pero justamente así lo tengo:

Private Sub TextBox_FechaRegistro_Change()
TextBox_FechaRegistro.Value = Date

Select Case Len(TextBox_FechaRegistro.Value)
Case 2
TextBox_FechaRegistro.Value = TextBox_FechaRegistro.Value & "/"
Case 5
TextBox_FechaRegistro.Value = TextBox_FechaRegistro.Value & "/201"

End Select
End Sub

Qué más podría intentar?

No no, si no me equivoco lo que tienes puesto es que te ponga la fecha cuando cambie el texto, no al iniciarse el formulario, como debería ser

Respuesta
1

Primero tienes dos opciones para que te aparezca en automático al fecha al abrir el formulario, Activate o I nitialize, en cuanto a modificar la fecha por el usuario no puedes hacerlo a menos que quites las líneas del programa del evento Private Sub TextBox_FechaRegistro_Change(), lo que aquí pasa es que cada que tecleas algo en el textbox corre las instrucciones de dicho evento impidiendo que el usuario modifique la fecha borrando este evento ya te deja modificar la fecha.

Private Sub UserForm_Activate()
TextBox_FechaRegistro.Value = Date
End Sub
Private Sub UserForm_Initialize()
TextBox_FechaRegistro.Value = Date
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas