El Calendario Perpetuo sale a la Superficie

Posted on miércoles, mayo 26, 2010 by Pedro Wave

Quien haya seguido las entradas anteriores sabrá que les toca a las ondas salir a la superficie desde que a primeros de mes planifiqué el proyecto de Calendario Perpetuo según los 5 elementos de mejora de la experiencia del usuario, en inglés User Experience - UX, que hemos visto en este blog:

  1. Estrategia a seguir aquí
  2. Alcance pretendido aquí
  3. Estructura empleada aquí
  4. Esquema sugerido aquí
  5. Superficie recursiva aquí
Como ya se dijo, el resultado que ve el usuario está en la superficie del diseño visual de la aplicación con la que interactua para obtener los resultados que busca y, lo que buscamos es un Calendario Perpetuo en hojas de cálculo Excel y aquí tienes su presentación en sociedad:



Viendo el vídeo verás parte de lo que se ha conseguido en este calendario que se ha hecho sin emplear macros de Excel para que pueda llegar a más público, pero si que se ha usado toda la potencia del Formato Condicional (CF en inglés) de Excel 2007 y 2010 para darle más utilidad y vistosidad, espero haberlo conseguido...

Algo muy importante, que siempre hay que tener en cuenta, es la internacionalización (i18n) y localización (L10n) de cualquier aplicación informática, lo que quiere decir simple y llanamente que ha de estar preparada para cambiar al idioma del usuario con facilidad, o sea, a su soporte de lenguaje nativo (en inglés: Native Language Support - NLS). Para ello, todas las celdas del calendario contienen formato de fechas que, aplicando la máscara adecuada se convierten en días de la semana, como lunes o domingo, o en meses del año, como enero o diciembre, con la ventaja de que al abrir la plantilla del calendario en un idioma, los nombre de los días de la semana o los nombres de los meses del año aparecen en ese idioma, sea inglés, español o croata. Ya sólo hace falta cambiar los nombres de las hojas de cálculo y los títulos, notas y etiquetas al idioma del usuario para tener el calendario en su idioma.

Es fácil hacer la prueba cambiando la configuración regional del sistema operativo, en Windows pulsa en Inicio, Panel de control, Configuración regional y de idioma y, en Opciones regionales selecciona el Croata. Ahora, al abrir el Calendario Perpetuo, se verán las fechas en ese idioma. ¿Que no te lo crees? Míralo por tí mismo:

Y lo mismo con las hojas de cada mes, con el mini-calendario y con las fechas de los eventos, fiestas y el diario. Por cierto, se ha incluido el cálculo de los días de la Semana Santa y de celebración de varios países.

Si te ha gustado puedes bajarte el Calendario Perpetuo en Excel 2007 desde aquí:

o desde este enlace de plantillas: Calendario Perpetuo en Excel 2010

Solo te he mostrado la punta del iceberg pero, para que salga todo el proyecto a la superficie, deberás analizar por tu cuenta las funciones y formatos de Excel empleados en este calendario, que espero que alcance muchos años o llegue a ser perpetuo...

Yo se que hay muchas cosas que mejorar pero quiero que me las comentes tú.
English translation of this post here.

10 Response to "El Calendario Perpetuo sale a la Superficie"

.
gravatar
adelcid09 Says....

Pedro: mis felicidades por tan excelente trabajo, solo me queda una duda la formula que utilizas para que aparescan los dias que programas en feriados, agenda y eventos. por mi trabajo tengo que hacer un calendario de actividades diarias y no entiendo esta formula y que he analizado todo el documento e intentado replicar tu formula y no me funciona. si pudieras ayudarme

.
gravatar
Pedro Wave Says....

adelcid09, disculpa el retraso en contestar.

Mi calendario anual se basa en fórmulas dentro del formato condicional. Mi calendario mensual se basa en fórmulas matriciales (arrays) que se deben introducir presionando a la vez las teclas: CONTROL+MAYUSCULAS+INTRO.

Puedes aprender más leyendo el siguiente artículo: Microsoft - Fórmulas matriciales

Espero haberte ayudado aunque hace un tiempo que no hago calendarios. Un saludo.

.
gravatar
Anónimo Says....

Gracias por el trabajo tan bueno, pero tengo una duda ¿por qué aparecen dos domingos en las hojas mensuales?
Gracias de nuevo.

.
gravatar
Pedro Wave Says....

Si aparecen dos domingos, comprueba que no están chequeadas las dos celdas B41 e I41 de la hoja Cal.

.
gravatar
Anónimo Says....

Gran trabajo, gracias.
Una duda que tengo: ¿por que aparecen dos domingos en las hojas mensuales?

.
gravatar
Anónimo Says....

Madre mía, qué trabajazo, pero los resultados merecen una gran enhorabuena. Para mí, como profesor, es muy útil insertar una segunda hoja en el calendario perpetuo (el que tiene solo una hoja) En esta segunda hoja he creado una plantilla para el lunes con mi horario de clases en la que quiero anotar lo que hacemos en cada clase (o sea, usar esta hoja como un diario). Con el botón de llenado automático he conseguido extender esa plantilla para tener un horario para cada día del curso y las horas y asignaturas correspondientes a cada día se han actualizado dependiendo de que sea lunes, martes..., lo cual calcula de la fecha exacta de cada día. ¿Qué se podría hacer para insertar un botón en la hoja del calendario y que al pulsarlo tomase la fecha seleccionada en él y me llevase justo a la misma fecha en la hoja que he llamado control diario?

.
gravatar
Pedro Wave Says....

Estimado profesor anónimo, crea un botón llamado CBfecha en la hoja del calendario e incluye en esa hoja la siguiente macro, suponiendo que tengas las fechas en formato fecha en el rango D1:D31 de la hoja "control diario"

Option Explicit

Private Sub CBfecha_Click()
'
' Click después de seleccionar una fecha del calendario
' para ir a esa fecha del diario
'
' http://support.microsoft.com/kb/141507/es
'
Dim rFila As Variant

If Not Selection Is Nothing Then
With Sheets("control diario")
rFila = Application.Match(CLng(Selection), .Range("D1:D31"), 0)
If Not IsError(rFila) Then
.Activate
.Range("D1:D1").Offset(rFila - 1, 0).Select
End If
End With
End If
End Sub

Espero que te sirva para controlar los horarios de las clases. Un saludo, Pedro.

Leave A Reply

Dime si te gusta lo que lees y, si no te gusta, dime por qué. Tengo habilitada la moderación de comentarios. Tu comentario se publicará pronto.

Tell me if you like what you read here and if you don't like, tell me why. I've enabled comment moderation. Your comment will be published ASAP.

Mi Lista de Blogs- My Blog List