BannerAnuncios

Mostrando entradas con la etiqueta Excel 2010. Mostrar todas las entradas
Mostrando entradas con la etiqueta Excel 2010. Mostrar todas las entradas

lunes, 20 de julio de 2015

Redifusión Veraniega: Curso Práctico de Programación de Macros en Excel con VBA.

Iniciamos la "Programación Veraniega" con este curso dedicado a la programación de Excel, donde os enseñé a través de un ejercicio, cómo utilizar las herramientas más importantes de Excel, desde Macros, desde VBA. Tablas Dinámicas, Gráficos, Importación de Datos... todo manejado desde Macros.

Estado del Curso:Finalizado.
Formato:Vídeo Tutorial.
Nº Sesiones/Vídeos:14 ses./20 víd.
Duración:08h15m31s.
Acceso a la lista de
reproducción en Youtube:
Este verano, por primera vez en 4 años tengo vacaciones. Teniendo en cuenta que tengo dos hijos y una mujer con dos trabajos, ya os podéis imaginar lo que me toca... Como evidentemente, no voy a tener tiempo para publicar nuevo material, os voy a ir proponiendo material antiguo que sigue siendo muy interesante a pesar del tiempo que hace que lo publiqué. El nuevo material lo dejaremos para el inicio del curso y final de vacaciones, que paradójicamente tendré más tiempo disponible para esto. A la vez que voy "relanzando" el material antiguo iré actualizando todas las entradas del Blog para que tengan la misma apariencia y quede ya todo definitivamente organizado como quiero. Hoy para empezar os voy a proponer el único curso completo que hay en el Blog, el Curso Práctico de Programación de Macros en Excel con VBA. 

En este curso, eminentemente práctico, vamos a crear macros en las que aprenderemos a usar las herramientas más utilizadas de Excel. Muchas veces los cursos de programación se centran en los aspectos básicos de los lenguajes de programación, en las estructuras básicas que forman el lenguaje... Y dejan de lado la creación de ejemplos prácticos de lo que se puede lograr con ellos. En este curso, no me voy a centrar en las estructuras básicas de VBA, me voy a centrar en cómo podemos utilizar las herramientas más potentes de Excel desde código, para así lograr crear macros potentes y útiles. Los aspectos básicos de VBA son muy sencillos y todo lo que veáis en los vídeos, relacionado con esa parte del lenguaje, condicionales, bucles, uso de variables, procedimientos, funciones...será muy fácil de entender con los ejemplos que os planteé.

Por el contrario, el uso de las herramientas que ofrece Excel desde código, no suele ser muy claro y en eso es en lo que nos vamos a centrar en este curso. Aprenderemos a manejar todos los objetos y herramientas que componen Excel, desde Macros. Entre otras cosas veremos cómo crear Tablas Dinámicas, Gráficos, como conectar Excel con Access, Excel con Word, como importar datos, como crear e interactuar con Controles ActiveX, como personalizar la UI de Excel y muchas más cosas que veremos a lo largo del curso. Como os digo, es un curso eminentemente práctico, en el que aprenderéis a sacar todo el potencial de las herramientas de Excel desde Macros.

El curso está desarrollado en Excel 2007, pero prácticamente al 100%, se puede desarrollar en Excel 2010, 2013 y seguramente en las versiones posteriores que aparezcan de Excel. A continuación tenéis las sesiones individuales que componen el curso en el que desarrollaremos un ejemplo de aplicación personalizada, en el que iremos usando casi todas las herramientas de Excel. Os recomiendo que lo veáis de inicio a fin porque obtendréis muchas ideas para vuestras hojas de cálculo. También podéis utilizar la lista de reproducción de Youtube, en el que están todos los vídeos del curso, para verlos en el orden correcto y sin interrupciones.


jueves, 29 de enero de 2015

Actualizar las Opciones de un Cuadro Combinado de la Cinta de Opciones en Tiempo de Ejecución.

