Jump to content
Sign in to follow this  
pegones1

Control de calendario con fórmulas

Recommended Posts

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

Share this post


Link to post
Share on other sites

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?

Share this post


Link to post
Share on other sites
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!

Share this post


Link to post
Share on other sites

[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

Share this post


Link to post
Share on other sites

[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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

INFORMACIÓN BÁSICA SOBRE PROTECCIÓN DE DATOS

Responsable: Sergio Andrés Celemín

Finalidad: Moderar y responder comentarios de usuarios. Recuerda que la información que facilites es pública, y los datos que incluyas los leerá cualquier visitante de esta web, así como el avatar que poseas.

Legitimación: Consentimiento del interesado.

Destinatarios: Hetzner Online GmbH.

Derechos: Puedes ejercitar en cualquier momento tus derechos de acceso,
rectificación, supresión, oposición y demás derechos legalmente establecidos a
través del email sergio@ayudaexcel.com.

Información adicional: Encontrarás más información en la política de privacidad.

Sign in to follow this  



×
×
  • Create New...

Important Information

Privacy Policy


CTA Templates.png