Control Calendar

Buenos días,
Mi pregunta es, como se utiliza el control calendar, tengo una hoja donde en la columna a, el usuario debe incresar fechas, pero se equivoca mucho, la idea es que el usuario al ubicarse en la celda A1 o A2, o A3, etc, etc, se despliegue el calendario y solo haga clic en el día que quiera ingresar, luego el campo tome el dato correcto.
Espero ser claro en mi pregunta y les agradezco su ayuda.
Slds

1 Respuesta

Respuesta
1
Entrá al Editor, seleccioná con doble clic el objeto HOJA donde harás el ingreso de fechas y allí copiá estas rutinas.
La 1ra controla que hayas seleccionado alguna celda en col A mostrando entonces el calendar y guardando la fila de la celda seleccionada.
La 2da guarda lo que selecciones en el calendar en esa celda.
Ajustá los nombres del control si se llama <> de Calendar1.
Public fila
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'controla si la selección fue hecha en col A
If Target.Column <> 1 Then Exit Sub
'controlo posible error de que no se encuentre el calendar
On Error Resume Next
'guardo la fila para devolver la fecha
fila = Target.Row
'muestro el calendar - OPCIONAL: podría ya estar visible para todos
ActiveSheet.calendar1.Visible = True
End Sub
Private Sub Calendar1_Click()
'muestro en celda lo que se seleccionó en calendar
ActiveSheet.Cells(fila, 1) = calendar1.Value
'oculto el calendar - OPCIONAL: podría quedar visible para todos
ActiveSheet.calendar1.Visible = False
End Sub
Sdos. No dejes de confirmarme si todo quedó comprendido y solucionado.
Elsa
http://aplicaexcel.galeon.com/manual_UF.htm
¿Hola Elsa, como estas?, gracias por tu ayuda.
Realice los pasos que me indicas y me funciona bien, pero tengo algo que me llama la atención, si ejecuto las rutinas paso a paso, es decir con F8, cuando me ubico en cualquier celda de la columna A el control calendar aparece, luego hago clic en la fecha deseada y me la coloca en la celda donde estoy ubicado y se desaparece el control calender, pero si lo ejecuto sin el paso a paso, el control calender aparece al ubicarme en cualquier celda de la columna A pero no se desaparece cuando paso a otra celda, permanece activo, ¿Tu sabes por que?
Slds
La rutina que llama al calendar solo tiene por criterio que se trate de una selección en col A. Aquí debieras ajustar el rango . Por ejemplo, a continuación de esta:
If Target.Column <> 1 Then Exit Sub
Colocá otra excluyendo el rango donde no quieras mostrar el calendar, por ej aquí solo se mostrará cuando selecciones dentro del rango A3:A20
If Target.Row < 3 or Target.Row > 20 then Exit Sub
Como el calendar se oculta en la rutina del Click, al no seleccionar ninguna fecha el control no se va . Podrías agregar un modo de ocultarlo, con esta otra rutina, que lo ocultará si hacés doble clic encima.
Private Sub Calendar1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Calendar1.Visible = False
End Sub

PD) Para aprender más sobre controles , no te pierdas mi manual de Formularios
http://aplicaexcel.galeon.com/manuales.htm
<div id="wrtranslator-translate" style="left: 153px; top: 12px;">Traduce</div>

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas