BannerAnuncios

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

jueves, 25 de septiembre de 2014

Vídeo: Ejecutar Macros o Código VBA desde los Botones de la Cinta de Opciones.



En la sesión anterior, aprendimos a crear botones en las fichas personalizadas de la Ribbon de Excel usando código XML. Los botones que creamos tenían una representación visual en Excel, pero funcionalmente no ofrecían nada, no funcionaban. En esta sesión nos vamos a dedicar a eso, aprenderemos como ejecutar las "Macros" o "Código VBA" que desarrollemos en Excel, desde los botones que creemos en la "Cinta de Opciones".

En esta sesión el trabajo con el código XML va ser mínimo, casi no vamos a trabajar en el "Office Custom UI Editor". Para conectar los botones con las macros lo único que debemos usar en el código XML es la propiedad "onAction" de los botones "button". En ella simplemente hay que indicar el nombre de la "Macro" que queremos que se ejecute al ser pulsado el botón y después sólo nos quedará desarrollar las macros en Excel.

Una vez estemos en Excel, en realidad el código que hay que escribir de VBA para conectar con los botones también es mínimo. Lo único que necesitamos es crear procedimientos de VBA que reciban un argumento de tipo "IRibbonControl", es el único requisito que hay que cumplir en cuanto a cómo deben ser las macros que ejecutemos desde los botones de la "Ribbon". El resto del código a desarrollar ya dependerá de las necesidades específicas de cada uno. En este vídeo por ejemplo, en ese sentido, vamos a ir poco más lejos que en el artículo que publiqué en el Blog sobre este tema, voy a crear un ejemplo algo más complicado.

Vamos a crear un ejemplo que "mate" dos pájaros de un tiro. Servirá para aprender a conectar las macros con los botones de la "Cinta de Opciones". Y también servirá para ayudaros a encontrar la solución a una de las dudas que más me soléis plantear: Como guardar en un documento nuevo de Excel una copia de una factura rellenada. En este ejemplo vamos a crear dos botones en una ficha personalizada de Excel que al pulsarlos, uno creará nuevas facturas y el otro las guardará. Ojo, que se trata de daros "pistas" para solucionar esa necesidad que algunos tenéis. Muchas veces pedís con cierta ligereza este tipo de ayuda y no os dais cuenta que crear un documento para gestionar estos temas requiere mucho tiempo y trabajo.

Documento con el que trabajaremos en el Vídeo
Documento con el que trabajaremos en el Vídeo.

jueves, 28 de agosto de 2014

Artículo: Grabar, Ejecutar, Eliminar y Modificar Macros en Excel 2013.

Resultado de Ejecutar la Macro
Resultado de Ejecutar la Macro.
En el artículo anterior dedicado a las macros, nos paramos justo en el momento antes de empezar la grabación de una Macro. Sobre todo, lo dediqué a explicar muchas de las opciones y pasos previos que hay que conocer antes de empezar con la grabación. En este artículo vamos a continuar desde ese punto, grabaremos una pequeña macro de ejemplo y finalizaremos el artículo ejecutándola. En concreto veremos dos de las posibilidades que tenemos para ejecutar macros, en artículos posteriores veremos el resto. A la vez que ejecutamos la macro que vamos a crear también os hablaré de cómo modificar y eliminar macros.

Lo primero que hay que tener claro a la hora de grabar una macro, son los pasos que queremos grabar. Si os confundís durante la grabación, las equivocaciones también se grabarán y la macro seguramente no hará su trabajo, o hará trabajo de más que no debería hacer. Para este artículo vamos a crear algo muy sencillo, vamos a grabar una macro que asignará en unas celdas los días de la semana y posteriormente dará a esas celdas un formato que ahora os comentaré. Los días se van a crear en las celdas que van de la A1 a la G1, siempre en esas celdas. Vamos a imaginar que estos pasos los repetimos habitualmente y queremos tenerlos automatizados para que no nos quiten mucho tiempo de trabajo.

Resultado Final de la Ejecución de la Macro
Resultado Final de la Ejecución de la Macro.

Vamos con la macro. Cuando grabéis una macro, os aconsejo que practiquéis antes los pasos que vais a grabar. Si la macro es muy compleja, conviene que lo hagáis varias veces e incluso que los apuntéis en un papel a modo de guion, para no confundiros. Como aquí no hay diferencia entre que practiquemos o grabemos, vamos a empezar directamente con la grabación. Por lo tanto, creamos un documento nuevo en Excel y en la ficha "Desarrollador" pulsamos el botón para empezar la grabación de la macro, para que aparezca la "Grabadora de Macros".