Curso: Personalizar la UI de
Excel con XML y VBA.
Formato:
Vídeo/Tutorial.
Archivos necesarios:Personal v0.04.xlsm
Anterior Vídeo/Tutorial:Cargar un Cuadro...
Acceso a los vídeos 
en Youtube:
Volvemos con los ComboBox o Cuadros Combinados de la Cinta de Opciones de Excel, para en esta ocasión explicar cómo podemos actualizar las opciones que muestran en su interior. En concreto veremos como podemos cambiar las opciones que se muestran en un ComboBox mientras estamos trabajando en un documento, es decir en Tiempo de Ejecución. En la sesión anterior explique algo parecido, pero que se limitaba solo a la primera vez que se accedía al cuadro combinado. Es decir, cargábamos en tiempo de ejecución las opciones que iba a mostrar el cuadro combinado, la primera vez que se accedía a él. Lo que os explico en esta sesión, funcionará en todo momento. Es una sesión muy larga, pero creo que merece mucho la pena por lo que os voy a explicar sobre los Cuadros Combinados de la Ribbon y por todo el trabajo que vamos a realizar con objetos de Excel

Para la explicación voy a seguir usando el ejemplo de los trabajadores, un ejemplo en el que se podían aplicar filtros para mostrar los trabajadores de una determinada población. En esta sesión añadiremos lo necesario para que en el cuadro combinado que usamos para filtrar, se añadan las nuevas poblaciones que se rellenen en la hoja que contiene los datos de los trabajadores. Ese va ser, el objetivo de la sesión, conseguir añadir opciones al cuadro combinado en tiempo de ejecución.

En realidad parte del trabajo ya lo tenemos realizado de la sesión anterior y el código que hay que escribir relacionado con la Ribbon es muy poco. Pero para dejar todo bien engranado habrá que realizar mucho trabajo con los objetos de Excel y entre otras cosas veremos como obtener Registros Únicos con Filtros Avanzados, como Eliminar y Copiar Hojas... En definitiva mucho trabajo que se hace habitualmente en Excel, pero desde el lado del programador, desde VBA.

Incluso para acabar, la sesión veremos como ordenar alfabéticamente las opciones del Cuadro Combinado, que como todo lo relacionado con la Ribbon veréis que tiene "truco". En realidad aunque queda mal decirlo, ni se pueden actualizar las opciones de un cuadro combinado de la Ribbon, ni se pueden ordenar... Pero como os digo, siempre hay "trucos" que nos permiten conseguir lo que queremos. Como os dije en la sesión anterior, cogeros una hora de vuestro tiempo y tomároslo con calma. Para realizar los pasos que veréis en el vídeo os podéis descargar el siguiente documento de Excel que voy a utilizar en el vídeo:

Como siempre aquí tenéis los enlaces para ver los dos vídeos desde el Blog, espero que os gusten:

  • Nombre: Actualizar las Opciones de un Cuadro Combinado de la Cinta de Opciones en Tiempo de Ejecución.
  • Versión de Excel: ES/Español.
  • Audio: Español.
  • Subtítulos: Español.
  • Duración Total Vídeos: 49m 19s.

Vídeo 1 de 2.

Vídeo 2 de 2.

Nada más por esta semana. Creo que de momento voy a parar un par de semanas con este tema para recuperar otros temas que tengo abandonados...

miércoles, 7 de enero de 2015

Cargar un Cuadro Combinado o ComboBox de la Cinta de Opciones de Excel en Tiempo de Ejecución, usando VBA y XML.

Curso: Personalizar la UI de
Excel con XML y VBA.
Formato:
Vídeo/Tutorial.
Archivos necesarios:Personal v0.03.xlsm
Anterior Vídeo/Tutorial:Filtrar Datos usan...
Acceso a los vídeos 
en Youtube:
Seguimos con otra sesión más dedicada a los ComboBox o Cuadros combinados que podemos crear en la Cinta de Opciones, utilizando XML y VBA. En esta ocasión os voy a explicar otra vez como crear un ComboBox. Pero en lugar de hacer todo el trabajo desde el código XML, el contenido del Cuadro Combinado lo vamos a crear en Tiempo de Ejecución. Es decir, en lugar de crear items en el código XML, en lugar de crear opciones fijas... Vamos a crear items en tiempo de ejecución con código VBA, vamos a crear opciones dinámicamente. Para la explicación, vamos a utilizar el ejemplo de los filtros aplicados desde un ComboBox de la Ribbon, pero ahora las poblaciones y opciones que aparecían en el cuadro combinado, las cargaremos desde una hoja de Excel y desde código. Al inicio del vídeo os explico todo con más detalle.

