sábado, julio 15, 2006

Insertar un calendario permanente en hojas de calculo Excel con Controles ActiveX

Ayer vimos como usar controles ActiveX en hojas de Excel. Para insertarlos debemos previamente activar la barra de herramientas del Cuadro de Controles. En la esquina inferior derecha de la barra del Cuadro de Controles, está el icono "más controles".

Al activarlo tendremos acceso a muchos más controles (no todos disponibles para las hojas de cálculos). Uno de ellos es el Calendar Control, que nos permite insertar un calendario permanente en la hoja de cálculos.



Para insertar el calendario en una hoja Excel, procedemos como con los otros controles ActiveX, como mostramos en la entrada anterior.

Una vez insertado en la hoja, abrimos el menú de propiedades, para adpatar el calendario a nuestras necesidades

En este calendario_spejemplo de calendario en Excel, tenemos una tabla con ventas diarias en la Hoja2. En la Hoja1 insertamos el calendario, y lo ligamos (LinkedCell) a la celda B7 (que no será visible al estar cubierta por el calendario).

En la celda B14 introducimos esta fórmula, que usa la celda ligada B7 como argumento

=FECHANUMERO(B7)

Esta formula convierte el valor textual del calendario a una fecha. En la celda C14 introducimos una función BUSCARV, para obtener el valor de las ventas correspondientes a la fecha elegida en el calendario

=SI(B14>MAX(Hoja2!A:A);"fecha sin datos";BUSCARV(B14;Hoja2!A:B;2;0))

la condición lógica con la función MAX, nos permite evitar valores erróneos cuando se elige una fecha que no exste en la tabla de ventas.

Ahora, podemos elegir la fecha en el calendario y ver la suma de ventas correspondientes en la celda C14.





Además del menú de propiedades en la barra de herramientas, también se puede cliquear con el boton izquierda el control y abrir este diálogo





Categorías: Varios_

Technorati Tags: ,

18 comentarios:

Anónimo dijo...

es posible poner la fecha en una celda sin tener que digitarla, si no que seleccionandola de un calendario, por ejemplo de un menu desplegable que aparesca un calendario en la celda se escoja la fecha y esta sea asignada a la celda.
Si me puede ayudar julianprada@gmail.com

Jorge L. Dunkelman dijo...

Hola Julián

la forma más práctica de crear una lsita desplegable que se abra al activar una celda es usar Validacion de Datos.
Si quieres usar un calendario, me parece que la forma de hacerlo sería creando un evento que dispare el calendario cualdo se activa una celda de un rango determinado.

Julian dijo...

Gracias Jorge por la respuesta, he usado una validacion para este fin, pero quisiraalgo mas grafico como el calendario que me permita visualizar el mes y los dias, y si seria de mucha utilidad que me ayudara con un ejemplo.

Gracias.

Jorge L. Dunkelman dijo...

Hola Julián
he decidido escribir una nota sobre el tema. Espero publicarla en los próximos días.

Anónimo dijo...

Gracias Jorge estare pendiente.

Jorge L. Dunkelman dijo...

Hola Julián
puedes ver el ejemplo en esta nota

Anónimo dijo...

Hola buenas tardes, trate de hacer lo del calendario pero cuando abro los controles nome aparece el Calendar control, hay alguna manera de que aparezca?? o es mi version de excel??

Jorge L. Dunkelman dijo...

Tienes que tener el Calendar Control instalado, Lo puedes verificar en la lista de controles disponibles, como muestro en esta nota.
Si no aparece puedes descargarlo en esta página.

Atronao dijo...

Buenas, he seguido tu blog una temporada, y he aprendido mucho, ahora necesito para unos documentos, poner la fecha completa todos los dias, (la fecha del dia que listo los trabajos) en una celda con este formato "Lunes, 26 de noviembre de 2007" como podría hacerlo, para que me cogiera la fecha del lunes automaticamente, o del martes.
Osea hoy pondria eso, pero si lo hago mañana que automaticamente me pusiera "Martes, 27 de Noviembre de 2007" creo que me has entendio.

Un saludo atrona00@gmail.com

Jorge L. Dunkelman dijo...

Hola Atronao

el formato de la fecha depende de la definición de formato que hayas elegido para la celda (Formato--Celda--Fecha).
No entiendo del todo que quieres decir con poner la fecha automáticamente. Si das el formato indicado, la fecha aparecerá en la celda con el nombre del día.
Si quieres que la fecha aparezca en una celda automáticamente al abrir el cuaderno, tendrías que usar macros.

uly dijo...

Saludos:

Me podrias ayudar con lo del LinkedCell) trato de ponerlo en las propiedades cuando lo escribo le doy enter el cuadro siempre se queda en blanco no lo guarda.

Jorge L. Dunkelman dijo...

Uly

puedes mandarme el archivo para ver dónde pueda estar el problema?

Luis M. dijo...

Hola Jorge,
He descubierto tu blog recientemente y es lo mas util que he encontrado nunca para trabajar con excel. Muchas gracias.

Te queria hacer una consulta sobre fechas. Quiero que en un parte de horas trabajadas, cuando el empleado introduzca las horas dedicadas a una tarea, por defecto, en la columna de fecha aparezca la fecha en la que introdujo la tarea, para ello uso la funcion HOY(). Mi problema es que quiero que esa fecha se quede almacenada con el valor introducido la primera vez, ya que la siguiente vez que abro el libro, la funcion HOY() actualiza de nuevo la fecha de la tarea al dia actual.

Jorge L. Dunkelman dijo...

Hola Luis
efectivamente, HOY() es volátil y por lo tanto es recalculada cada vez que sucede algún cambio en la hoja.
La solución es programar un evento que imprima en la celda requerida la fecha en que el valor ha sido introducido.

Anónimo dijo...

HOLA JORGE:
Estoy conociendo recien tu blog y me ha resultado de mucha utilidad.
Tengo un problema con un calendario de pagos, necesito que con referencia a el se incerte la fecha de pago en una hoja de calculo llamada comprobante de facturacion. Este calendario de pago esta marcado segun las fechas de entrega de documentos y fecha de pago con cheque, podria haber tratado con la formula condicional pero el problema es que las fechas de pago no siguen un orden correlativo

Jorge L. Dunkelman dijo...

No es necesario que las fechas sigan un orden correlativo para usar una fórmula condicional.
Puedes enviarme el archivo por mail para que vea qué es lo que quieres hacer.

leo dijo...

hola, gracias por el post
Quisiera saber, como, usando el calendario ya mencionado, al dar click en un día, me aparezca en las celdas de abajo, una información de otra hoja ... es decir, en una hoja llevo un registro de evtnos diarios de mi trabajo, quisiera que el calendario, al dar click en cierto día, me mostrara la informacion relacionada con ese día la cual almaceno en otra hoja.

gracias!!!

Jorge L. Dunkelman dijo...

Leo
habría que ver cómo están organizados los datos en la hoja, pero me parece que sería más práctico usar una tabla dinámica donde en el campo de página eligirías la fecha. En definitiva, todo lo que hace el calendario es poner la fecha elegida en una celda.