Saltar al contenido

Control de calendario con fórmulas


pegones1

Recommended Posts

publicado

Leyendo el Calendario automático de mi amigo [uSER=46507]@Macro Antonio[/uSER] se me ha ocurrido preparar un Control de Calendario desplegable con fórmulas en Excel 2010 y lo comparto con vosotros por si lo queréis probar en Excel 2013 que aún no lo tengo instalado.

Se puede ver en cualquier celda con el botón derecho del ratón o en las celdas de las columnas que tienen "*FECHA*" en la primera fila.

eks58m.jpg

Se puede cambiar el rango seleccionado en esta rutina:

Sub ControlCalVisible(bVisible As Boolean)
'
' Al seleccionar una celda se chequea la visibilidad del Control.
'
With ActiveSheet.Shapes.Range(Array("ControlCal"))
'If Not Application.Intersect(ActiveCell, ActiveSheet.Range("B:C")) Is Nothing
If UCase(ActiveSheet.Cells(1, ActiveCell.Column)) Like "*FECHA*" Or _
bVisible Then 'Condición para mostrar el Control
[/CODE]

Este calendario es personalizable sin saber de macros ni VBA pues la imagen del calendario se obtiene de la hoja "CalCon" y las fechas señaladas como acontecimientos o días festivos se escogen en la hoja "CalFechas".

Si te gusta o te sirve para algo dímelo y te lo agradeceré.

Si no te gusta o no te sirve y me lo dices me servirá para mejorarlo o si no, puedes callar para siempre.

[/size]

Control de Calendario PW1.rar

publicado

Me recompensan vuestras felicitaciones [uSER=9328]@Gerson Pineda[/uSER] , [uSER=23001]@GabrielRaigosa[/uSER] y [uSER=161684]@pajuma[/uSER]

Tanto como la necesidad que tenía de disponer de un Control de Calendario desplegable sin necesidad de manejar las APIS de Windows y porque en Excel 2010 y siguientes, no está disponible la característica Control de calendario y no quería tener que Habilitar Control de calendario para Microsoft Excel 2010

Mis requisitos han sido:

  1. Programar el Control con el uso mínimo de macros VBA, solo para visualizar el Control y los cambios de mes.
  2. Crear el Control únicamente con formas nativas de Excel, ya sean imágenes o controles de formulario y ActiveX.
  3. Calcular y representar gráficamente el calendario usando las fórmulas de Excel.
  4. Mostrar el mes de la fecha de la celda activa.
  5. Controlar la modificación de la fecha de celdas activas protegidas.
  6. Cambiar fácilmente el mes y año mostrados.
  7. Retornar rápidamente al día actual o al día de la celda activa.
  8. Sombrear el día seleccionado a la vez que se cambia en la celda activa.
  9. Mostrar el número de semana comenzando en domingo o lunes y según ISO 8601
  10. Cambiar el zoom del Control.
  11. Orientar el Control para que se muestre lo mejor posible alrededor de la celda activa.
  12. Incluir fechas de festivos coloreadas y generadas automáticamente, por ejemplo calculando la Semana Santa.

Y ahora un RETO: Si se ha cambiado el mes visualizado en el Control, ¿dónde hacer clic para volver al mes del día de la celda activa y qué macro se ejecuta al hacer clic?

publicado
Me recompensan vuestras felicitaciones [uSER=9328]@Gerson Pineda[/uSER] , [uSER=23001]@GabrielRaigosa[/uSER] y [uSER=161684]@pajuma[/uSER]

Tanto como la necesidad que tenía de disponer de un Control de Calendario desplegable sin necesidad de manejar las APIS de Windows y porque en Excel 2010 y siguientes, no está disponible la característica Control de calendario y no quería tener que Habilitar Control de calendario para Microsoft Excel 2010

Mis requisitos han sido:

  1. Programar el Control con el uso mínimo de macros VBA, solo para visualizar el Control y los cambios de mes.
  2. Crear el Control únicamente con formas nativas de Excel, ya sean imágenes o controles de formulario y ActiveX.
  3. Calcular y representar gráficamente el calendario usando las fórmulas de Excel.
  4. Mostrar el mes de la fecha de la celda activa.
  5. Controlar la modificación de la fecha de celdas activas protegidas.
  6. Cambiar fácilmente el mes y año mostrados.
  7. Retornar rápidamente al día actual o al día de la celda activa.
  8. Sombrear el día seleccionado a la vez que se cambia en la celda activa.
  9. Mostrar el número de semana comenzando en domingo o lunes y según ISO 8601
  10. Cambiar el zoom del Control.
  11. Orientar el Control para que se muestre lo mejor posible alrededor de la celda activa.
  12. Incluir fechas de festivos coloreadas y generadas automáticamente, por ejemplo calculando la Semana Santa.

Y ahora un RETO: Si se ha cambiado el mes visualizado en el Control, ¿dónde hacer clic para volver al mes del día de la celda activa y qué macro se ejecuta al hacer clic?

Tengo que ser honesto contigo, tus aportes me fascinan porque nos demuestras que con un mínimo trabajo de VBA, Excel con sus nativas herramientas se puede llevar mas lejos de lo pensado, por eso intento seguir esa linea, cuando no es posible alcanzar el objetivo con las herramientas pues no hay de otra que acudir a VBA

Que los vientos de Aragon en Zaragoza te favorezcan siempre!

publicado

[uSER=113842]@johnmpl[/uSER], ¡no será para tanto!

Con un poco más de esfuerzo he publicado el siguiente artículo con una mejora en el Calendario Desplegable y el siguiente vídeo que explica cómo copiar las formas agrupadas que son la imagen del Control en una hoja existente o nueva. Lo de copiar las macros en otra hoja hay que hacerlo manualmente, ¿o conocemos alguna forma automática de copiar las macros?

Control de Calendario Desplegable en Excel

publicado

Me gusta mucho el calendario, Pedro.

Para una futura versión te diré que al seleccionar una fecha en el calendario, parpadea bastante.

Saludos

publicado

[uSER=1]@Sergio[/uSER], me alegra un montón que te guste el calendario.

La "futura" versión ya está subida a mi repositorio en OneDrive y ya puedes probar si ha mejorado el parpadeo que comentabas o si ha empeorado al incluir el paso del ratón por cada uno de los días del calendario...

También he incluido un botón para mostrar u ocultar los días del mes pasado y del mes venidero o para cambiar el tipo y número de semana desde el propio control. Así ha quedado, ¿qué te parece?

1qh5kg.jpg

  • 3 weeks later...

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.