Colocar día, mes y año en 3 Combobox de un Userform

Sé que esto lo han respondido muchas veces pero a mí aún no me funciona.

Tengo un userform con 3 combobox (uno para el día, otro para el mes y otro para el año). No puedo usar el calendario por restricciones internas.

Si la fecha actual es 17 de Noviembre de 2015, cuando se inicialice el userform por defecto debería aparecer el 17 en el combobox1; noviembre en el combobox2 y 2015 en el combobox3. Atención: el usuario puede modificar esos valores, dadas ciertas excepciones.

He intentado colocando esto pero cuando hago click en el botón que me muestra el userform llamado "IngresoOperacion" no se me muestra nada en los respectivos combobox.

Private Sub IngresoOperacion_Initialize()
     Dia_TradeDate = Format(Now, "dd")

     Mes_TradeDate=Format(Now, "mmmm")

    Año_TradeDate=Format(Now, "yyyy")

End Sub

Para cargar cada uno de los combobox, en la propiedad Rowsource le tengo asignado el nombre del rango de las celdas de Excel que se requieren para cargarlo.

También he intentado con la instrucción pero sólo se cargaría el día de la fecha actual en el combobox y debe ocurrir que se carguen todos los días del mes pero que por defecto se vea el día de la fecha actual:

Private Sub Dia_TradeDate_Enter()
   Dia_TradeDate.AddItem Format(Now, "dd")
End Sub

Respuesta
2

Si tenés la propiedad RowSource asociada a cada rango solo necesitas las instrucciones del evento Initialize del UF para colocar dia, mes y año actual.

Quizás tengas otras instrucciones que luego hagan que esa info se oculte, revisa si no tenés alguna línea que diga nombre_control.ListIndex = -1

Ya leí una vez esta consulta y me preguntaba porqué no utilizar un textbox donde ingresar la fecha completa (sin separadores) y que el programa evalúe si se trata de fecha válida.

Si te parece factible te la escribiré aquí o te puedo enviar el ejemplo a tu correo. Los míos están en la portada de mi sitio que dejo al pie.

Elsa te pregunto algo. Resulta que cuando utilicé un nombre genérico userform_initialize() sí me dio resultado; en cambio cuando utilicé el nombre del formulario IngresoOperacion_Initialize() no me funcionó. ¿Por qué me pasa eso? 

En el Editor, al momento de ingresar código, siempre utilizá los desplegables para hacer referencia a los objetos y sus eventos, tal como se observa en la imagen para no errarle con los nombres o sintaxis en eventos.

En el caso de querer programar objetos en hojas también podrás observar que el objeto 'Hoja' (como pasa con el objeto 'Userform') no lleva asociado su nombre. Lo mismo sucede con el objeto 'Workbook'.

PD) En la demo del manual 500Macros dejo explicados estos temas con imágenes.

Sdos!

¡Gracias! Elsa sos grande. Lástima que tu selección le ganó a la mía esta semana en Barranquilla, jeee.

Un abrazo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas