BannerAnuncios

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

jueves, 24 de agosto de 2017

Curso de Macros y Programación de Excel con VBA en Udemy. Crear, copiar y eliminar Gráficos.

Este vídeo, forma parte del curso Macros y VBA: Programa, automatiza y amplía Microsof Excel,  que podéis adquirir en Udemy con un 90% de descuento. Podéis acceder al vídeo de forma GRATUITA, lo he publicado en YouTube.

Curso: Macros y VBA 
Excel en Udemy.
Formato:Vídeo Curso Udemy.
Acceso al vídeo
en YouTube:
Crear gráficos en Excel, puede ser uno de los trabajos que más tiempo nos puede costar, puede ser una de las tareas que más nos gustaría automatizar de alguna manera. Bueno, pues en este vídeo que os presento hoy, explico como crear, eliminar, copiar y mover gráficos, dentro de las hojas de Excel. El trabajo con gráficos desde VBA es uno de los más complicados por como organiza Excel este tipo de objetos dentro de la jerarquía de objetos que forman Excel. En la explicación os mostraré el camino que hay que seguir y cuáles son las colecciones de objetos que tenemos que utilizar para conseguirlo.

Es un ejemplo en el que tendremos unos datos en diferentes hojas y también tendremos una hoja que servirá para centralizar los gráficos que se pueden crear con los datos que hay en cada una de las hojas. Al seleccionar una celda de esta hoja, se creará un gráfico que corresponderá a la hoja cuyo nombre se ha seleccionado. En el siguiente GIF podéis ver el resultado final.



Es un ejemplo muy bueno de trabajo con gráficos en el que como siempre explicaré otros conceptos secundarios como evento Selection Change de las hojas de Excel. Este evento se produce cuando se selecciona una celda.

A continuación os dejo el vídeo y también os recuerdo que ejemplos como este y mucho más interesantes y potentes podéis ver en el Curso Completo de Macros y VBA que he publicado en Udemy. Podéis inscribiros con un 90% de descuento y así accederéis a todo el curso y material complementario que uso en los vídeos.
  • Nombre: Curso de Macros y Programación de Excel con VBA en Udemy. Crear, copiar y eliminar Gráficos.
  • Fecha de publicación: 23/08/2017.



miércoles, 28 de octubre de 2015

Curso Excel 2010. Bases de Datos: Filtros Avanzados 5ª Parte.

Una de las opciones más interesantes y desconocidas que tienen los Filtros Avanzados, es la de obtener Registros Únicos. Por ejemplo, con esta opción, podemos crear listas de Valores Únicos que posteriormente podemos usar en otras herramientas de Excel como lista de opciones a seleccionar. Este va ser el tema principal de esta sesión, pero como siembre habrá mucho más.

Curso: Excel 2010
Formato:Vídeo/Tutorial.
Archivos necesarios:Filtros Avanz...xlsm
Acceso a los vídeos
en Youtube:
Esta sesión, al igual que la anterior, también es un poco especial. Principalmente, el objetivo de esta sesión es explicar la opción de Registros Únicos de los Filtros Avanzados. Está opción, está pensada para obtener listas únicas de registros, pero en realidad esconde dos funciones: Podemos obtener listas únicas de registros y de valores. En realidad, el uso más habitual que se le suele dar a esta opción es el de obtener listas de valores. Por ejemplo, imaginemos que tenemos un listado de Clientes y necesitamos obtener la lista de ciudades en la que tenemos clientes... Bueno pues con esta opción lo podría conseguir, obtendría de las ciudades de los clientes una lista de ciudades únicas, una lista de valores únicos. Aunque tenga por ejemplo 10 clientes en Madrid, esta ciudad solo aparecerá una sola vez en la lista, al igual que el resto de ciudades en las que tengamos clientes. Se puede decir que obtenemos los valores que aparecen en unos datos, pero sin repeticiones, una sola vez cada valor.