Principalmente os voy a explicar los atributos de un ComboBox que permiten cargar sus opciones en tiempo de ejecución. Son tres: getItemCount, getItemLabel y getItemID. Estos tres atributos permiten llamar a procedimientos de VBA que serán los encargados de crear las opciones del combo. De nuevo, el que espere un acceso directo y sencillo a un control de la Cinta de Opciones, que se olvide. Es un trabajo bastante laborioso el que hay que hacer, pero creo que merece mucho la pena por el resultado que se consigue.

Debo aclarar, que en esta sesión os explico como cargar las opciones que estarán preparadas para el primer acceso al cuadro combinado, para la primera vez que se use. En la siguiente sesión, haremos las modificaciones necesarias para actualizar el cuadro combinado automáticamente mientras estamos trabajando en el documento que contiene la modificación de la Ribbon que estamos creando en el ejemplo. No hay que escribir mucho más código para conseguirlo, pero era demasiado contenido para una sola sesión, demasiados conceptos.

Ya os digo que en mi opinión es una sesión muy interesante, reservaros una hora de vuestro tiempo para seguirla y seguro que enseguida se os empezarán a ocurrir ideas para aplicar en vuestros documentos. Para realizar los pasos que veréis en el vídeo os podéis descargar el siguiente documento de Excel que voy a utilizar en el vídeo:

Como siempre aquí tenéis los enlaces para ver los dos vídeos desde el Blog, espero que os gusten:

  • Nombre: Cargar un Cuadro Combinado o ComboBox de la Cinta de Opciones en Tiempo de Ejecución, usando VBA y XML.
  • Versión de Excel: ES/Español.
  • Audio: Español.
  • Subtítulos: Español.
  • Duración Total Vídeos: 35m 06s.

Vídeo 1 de 2.

Vídeo 2 de 2.

Nada más por esta semana. A ver si poco a poco voy cogiendo ritmo estable de publicaciones...

*Siguiente Sesión*:

martes, 9 de diciembre de 2014

Cómo Filtrar Datos en Excel con un ComboBox de la Cinta de Opciones o Ribbon, usando XML y VBA.

Curso: Personalizar la UI de
Excel con XML y VBA.
Formato:
Vídeo/Tutorial.
Archivos necesarios:Personal v0.02.xlsm.
Anterior Vídeo/Tutorial: Crear un ComboBox...
Acceso a los vídeos 
en Youtube:
Una vez que ya hemos visto en el vídeo anterior, un primer ejemplo de creación de un comboBox en la Cinta de Opciones de Excel, es hora de aprender a darle uso. Es hora de aprender a utilizar el valor u opción que se queda seleccionado en el combo, junto con otras herramientas de Excel. En este vídeo, principalmente os voy a explicar dos cosas. Os diré como acceder desde Visual Basic, desde VBA, a la opción que se ha quedado seleccionada en el combo. Y también os voy a explicar cómo indicarle a Excel que haga algo cuando se cambia la opción seleccionada de un comboBox de la Ribbon. Aunque os esperéis lo contrario, utilizar un comboBox de la Ribbon desde VBA es muy sencillo. La manera de hacerlo se asemeja mucho a lo que hacemos con los ComboBox ActiveX que podemos insertar en las hojas de Excel, utilizaremos algo similar a los eventos de los controles ActiveX.

Para explicar estos dos puntos voy a plantear uno de los ejemplos típicos de uso de un comboBox, el filtrado de información. Vamos a utilizar el comboBox que creamos en el vídeo anterior para filtrar unos datos. En concreto usaremos el combo para filtrar los datos de unos trabajadores por ciudades, por poblaciones. Dependiendo de la población seleccionada en el combo, se aplicará un filtro que solo mostrará los datos de los trabajadores de la población seleccionada. Así os explicaré como acceder al valor seleccionado del combo para obtener la población seleccionada y a como provocar que se aplique el filtro cuando se selecciona una de las poblaciones. Es decir así os explicaré los dos puntos que he comentado líneas atrás. Sobre todo os hablaré de onChange, es una propiedad o atributo de los comboBox que nos va permitir indicar un procedimiento de VB que se ejecutará al cambiar la opción seleccionada del combo. En el vídeo tenéis todos los detalles.

Para realizar los pasos que veréis en el vídeo os podéis descargar el siguiente documento de Excel que voy a utilizar en el vídeo:

Como siempre aquí tenéis los enlaces para ver los dos vídeos desde el Blog, espero que os gusten:

  • Nombre: Cómo Filtrar Datos en Excel con un ComboBox de la Cinta de Opciones o Ribbon, usando XML y VBA.
  • Versión de Excel: ES/Español.
  • Audio: Español.
  • Subtítulos: Español.
  • Duración Vídeo: 17m 24s.



Por hoy ya vale. Estos días son un poco raros, hay muchos días de fiesta y paradójicamente los días de fiesta son los que menos tiempo tengo disponible... Hay que estar con la familia y no sé si me dará tiempo a preparar mucho material, pero se intentará. En las estadísticas ya estoy viendo que está empezando el bajón navideño, intentaré por todos los medios que esto no decaiga...Algo haremos ;)

*Siguiente Sesión*:

miércoles, 3 de diciembre de 2014

Como Crear un ComboBox o Cuadro Combinado en la Cinta de Opciones de Excel.

Curso: Personalizar la UI de
Excel con XML y VBA.
Formato:
Vídeo/Tutorial.
Archivos necesarios:Personal v0.01.xlsm.
ImagenesCombo.rar.
Anterior Vídeo/Tutorial: Activar y Desactivar Bot...
Acceso a los vídeos 
en Youtube:
Uno de los controles más usados en todos los programas, es el comboBox o Cuadro Combinado. En la Cinta de Opciones de los programas de Office, hay muchos ejemplos de su uso. Este control es la unión de una lista que nos permite seleccionar uno de los elementos que aparecen... Y un cuadro de texto en el que podemos escribir para indicar la opción que queremos seleccionar. Por eso se le llama Cuadro Combinado, porque combina los dos usos. En el vídeo que os presento hoy os voy a explicar cómo crearlos en nuestras fichas personalizadas, vamos a seguir viendo como personalizar la Ribbon de Excel usando código XML.

Además de explicar el código XML necesario para crearlo, también os explicaré los principales atributos o propiedades que tienen este tipo de controles, para controlar su apariencia. Entre otras cosas veremos cómo controlar su tamaño con sizeString, como añadir imágenes con image e imageMso y como añadir ayuda usando screenTip y superTip.

Como os acabo de decir en este vídeo me centraré en el aspecto físico de los comboBox y en el siguiente veremos cómo usarlos, como conectarlos con VBA y usar el valor seleccionado. En concreto desarrollaremos un ejemplo en el que usaremos el comboBox de este vídeo, para filtrar datos, para aplicar filtros. Pero esto será para el siguiente. Para realizar los pasos que veréis en el vídeo os podéis descargar el siguiente documento de Excel que voy a utilizar en el vídeo:

Como siempre aquí tenéis los enlaces para ver los dos vídeos desde el Blog, espero que os gusten:

  • Nombre: Como Crear un ComboBox o Cuadro Combinado en la Cinta de Opciones de Excel.
  • Versión de Excel: ES/Español.
  • Audio: Español.
  • Subtítulos: Español.
  • Duración Vídeo: 26m 42s.



Creo que de momento nada más por esta semana. He perdido mucho tiempo con los problemas que me suelen aparecer al renderizar los vídeos... Pero, como ya he comentado por las redes sociales, parece que ya he conseguido solucionarlo definitivamente. A partir de ahora, debería crecer el ritmo de publicaciones. Ya veremos...

*Siguiente Sesión*:

jueves, 27 de noviembre de 2014

Activar y Desactivar Botones de la Ribbon en Tiempo de Diseño y de Ejecución usando XML y VBA.

Curso:
Formato:
Vídeo/Tutorial.
Archivos necesarios:GestiónNeg....xlsm.
Anterior Vídeo/Tutorial:Imágenes en los Bot...
Acceso a los vídeos 
en Youtube:
Seguimos con los vídeos en los que personalizamos la Cinta de Opciones de Excel, seguimos conociendo más detalles de los botones que podemos crear en su interior. En esta sesión nos vamos a centrar en explicar cómo podemos activar y desactivar botones. Seguro que muchas veces os habéis fijado en que determinados botones aparecen desactivados nada más entrar en un programa. O que algunos de ellos se activan o se desactivan dependiendo del contexto en el que estamos... Bueno pues eso es lo que os voy a explicar en esta sesión compuesta de dos vídeos. Os voy a mostrar como activar y desactivar botones en tiempo de diseño, es decir al definir el botón en el código XML que escribimos en el Custom UI Editor. Y también veremos cómo hacerlo en tiempo de ejecución, es decir cuando usamos el documento. Esto último lo haremos utilizando código VBA.

En la parte en la que veremos cómo hacerlo en tiempo de diseño usaremos la propiedad enabled que nos permite indicar si un control está activado o no, en este caso los botones. Y para la parte en la que hablamos del tiempo de ejecución usaremos la función getEnabled. Esta función nos permite indicar una macro, un procedimiento de VBA, que será en el que se decidirá si los botones se activan o se desactivan. Para esta segunda parte realizaremos un ejemplo en el que veremos cómo activar o desactivar un botón dependiendo de la hoja en la que estemos situados.

Se trata de una sesión larga pero creo que muy interesante. En ella se empieza a ver y entender cómo hay que relacionarse desde VBA con la Ribbon... Que como muchas veces os he dicho, esa relación no es todo lo directa que nos gustaría. Para realizar los pasos que veréis en el vídeo os podéis descargar el siguiente documento de Excel que voy a utilizar en el vídeo:

Como siempre aquí tenéis los enlaces para ver los dos vídeos desde el Blog, espero que os gusten:

  • Nombre: Activar y Desactivar Botones de la Ribbon en Tiempo de Diseño y de Ejecución usando XML y VBA.
  • Versión de Excel: ES/Español.
  • Audio: Español.
  • Subtítulos: Español.
  • Duración Total Vídeos: 38m 25s.

Vídeo 1 de 2.

Vídeo 2 de 2.


Nada más por esta semana. La próxima creo que volveré a los cursos de Excel, con un tema que tengo pendiente desde hace mucho tiempo... Ya veremos ;)

*Siguiente Sesión*:

lunes, 24 de noviembre de 2014

Filtrar Datos en Excel usando un ComboBox de la Cinta de Opciones con VBA y XML.

Curso: Personalizar la UI de
Excel con XML y VBA.
Formato:
Artículo/Tutorial.
Archivos necesarios:Personal v0.02.xlsm.
Anterior Artículo/Tutorial:Crear ComboBox...
Siguiente Artículo/Tutorial:Próximamente.
Versión Vídeo/Tutorial:Próximamente.

Vamos a crear un comboBox con imágenes en la Ribbon.
Aplicamos Fltros con un ComboBox.

Seguimos con la creación de un comboBox en la Cinta de Opciones de Excel, en la Ribbon. En el artículo anterior os explique cómo crear un cuadro combinado usando XML y también os expliqué los atributos o propiedades más importantes que tiene un comboBox para controlar su apariencia. En este artículo nos vamos a dedicar a su funcionamiento, os voy a explicar cómo utilizar la opción seleccionada, vamos a ver cómo acceder a ella desde VBA. Como ejemplo, se me ha ocurrido que cuando seleccionemos una opción se aplicará un filtro, por lo tanto eso es lo que vamos hacer. Vamos a ir dando todos los pasos necesarios para conseguir aplicar filtros con el comboBox y así descubriremos de qué manera podemos comunicar el comboBox con VBA, con Visual Basic. Sorprendentemente, no es tan difícil como seguro que estáis pensando. Después de todo lo que hicimos para conseguir desactivar los botones de la Ribbon en un artículo anterior, os va sorprender lo fácil que es hacer lo que os acabo de proponer.

Vamos con el trabajo. Para realizar los mismos pasos que yo, os he dejado para descargar el documento que utilizo en el artículo. Si habéis realizado los pasos del artículo anterior podéis usar ese, de lo contrario, podéis realizar la descarga a continuación o al inicio del artículo en su ficha descriptiva.
Como casi siempre, el primer paso lo tenemos que dar en el Custom UI Editor. Debemos añadir algo más al código XML que desarrollamos en el artículo anterior. Accedemos a él y abrimos el documento con el que vamos a trabajar. Lo que tenemos que añadir en esta ocasión es bastante evidente. Tal y como tenemos el comboBox no hace nada, debemos añadir algo para poder conectarlo con el código VBA que se encargará de filtrar los datos de los trabajadores. Los comboBox tienen un atributo llamado onChange que es el que se encarga de esa tarea. En él debemos indicar que macro o procedimiento de VBA se ejecutará cuando cambie la opción seleccionada en el cuadro combinado. Añadimos ese atributo a la definición del comboBox con el valor que podéis ver a continuación.

<comboBox id="comboPoblacion" label="Selecciona una población: " sizeString="XXXXXXXXXXXXXXXXXXXXXXXXX" 
imageMso="GroupSmartArtQuickStyles" screentip="Selecciona una población..." supertip="Al seleccionar una..." onChange="ModuloEmpleados.FiltrarPorPoblacion">


He acortado los valores de screentip y supertip para que no molesten, pero vosotros mantener los que establecimos en el artículo anterior. En cuanto a onChange hay poco que comentar. Le he indicado que cuando se cambie la opción seleccionada, debe llamar a un procedimiento de VBA llamado FiltrarPorPoblacion, que está guardado en un módulo llamado ModuloEmpleados. Ya está, no hay nada más que hacer en el código XML, todo el trabajo que nos queda es de programación con VBA. Por lo tanto cerramos el Custom UI Editor guardando los cambios y a continuación lo abrimos en Excel.

Cuando abráis el documento no notaréis nada diferente, pero si seleccionáis una de las opciones del cuadro combinado, sí que pasará algo.

Al seleccionar una opción se produce un error, todavía no hemos creado la macro que se llama.
Error por no encontrar la macro de onChange.

Se produce un error porque no encuentra la macro que hemos indicado en onChange, evidentemente porque todavía no la hemos creado. De todas las maneras, el error nos permite hacernos una idea de cómo funciona lo que hemos hecho en el código XML. En cuanto hemos cambiado la opción seleccionada ha llamado a la macro que le hemos indicado en onChange. Ahora enseguida vamos a crearla, pero antes vamos hacer algo que nos facilitará posteriormente aplicar los filtros desde VBA.

Datos que vamos a convertir en una Tabla.
Datos que vamos a convertir en una Tabla.

Los datos que tenemos en la primera hoja del documento, los datos de los empleados, los vamos a convertir en una Tabla a la que llamaremos Trabajadores. No es necesario hacer esto, pero si les damos un nombre a los datos, luego será más fácil acceder a ellos desde código. Para crear una Tabla, el primer paso es seleccionar una celda cualquiera de los datos que queremos convertir en Tabla... Y a continuación en la ficha Insertar, pulsaremos el botón Tabla.

Botón para crear Tablas en Excel.
Botón para crear Tablas en Excel.

Si alguno no tiene activado el botón Tabla, si no lo puede pulsar y ha hecho bien la selección de una celda de los datos, es porque para el artículo anterior, sin darme cuenta, subí un documento en el que ya estaba creada la Tabla y por lo tanto no os la deja crear de nuevo. Ya he actualizado ese documento para que no la tenga, pero seguramente más de uno tendréis la versión antigua y tendréis creada la Tabla. Para comprobarlo, no tenéis más que seleccionar una celda de los datos y fijaros si en la Cinta de Opciones os aparece una ficha llama Diseño. Si es así, significa que está creada y lo primero que os aparecerá dentro de esa ficha es el nombre de la Tabla.

Podemos ver el nombre de la Tabla en la ficha Inicio.
Podemos ver el nombre de la Tabla en la ficha Inicio.

Para los que no la tenemos creada, pulsamos en el botón y aparecerá la ventana para crear una Tabla, en la que debemos indicar dos cosas.

Ventana para crear Tablas en Excel.
Ventana para crear Tablas en Excel.

Lo primero que debemos indicar son las celdas que formará la tabla. Si habéis seleccionado previamente una celda de los datos que deben formar la tabla, Excel ya habrá seleccionado todas las celdas por nosotros. En este caso indica que usará las celdas que van de la A1 a la G13, que es correcto. Si no lo fuera deberíais indicar vosotros cuales son las celdas qué queréis usar. Lo siguiente que debemos indicar es si la tabla tiene encabezados. Con esto se refiere a si los datos que estamos indicando para crear la tabla, tienen una primera fila, que sirva de rótulos de columnas, de títulos. Como en este caso, sí que es así, dejamos marcada la opción. Si no los tendría habría que desmarcar la opción y Excel crearía los títulos de las columnas. Por lo tanto, tal y como está la ventana, todo es correcto, luego pulsamos en Aceptar.

Datos convertidos en Tabla.
Datos convertidos en Tabla.

Al hacerlo la tabla cogerá un formato diferente y aparecerá la ficha que os he comentado antes, la ficha Diseño. En ella le vamos a cambiar el nombre a la tabla, ahora mismo tienen un nombre genérico que no queda muy bien, le llamamos Trabajadores.

La tabla se crea con el nombre de Tabla1.

Cambiamos el nombre de la Tabla.

La tabla se crea con el nombre de Tabla1 hay que cambiarlo a Trabajadores.

En esa ficha también podéis cambiar el formato que tiene la tabla, por si no os gusta el que ha cogido. En estilos de tabla podéis seleccionar el primer estilo, el estilo ninguno... Y así se quitará.

Podemos quitar el estilo aplicado a la Tabla.
Podemos quitar el estilo aplicado a la Tabla.


miércoles, 19 de noviembre de 2014

Crear un ComboBox en la Ribbon de Excel con XML y el Custom UI Editor.

Curso:
Formato:
Artículo/Tutorial.
Archivos necesarios:Personal v0.01.xlsm.
ImagenesCombo.rar.
Anterior Artículo/Tutorial:Act. y Des. Botones...
Siguiente Artículo/Tutorial:Próximamente.
Versión Vídeo/Tutorial:Próximamente.

Vamos a crear un comboBox con imágenes en la Ribbon.
ComboBox con imágenes en la Ribbon.

Seguimos con los artículos dedicados a la personalización de la Interface de Excel usando XML y VBA. Aparcamos de momento el tema de los botones y empezamos con otro control de los que podemos usar en nuestras fichas personalizadas, el comboBox o Cuadro Combinado. ¿Qué es un comboBox? Bueno pues se trata de uno de los controles más usados en todos los programas, son controles que muestran listas, en las que podemos seleccionar alguno de sus elementos. En realidad podemos seleccionar y escribir, por eso se llaman cuadros combinados. Son una combinación de un cuadro de texto en el que podemos escribir y una lista en la que podemos seleccionar. Por ejemplo, en la siguiente imagen podemos ver el cuadro combinado que permite aplicar formatos numéricos a las celdas de Excel.

ComboBox para seleccionar el formato numérico en Excel.
ComboBox para seleccionar el formato numérico en Excel.

En este artículo nos vamos a centrar en como crearlo, en las opciones que tenemos para variar su aspecto físico, su apariencia. En el siguiente artículo conseguiremos que funcione, como ejemplo haremos lo necesario para que al seleccionar una de las opciones que aparecen en un cuadro combinado, se aplique un filtro. Para realizar los mismos pasos que yo, os he dejado para descargar el documento y las imágenes que uso en el artículo, podéis realizar la descarga a continuación o al inicio del artículo en su ficha descriptiva.


Antes de empezar a crear nuestro primer comboBox os voy a contar un detalle. En la Ribbon podemos crear otro control muy parecido a un comboBox, llamado dropDown. Un dropDown es como un cuadro combinado, pero sin la posibilidad de escribir en el. Es decir, si sólo quiero permitir seleccionar un elemento  y no quiero permitir escribir, esa debería ser mi opción. A mi particularmente siempre me gusta más la opción de los comboBox, pero que sepáis que también tenéis esa otra opción de la que ya hablaremos. De todas las maneras para lo que queremos hacer en este caso, la mejor opción es el comboBox. La idea es que con lo que se seleccione en el comboBox se aplicarán filtros, es decir el texto que se quedará seleccionado en el comboBox será parte del criterio de un filtro. Bueno pues para eso es mejor el comboBox porque es muy fácil acceder al texto que se ha quedado seleccionado. Por el contrario, en un DropDown, no se puede acceder fácilmente al texto que se queda seleccionado. Cuando veamos los dropDown ya veremos que se puede hacer y que no. De momento quedaros con que un comboBox, es la mejor opción si queremos acceder al texto que se queda seleccionado. En la siguiente imagen podéis ver los dos controles, la única diferencia visual que podemos ver a primera vista es que en el de la izquierda se puede escribir, es el comboBox.

comboBox y dropDown. En el primer se puede escribir, en el segundo no.
comboBox y dropDown. En el primer se puede escribir, en el segundo no.