Botón para empezar a Grabar la Macro
Botón para empezar a Grabar la Macro.

En las opciones iniciales de la macro le vamos a indicar que la macro se llamará "CrearSemana" y que se guardará en el documento actual, en ese libro. Como atajo de teclado o método abreviado le vamos a indicar las teclas Ctrl + Mayúsuculas + S. Recordad que en artículo anterior os aconsejé utilizar la tecla Mayúsculas en los atajos de teclado, para evitar malentendidos con los atajos de teclado de Excel. En la descripción podéis escribir lo que queráis, como la macro no es muy importante tampoco es fundamental que lo hagamos. Lo habitual ya sabéis que es escribir una pequeña descripción de que hace la macro.

Opciones Iniciales de la Macro
Opciones Iniciales de la Macro.

Bueno pues ahora, desde el momento en el que aceptemos, todo lo que hagamos se irá grabando y formará parte de la macro. Vamos a realizar los siguientes pasos, hacer todos lo mismo que yo.
  1. Seleccionamos la celda A1, escribimos en ella el texto "Lunes" y confirmamos el contenido de la celda pulsando la tecla "Intro".
  2. Primer Paso de la Macro.
  3. A continuación seleccionamos la celda A1 otra vez y una vez seleccionada, hacemos clic en el cuadrito situado en la parte inferior derecha de la celda... Y sin soltar, arrastramos hasta llegar a la celda G1, hasta que aparezca el "Domingo".
  4. Arrastramos el contenido de la celda A1 hasta que aparezca el Domingo en la G1
    Arrastramos el contenido de la celda A1 hasta que aparezca el Domingo en la G1.
  5. Ahora, sin quitar la selección de celdas que se ha quedado después de arrastrar... Aplicamos en esas celdas los formatos que os he indicado: Centrado, Negrita, Color de Fondo Negro y Color de Fondo Blanco. Accedemos a la ficha "Inicio" y los aplicamos.
  6. Aplicamos los formatos a las celdas seleccionadas
    Aplicamos los formatos a las celdas seleccionadas.

  7. Por último, como vamos a empezar a escribir justo debajo del "Lunes", seleccionamos la celda A2 para que al finalizar la macro estemos ya situados en esa celda.

  8. Seleccionamos la celda A2
    Seleccionamos la celda A2.

Bueno, pues ya están todos los pasos que queríamos grabar, ahora debemos detener la grabación de la macro, en la ficha "Desarrollador" pulsamos el botón "Detener Grabación". Es el mismo que servía para empezar la grabación, solo que ahora nos permite pararla.

Detenemos la Grabación de la Macro
Detenemos la Grabación de la Macro.

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.

sábado, 11 de junio de 2011

Curso Programación VBA Excel 2010: Módulos y Procedimientos. Sesión 01.






Saludos!!!!!!!!!!

Continuamos con el curso de Programación en Excel 2010. Visual Basic en Excel. Con esta sesión comenzamos a desarrollar con todo detalle la sintaxis del lenguaje de programación Visual Basic y comenzamos a trabajar con los objetos que componen Excel.

Mi idea a partir de aquí es crear sesiones Teórico-Prácticas y sesiones en las que desarrollaremos ejercicios para practicar lo visto en esas sesiones. De momento veremos unas cuantas del primer tipo, así los ejercicios que desarrollaremos en el otro tipo de sesiones serán mucho más interesantes.

En esta sesión explico con detalle conceptos como Módulos, Procedimientos y algunas instrucciones básicas que tiene este lenguaje.

También empezaremos a dar los primeros detalles de los objetos de Excel, en concreto hablaremos de las celdas o Rangos y utilizaremos otro tipo de objetos, los Botones de Comando o CommandButtons.

A parte de comentar conceptos teóricos vamos a ir creando una pequeña calculadora con la que os voy explicando esos conceptos.

Esta sesión dura casi 50 minutos, está dividida en dos vídeos. Cuesta mucho trabajo y tiempo preparar sesiones tan largas. Tened paciencia que el curso continuará pero a su ritmo.

Conforme avancemos en las sesiones os prepararé documentos resumen en los que aparecerán las instrucciones que utilizamos en el código o información como por ejemplo cuales son las normas para nombrar en Visual Basic a los objetos, que se comentan en esta sesión.

jueves, 7 de abril de 2011

