BannerAnuncios

Mostrando entradas con la etiqueta ComboBox. Mostrar todas las entradas
Mostrando entradas con la etiqueta ComboBox. Mostrar todas las entradas

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*:

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.

sábado, 30 de junio de 2012

Curso Práctico Programación VBA Excel 2007: Últimos Detalles. Sesión 14.






Saludos!!!!!!!

Aquí estamos de nuevo, después de mucho tiempo sin publicar, por fin lo hago de nuevo para finalizar con las sesiones dedicadas al ejercicio práctico en VBA para Excel 2007. Llevo 5 días intentando acabarla, pero por una cosa u otra, me he encontrado con un montón de problemas y dificultades, de ahí el sobrenombre de "Sesión Maldita". Esta es la última sesión que dedicaremos a este ejercicio y en ella vamos a centrarnos en los siguientes detalles.

Empezaremos con detalles que quedaron pendientes de los botones que usamos para imprimir los informes. Para arreglarlos usaremos dos propiedades muy interesantes de los cuadros combinados, ListIndex y ListCount.

A continuación protegeremos la hoja Análisis para evitar que se puedan hacer modificaciones en esa hoja. Sera una protección muy sencilla para que conozcáis cómo funciona el sistema de bloqueo y veremos como algunas cosas que teníamos ya desarrolladas, dejarán de funcionar por proteger la hoja. Arreglaremos todos esos problemas. En esa hoja también desactivaremos la posibilidad de seleccionar celdas y de hacer clic con el botón secundario del ratón.

El siguiente paso será añadir un botón a la ficha personalizada que hemos ido creando a lo largo del curso, cuando pulsemos el botón se cerrará Excel. Veremos como algo que parece muy simple se complicará un poco más de lo esperado.

Seguiremos ocultando y desactivando algunas partes de la interface de Excel. Entre otras cosas ocultaremos todas las fichas de la cinta de opciones excepto la que hemos desarrollado durante el curso. También ocultaremos y desactivaremos muchas de las opciones que aparecen en el botón de Office. Todo esto lo haremos desde el Custom UI Editor.

Continuaremos añadiendo código para que cuando se cierre el documento se guaren los cambios automáticamente. Esta tarea es muy sencilla de realizar. Ya para finalizar, protegeremos el código que hemos desarrollado, el código VB, para evitar que cualquiera pueda entrar al editor y haga modificaciones. Con lo que vamos hacer, ni siquiera lo podrán ver.

Esto es lo que vamos hacer en esta sesión final. Se podría seguir añadiendo más funcionalidades sobre este ejercicio, pero esto es lo que tengo programado para el curso presencial y aquí acabaremos. De hecho, en los cursos presenciales casi nunca me suele dar tiempo a ver todo. Aquí sí!!!!

viernes, 11 de noviembre de 2011

Curso Práctico Programación VBA Excel 2007: Importar Datos de Access, ADO. Sesión 03.






Saludos!!!!!!!

Volvemos con otra sesión dedicada a la realización del ejercicio práctico, que desarrollamos en el curso presencial, que imparto en Forem Navarra, dedicado a la programación en Excel 2007 con VBA.

En la sesión anterior, la segunda que dedicábamos a este ejercicio nos centramos en conseguir que al seleccionar un país en el cuadro combinado de la hoja “Analisis”, nos mostrara los datos de producción del país seleccionado.

En esta sesión continuamos donde lo dejamos y nos vamos a centrar en la siguiente tarea: Vamos a crear el código que se encargue de importar los datos de Access. Recordad que hasta esta sesión los datos que utilizábamos son los que yo os he dado en la hoja “Datos”

Para conseguir realizar la importación de datos utilizaremos ADO, ActiveX Data Objects. Estos objetos permiten que podamos acceder a datos que se encuentren almacenados en bases de datos externas. En este caso a una base de datos de Access.

En esta sesión conseguiremos que se importen los datos de una base de datos llamada “Produccion.accdb”. Esta base de datos estará situada en la misma carpeta en la que tenemos el libro de Excel en el que estamos escribiendo el código. Más adelante modificaremos este código para incluso dar la opción de seleccionar otra base de datos diferente, pero de momento lo hacemos así.

Una vez finalizada esta parte, dejaremos todo listo para la próxima sesión en la que ya ataremos todos los cabos sueltos que tiene ahora mismo el código que estamos realizando.