El anterior sería el ejemplo más típico de esta opción, obtenemos los valores únicos de una columna de datos. Pero, esta opción debe su nombre, Registros Únicos, a obtener valores únicos en varias columnas de datos. Encontrar un uso de esta posibilidad es más difícil, pero por ejemplo vamos a imaginar que tenemos una tabla de Ventas y en esa tabla tenemos guardada la información de los nombres de los clientes por separado, una columna para el nombre y otra para cada uno de los apellidos. Bueno pues con esta opción podríamos obtener los nombres de los clientes de forma única, ya que comprobaría la unicidad del dato en estas tres columnas. Es decir, devolvería las combinaciones únicas de las tres columnas. Este uso es un poco más confuso de explicar y de contar sin verlo en acción, lo mejor es que lo veáis en el vídeo con un ejemplo.

En Access, también existe esta opción, pero en ese caso son opciones separadas. Hay una opción para Valores Únicos y otra para Registros Únicos, pero en ambos casos el funcionamiento es similar a lo que os explico en esta sesión, solo que en Excel, se hace con una sola opción. Por lo tanto, la opción de Registros Únicos es el tema principal u objetivo de esta sesión. Pero, como siempre, os he preparado más material para que sigamos viendo cómo podemos utilizar los Filtros Avanzados junto con otras herramientas.

En este caso he preparado un ejercicio en el que utilizaremos una lista de valores únicos junto con validación de datos. Esta lista obtenida con un Filtro Avanzado la utilizaremos como lista de opciones a seleccionar en un criterio, para otro filtro avanzado. Es muy interesante este ejercicio, por que veremos cómo mantener actualizada la lista de opciones automáticamente. El ejemplo concreto es que crearemos una lista de ciudades de unos trabajadores, bueno pues conseguiremos que cuando se modifiquen o se añadan ciudades a esa lista de trabajadores, la lista de ciudades se actualice automáticamente, sin que nosotros tengamos que aplicar el filtro de forma manual. Para conseguir esto, vamos a utilizar Programación, Macros, Fórmulas, Validaciones de Datos... Aunque es un poco largo, creo que es de los mejores ejemplos que he creado hasta ahora y de los que más ideas podéis sacar para vuestros documentos.

Para seguir las explicaciones podéis descargar en el siguiente enlace el archivo que uso en el vídeo.


Como siempre aquí tenéis los enlaces para ver el vídeo, espero que os guste:

  • Nombre: Curso Excel 2010. Bases de Datos: Filtros Avanzados 5ª Parte.
  • Versión de Access: ES/Español.
  • Audio: Español.
  • Subtítulos: Español.
  • Duración Vídeo 1: 28m 40s.
  • Duración Vídeo 2: 28m 31s.





Hasta la próxima sesión, en ella crearemos un gran ejercicio ;)

martes, 13 de octubre de 2015

Curso Excel 2010. Bases de Datos: Filtros Avanzados 4ª Parte.

Esta sesión dedicada a los Filtros Avanzados es un poco extraña, ya que no voy a tocar ninguna característica nueva fundamental de los filtros, pero contiene muchísimos detalles del funcionamiento que tiene esta herramienta. Entre otras cosas os voy a explicar cómo utilizar el criterio igual, que aunque os lo parezca, realmente no lo estabais usando hasta ahora. Y también os voy a mostrar alguna situación problemática que nos podemos encontrar en el uso de los Filtros Avanzados.

Curso: Excel 2010
Formato:Vídeo/Tutorial.
Archivos necesarios:Filtros Avanz...xlsm
Acceso a los vídeos
en Youtube:
En esta sesión, como ya os he dicho me voy a centrar en dos detalles muy importantes del uso de los Filtros Avanzados. Para empezar os voy a enseñar a utilizar el igual en los criterios. Aunque a vosotros os lo parezca, realmente no estábamos utilizando el igual como criterio en la mayoría de los casos que hemos planteado en las sesiones anteriores. Cuando trabajamos con columnas de tipo texto, habitualmente cuando queremos plantear un criterio de igualdad, no ponemos el igual en el criterio. Simplemente se indica la celda en la que está el valor escrito y con eso se piensa que ya está. Pero hoy os vais a llevar una sorpresa, eso no es así, si no ponemos criterio se usa el criterio Empieza por. Es decir no busca que el dato sea igual al criterio, devuelve los registros que empiezan por lo que indiquemos en el criterio. En esta sesión os voy a explicar cómo se debería plantear el criterio para utilizar el igual. Además de eso, en esta primera parte, también volveremos a usar los Filtros Avanzados junto con otras herramientas: Macros, Fórmulas, Validaciones... E incluso modificaremos una macro, entraremos al Editor de Visual Basic para cambiar un poco el código Visual Basic que tenemos en una Macro grabada.

En la segunda parte, os voy a explicar uno de los comportamientos caprichosos que a veces nos podemos encontrar en los filtros avanzados, en concreto con los campos numéricos. Precisamente el otro día alguien me planteaba una duda que es justo lo que voy a explicar aquí. Para los criterios usaba una fórmula tal y como os he explicado en las sesiones anteriores, pero a la hora de no aplicar criterios en un dato numérico, el filtro no le devolvía todos los resultados. No mostraba todas las filas de datos al establecer con una fórmula que no debía haber criterio. Bueno pues esto es justo lo que os voy a explicar en la segunda parte de la sesión. No os creáis que esto puede ser algo aislado con lo que nunca os vais a encontrar, porque seguramente tarde o temprano os lo encontraréis, es algo que sucede más a menudo de lo que os podéis pensar.

En esta segunda parte también volveremos a utilizar los filtros junto con otras herramientas, pero como novedades principales usaremos dos cosas que todavía no habíamos utilizado. Utilizaremos un Cuadro Combinado para establecer un criterio y ocultaremos la zona de criterios para que no esté visible, para que sólo puedan crear los criterios con la zona que crearemos nosotros para interactuar.

Ya os digo que es una sesión un poco extraña porque no explico una "gran opción" de los Filtros Avanzados, pero explico muchos detalles de su funcionamiento y utilizamos muchísimas herramientas de Excel junto con los filtros, más de las que habíamos utilizado hasta ahora.


Para seguir las explicaciones podéis descargar en el siguiente enlace el archivo que uso en el vídeo.


Como siempre aquí tenéis los enlaces para ver el vídeo, espero que os guste:

  • Nombre: Curso Excel 2010. Bases de Datos: Filtros Avanzados 4ª Parte.
  • Versión de Access: ES/Español.
  • Audio: Español.
  • Subtítulos: Español.
  • Duración Vídeo 1: 25m 12s.
  • Duración Vídeo 2: 22m 53s.

martes, 12 de agosto de 2014

Artículo: Ejecutar una Macro o Código VBA desde un Botón de la Cinta de Opciones.

Resultado final del artículo
Resultado final del artículo.
En el artículo anterior creamos varios botones en una ficha personalizada y os hablé de algunas de las propiedades de los botones que se crean con la etiqueta "button". Pero no os hablé de la propiedad más importante, la que permite indicar que tiene que suceder cuando se pulsa el botón, la propiedad "onAction". En ella podemos indicar que macro o código VBA queremos que se ejecute al ser pulsado el botón. En este artículo la vamos a usar y veremos cómo enlazar los botones de la Cinta de Opciones con nuestras Macros o código VBA.

Para la explicación voy a seguir con el documento que creamos en el artículo anterior, pero en mi caso le he quitado el grupo "Albaranes" de la ficha "Facturación" y la ficha "Productos". He quitado casi todo lo que por el momento no vamos a utilizar. Si no lo tenéis, lo podéis descargar del siguiente enlace.


En la primera imagen del artículo, podemos ver cuál será el resultado visual final. Como podéis ver aparecen los dos botones que añadimos en el artículo anterior y uno tercer botón nuevo. Entre el segundo y el tercero he metido un separador que consiste en una línea vertical de separación. Primero vamos a realizar estos cambios, añadiremos el tercer botón y el separador.


Podemos utilizar el control separador para separar controles en los grupos de controles
Separador para separar controles en los grupos de controles.

Abrimos el documento en el Custom UI Editor y vamos con las modificaciones en el aspecto visual del grupo de controles "Facturas". En algunas ocasiones puede que queramos separar controles dentro de un mismo grupo, por ejemplo en este caso he querido separar de los otros dos el botón que permitiría eliminar facturas. Como es un poco peligros he decidido separarlo un poco. Para esto tenemos un control que podemos definir en el código XML y que se utiliza como separador, escribimos la siguiente líneas después de los dos botones que tenemos definidos del artículo anterior.

<separator id="separador01" />
<button id="botonEliminarFactura" label="Eliminar" size="large" imageMso="ReviewDeleteComment" />

Añadimos un separador con la etiqueta separator y un botón con button
Añadimos un separador con la etiqueta separator y un botón con button.

La primera línea que hemos añadido es completamente nueva, en ella usamos la etiqueta "separator" para añadir un separador entre los dos botones que ya existen y el que creamos en la siguiente línea. Como ya os he comentado como separador se crea una línea vertical, en la siguiente imagen lo podéis ver. Es una etiqueta muy sencilla lo único que hemos utilizado en su interior es la propiedad "id" para darle un identificador. Como podéis observar, al igual que la etiqueta "buton" no tiene etiqueta de cierre, se define en una sola etiqueta. Como en su interior no hay otros elementos no hace falta, todo en una sola etiqueta.

Después del separador hemos añadido otro botón que usaremos para eliminar facturas. Sobre los botones ya os hablé en el artículo anterior y de momento no hay nada nuevo que contaros en este. Para definirlo he utilizado las propiedades de las que ya os hablé.

Aspecto definitivo de la ficha Facturación
Aspecto definitivo de la ficha Facturación.

Una vez que tenemos el aspecto visual creado, vamos con el lógico, con el funcionamiento. Como os he dicho antes, de los botones no hemos utilizado la propiedad más importante que tienen, la que nos permite indicar que pasará cuando se pulsen. ¿De qué nos sirve un botón si no pasa nada al pulsarlo? De los tres botones que tenemos, dos los vamos a modificar para que hagan algo al ser pulsados. Va ser muy sencillo, ya os he dicho que en estos artículos sobre todo me quiero centrar en conocer todo lo relacionado con el XML. Ya tendremos tiempo de crear código más complejo para ser ejecutado desde la Cinta de Opciones. De momento lo único que pasará es que cuando pulsemos el botón "Nueva" se añadirá una nueva hoja al documento y al pulsar el botón "Eliminar" se eliminará la hoja en la que estamos en ese momento. Evidentemente ninguna de las dos tareas se corresponde con crear nuevas facturas y eliminarlas, pero ya os digo que eso no es lo que estamos aprendiendo en estos artículos. Vamos con el primero, modificamos el código del primer botón para añadir una nueva propiedad, la propiedad "onAction":

<button id="botonNuevaFactura" label="Nueva" size="large" imageMso="FileNew" onAction="Facturas.CrearFactura"/>

La propiedad "onAction" es la responsable de controlar que se hace cuando se pulsa un control, en este caso un botón. En ella tenemos que indicar el nombre de la macro o procedimiento VBA que queremos que se ejecute al ser pulsado el botón. Aquí le he dicho que se ejecutará un procedimiento llamado "CrearFactura" que está situado dentro de un módulo llamado "Facturas". Ahora diréis, ¿Y dónde está esto? Bueno pues cuando acabemos en el Custom UI Editor debemos ir a Excel para crear ambas cosas, el módulo y el procedimiento. Es cuanto llegará el momento de programar. En cuanto al XML ya no hay nada más que hacer, esto es todo para este botón. Nos falta hacer lo mismo con el tercer botón, el que eliminará las facturas.

<button id="botonEliminarFactura" label="Eliminar" size="large" imageMso="ReviewDeleteComment" onAction="Facturas.EliminarFactura"/>

Nada nuevo, en este caso le indicamos que cuando se pulse el botón se ejecutará el procedimiento "EliminarFactura" situado en el módulo "Facturas". El código XML de todo el documento quedará como veis en la siguiente imagen, el siguiente paso es pasar a Excel para escribir el código VBA.

Código XML con las llamadas a los Procedimientos de VBA.