Todo el trabajo que hay que realizar en este artículo lo vamos a realizar en el Custom UI Editor, por lo tanto accedemos a él y abrimos el documento descargado. A Excel solo vamos a ir para ver como queda el código XML que iremos escribiendo, para ver como va quedando el comboBox. Para empezar vamos a crear un customUI para la versión 2010 de Excel. Como ya hemos visto el proceso en artículos anteriores, no entro en detalles. En la siguiente imagen podéis ver como se hace desde el menú Insert.

Insertamos un customUI para Excel 2010.
Insertamos un customUI para Excel 2010.

A continuación debemos añadir algunas líneas de código XML para definir la personalización que vamos a crear y los elementos contenedores en los que vamos a crear el comboBox. El código debe quedar como veis a continuación.

<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
  <ribbon>
    <tabs>
      <tab id="fichaRecursosHumanos" label="Recursos Humanos" insertBeforeMso="TabHome">
        <group id="grupoEmpleados" label="Empleados">
          
        </group>
      </tab>
    </tabs>
  </ribbon>
</customUI>

Estas líneas ya las hemos comentado en los artículos anteriores, básicamente creamos una ficha personalizada que aparece justo antes de la ficha Inicio y en su interior tiene un grupo de controles. En la siguiente imagen podéis ver el resultado de esas líneas de código.

Creamos una ficha personalizada con un grupo de controles.
Creamos una ficha personalizada con un grupo de controles.

Dentro del grupo que hemos creado, es donde irá el comboBox. Para hacerlo debemos escribir dentro de las etiquetas group las siguientes líneas de código, debe quedar como vemos a continuación:

<group id="grupoEmpleados" label="Empleados">
  <comboBox id="comboPoblacion" label="Selecciona una población: ">
    
  </comboBox>
</group>
  

Con la etiqueta comboBox definimos cuadros combinados, en concreto aquí hemos creado un comboBox identificado como comboPoblacion y que muestra un texto al lado, en el que se puede leer que debemos seleccionar una población. Como ya sabéis el atributo id identifica al control y en este caso la etiqueta label controla el texto que aparece justo al lado del cuadro combinado, es el texto que ayuda a saber que es lo que debemos seleccionar. En la siguiente imagen podéis ver como ha quedado el comboBox.

ComoBox vacío creado en la ficha personalizada.
ComoBox vacío creado en la ficha personalizada.

En el siguiente paso vamos a dar contenido al cuadro combinado. En este caso se trata de un cuadro combinado con opciones fijas. Es decir, tiene las mismas opciones todo el rato por lo que las opciones las podemos definir en el código XML. Si por ejemplo se tratará de un comboBox que debe cargar las opciones de una hoja de Excel, el proceso para darle contenido sería diferente a lo que vamos hacer ahora. En este caso para darle contenido debemos usar elementos item, escribimos lo siguiente y os comento que hemos hecho.

<comboBox id="comboPoblacion" label="Selecciona una población: ">
  <item id="itemTodas" label="*--Todas las Poblaciones--*"/>
  <item id="itemBarcelona" label="Barcelona"/>
  <item id="itemMadrid" label="Madrid"/>
  <item id="itemPamplona" label="Pamplona"/>
</comboBox>

Por cada opción que aparece en el cuadro combinado debemos utilizar una etiqueta item, debemos definir un item para cada opción, en este caso cuatro. El filtro que aplicaremos en el próximo artículo, utilizará las poblaciones a las que pertenecen unos trabajadores, para mostrar sólo los que trabajan en esa población. He creado cuatro opciones, una para mostrar los datos de todas las poblaciones, otra para mostrar los datos de los trabajadores de Barcelona, otra para los de Madrid y otra para los de Pamplona. Si abrís el documento en Excel esto es lo que tendremos.

Con item creamos cada una de las opciones que se muestran en el comboBox.
Con item creamos cada una de las opciones que se muestran en el comboBox.

En cada item he usado dos atributos, el id y label. Como siempre el id es para identificar, en este caso cada opción que aparece, pero a nosotros nos da igual no lo usamos. Label en este caso se corresponde con el texto que mostrará cada opción. Así ya tendríamos creado el comboBox, pero evidentemente no pasa nada si selecciono una de las opciones, eso lo dejamos para el siguiente artículo. Ahora vamos a conocer algunos atributos más que tiene comboBox e item para ajustar más su apariencia.