Curso Excel 2010. Macros: Primeros Pasos. Sesión 04.






Saludos!!!!!!!!!!

Bueno, pues aquí estamos de vuelta con las macros. Tenía pensado que esta fuera la ultima sesión. Pero según iba preparando el guion, me daba cuenta que eran demasiadas cosas. Por lo tanto, según mis previsiones esta será la penúltima sesión... ;)

En esta sesión voy a comentar algunos detalles que comente en el momento de grabar nuestra primera macro, pero no los pusimos en práctica.

Por ejemplo veremos como hacer que una macro esté disponible en todos los documentos de Excel. Esto nos causará algún problema que solucionaremos con Visual Basic.

Además comprobaremos que la grabadora de macros no es capaz de grabar todos los pasos que yo haga durante la grabación. Y de nuevo veremos que este problema lo podemos solucionar con Visual Basic.

En esta sesión intento que siga creciendo el interés por aprender Visual Basic, mostrando como algunos problemas que nos encontramos, se solucionan usándolo.

Por último, explicaré una manera diferente de ejecutar las macros. Crearemos un botón en la hoja de trabajo, que al pulsarlo ejecuta una macro.

Esto es todo lo que veremos en esta sesión. En la "última", acabaré explicando el resto de maneras de ejecutar una macro. Por ejemplo, desde la barra de acceso rápido o desde la cinta de opciones.

sábado, 2 de abril de 2011

Curso Excel 2010. Macros: Primeros Pasos. Sesión 03.







Saludos!!!!!!!!

Pues ya está, aquí, recién sacada del horno. La tercera parte de los primeros pasos con las macros. Ha costado pero el resultado me gusta mucho. En estos dos vídeos comentamos como grabar macros con referencias relativas y hacemos una pequeña incursión en el mundo VBA (Visual Basic para Aplicaciones).

Esta incursión ha sido necesaria para que conozcáis con detalle las diferencias entre utilizar referencias relativas o no. También comentamos algún pequeño detalle como eliminar macros y cambiar sus opciones. Pero estos considero que son temas menores.

Pues nada más, espero que os gusten y nos vemos en la cuarta y última parte (creo), de este tema.

martes, 29 de marzo de 2011

Curso Excel 2010. Macros: Primeros Pasos. Sesión 02.






Hola de nuevo

Para empezar con fuerza la semana continuamos con la segunda parte de "Macros en Excel, Primeros Pasos". En esta ocasión es un solo vídeo en el que tratamos sobre todo la seguridad de las macros.

Pensaba tratar algún tema más, pero entre que quiero aumentar el ritmo de publicación de vídeos y calculaba que iba tener que dividir el vídeo en tres o cuatro partes, he preferido dejar esos temas para las sesiones posteriores.

Para seguir el vídeo necesitáis el archivo que guardamos en la primera parte de este tema, Curso Excel 2010. Macros: Primeros Pasos. Sesión 01., si no lo tenéis lo podéis descargar del siguiente enlace:


Si descargáis mi documento y lo intentáis abrir, puede que os lo abra en Vista Protegida. Debéis pulsar el botón "Habilitar Edición" para poder realizar cambios.


viernes, 25 de marzo de 2011

Macros en Excel 2010: Cómo Crear y Grabar una Macro con la Grabadora de Macros. Primeros Pasos.



Hola a todos

Os he preparado para el fin de semana un vídeo sobre uno de los temas que más me gustan de Excel, las macros. Este tema suele ser uno de los más demandados en los cursos de Excel Avanzado. Es sin duda una de las herramientas más potentes que tiene Excel y que permiten ahorrar tiempo y horas de trabajo.

En este primer vídeo comentamos que es una macro y para que las podemos utilizar. Hay mucha gente tienen una idea equivocada de lo que es una macro y en la primera parte de este vídeo, intento poner algo de luz en ese sentido. Además crearemos nuestra primera macro y comentaremos muchos detalles del proceso de grabación y guardado de las macros.

Con este tema abandonamos temporalmente el ritmo marcado con los anteriores vídeos que os he creado, ya que es un tema más avanzado. Los que habéis empezado a utilizar Excel con mis vídeos os aconsejo que esperéis a completar lo que sería la parte básica de Excel antes de meteros en este tema. En breve continuare con más vídeos de los conceptos básicos, pero ahora me apetecía mucho empezar con este tema, ya que me abre las puertas a empezar con otra tema que también me gusta mucho, la programación en Excel.