sábado, 29 de octubre de 2011

Curso Práctico Programación VBA Excel 2007: Filtrar Datos con un ComboBox y Filtros Avanzados.






Saludos!!!!!!!

Por fin vuelvo, después de dos grabaciones y tres cortes de luz, seguimos con las sesiones dedicadas a la realización del ejercicio práctico, que desarrollamos en el curso presencial de VBA para Excel. Este curso se desarrolla en Forem Navarra.

En la sesión anterior, la primera que dedicábamos a este ejercicio os presente el ejemplo y os mostré unas pinceladas de lo que hace el ejercicio una vez finalizado. Además empezamos a desarrollarlo y lo principal que resolvimos en esa sesión fue que al finalizar teníamos un procedimiento que me cargaba los países de los que teníamos datos de producción en un cuadro combinado.

En esta sesión continuamos donde lo dejamos y nos vamos a centrar en conseguir que al seleccionar un país del cuadro combinado nos muestre en la hoja análisis los datos de ese país. Esta va ser la tarea que vamos a desarrollar en esta sesión. Para resolver este problema volveremos a utilizar la herramienta "Filtros Avanzados".

Es una sesión en cuanto a duración más corta que la anterior. La siguiente sesión será bastante más larga que esta y en ella iremos arreglando pequeños detalles que hemos dejado todavía sin solucionar y añadiremos el código necesario para la importación de los datos desde una base de datos de Access. Poco a poco el ejercicio irá cogiendo forma e irá quedando completamente automatizado. No os asustéis porque ahora el código esté un poco verde, enseguida lo arreglaremos todo.

sábado, 15 de octubre de 2011

Cargar las Opciones de un ComboBox o Cuadro Combinado de Excel usando Macros y Filtros Avanzados.

Empezamos con el Curso Práctico de Programación de Macros en Excel. En esta primera sesión os mostraré el ejercicio que vamos a desarrollar y empezaremos a dar los primeros pasos en él. Entre otras cosas crearemos un ComboBox en el que cargaremos las opciones con una Macro.

Curso: Curso Práctico VBA.
Formato:Vídeo/Tutorial.
Archivos necesarios:Curso Práct 01...xlsm
Siguiente Sesión:Filtrar Datos...
Acceso al vídeo
en Youtube:
Empezamos un nuevo curso dedicado a la programación en Excel, pero este es un curso un poco especial, se trata de un curso orientado sobre todo a temas prácticos. Como ya sabéis muchos, anteriormente me dedicaba a impartir cursos presenciales de los mismos temas que desarrollo en el Blog y en el Canal y uno de los que impartía era el curso dedicado a la Programación de Excel. Durante ese curso, hacía dos tipos de sesiones, por un lado sesiones como las que ya he publicado en el Blog, en las que explicaba conceptos generales del lenguaje VBA. Y por otro lado también realizaba sesiones en las que iba desarrollando un ejercicio con el que practicamos todo lo visto en el otro tipo de sesiones, combinándolo con conceptos nuevos relacionados con las herramientas que más se suelen utilizar en Excel. Esta es la primera sesión dedicada a la creación de ese ejercicio.

Este curso sobre todo sirve para acercaros a la programación de Excel desde un punto de vista más práctico de lo que suelen ser los cursos de VBA en Excel. Vais a ver como manejar las herramientas más potentes de Excel desde una Macro con VBA. Es un ejercicio muy completo y creo que os va resultar realmente útil a la hora de resolver problemas reales que tengáis en vuestro trabajo. Para que os hagáis una idea se van a tratar temas como la importación de datos desde una base de datos de Access, la conexión de Excel con documentos de Word, creación de formularios, creación de Tablas Dinámicas y muchos temas más que creo que son muy  interesantes.

En el curso uso la versión 2007 de Excel, pero prácticamente al 100%, todo funcionará en las versiones posteriores, Excel 2010, 2013, etc... En esta sesión principalmente haremos lo siguiente:

  • Os muestro el ejercicio casi acabado, para que os hagáis una idea de lo que vamos a conseguir.
  • Os explicaré como añadir un ComboBox a una hoja de Excel.
  • Aprenderemos a crear filtros avanzados desde una Macro.
  • Los resultados que devolverán esos Filtros Avanzados los utilizaremos para cargar las opciones de un ComboBox, también desde una macro.