BannerAnuncios

Mostrando entradas con la etiqueta Macros Excel 2013. Mostrar todas las entradas
Mostrando entradas con la etiqueta Macros Excel 2013. Mostrar todas las entradas

miércoles, 3 de septiembre de 2014

Artículo: Guardar y Abrir documentos con Macros en Excel 2013.

Macros Deshabilitadas
Macros Deshabilitadas.
En el artículo anterior, creamos una pequeña macro y vimos varias maneras de ejecutarla. El siguiente paso lógico en el proceso de crear macros, es guardarlas. Aunque parezca que es un paso sin importancia, los "novatos" en este tema tenéis que tener cuidado porque en el proceso podéis perder las macros. Una vez guardadas, lo más normal es que en algún momento utilicéis de nuevo el documento que las contiene y ahí van a surgir otras "dificultadas" o "dudas" relacionadas con la seguridad de las macros. Sobre estos dos temas os hablo en este artículo, aunque en él no voy a desarrollar por completo la segunda parte, no voy a explicar todos los detalles relacionados con la seguridad de las macros., lo haré en los siguientes artículos.

Vamos con la primera parte, guardar "Macros". Para empezar deberíamos partir de un documento en el hayamos creado alguna macro, pero en el que todavía no hayamos dado el paso de guardar el documento, yo voy a utilizar el documento que contiene la macro del artículo anterior que todavía no lo había guardado. Para empezar no hay que hacer nada especial, debemos seguir los pasos habituales para guardar documentos en Excel 2013: Podemos pulsar en el botón para guardar de la "Barra de Herramientas de Acceso Rápido" o acceder a la ficha "Archivo" y utilizar alguna de las posibilidades que tenemos para guardar el documento.

Guardamos el documento que contiene la macro de ejemplo
Guardamos el documento que contiene la macro de ejemplo.

En mi caso, lo voy a guardar en una carpeta de mi equipo y con el nombre de "Calendario". De momento, no hay nada nuevo a la hora de guardar el documento. Ahora pulsamos el botón para guardar y...

Aviso de Excel para guardar macros
Aviso de Excel para guardar macros.

Aparecerá lo que os quería mostrar y con lo que tenéis que tener cuidado. Este mensaje lo tenéis que leer bien, porque si seleccionáis una de las opciones sin pensar, seguramente acabaréis perdiendo las macros. En este mensaje nos advierte que hay algo que no se puede guardar en un libro de Excel sin macros, en un documento "normal". En concreto nos dice que hay un proyecto de Visual Basic que no se puede guardar. Recordad que las macros que creamos con la "Grabadora de Macros" se convierten en código Visual Basic y a ese código es al que se está refiriendo en este mensaje.

Una vez que ya sabemos cuál es el problema, debemos fijarnos bien en el resto del mensaje que nos muestra, porque ahí está el paso en el que podemos perder las macros. Nos dice, que para guardar el documento con las macros, debemos pulsar en la opción "No" y a continuación seleccionar un formato de archivo que permita guardar las macros. Mucha gente no se fija en la información que muestra esta ventana y piensa que le está preguntando si quiere guardar el documento con las macros... A lo que se suele contestar pulsando en la opción "Si" y eso provoca que se pierdan las macros, ya que al contestar que "Si" le estamos diciendo que continúe guardando en un formato de archivo en el que no se permite guardar macros. Fijaros que al final del mensaje nos lo dice: "Para seguir guardando el archivo como libro sin macros, haga clic en Si".

Por lo tanto fijaros bien y responded lo que realmente necesitáis. Si no os interesa guardar las macros que tenga el documento, podéis pulsar en "Si" y el documento se guardará sin las macros que contenga. Si por el contrario, sí que os interesa guardar las macros, hay que pulsar en "No" y a continuación deberíamos hacer lo siguiente. Al pulsar en "No", volveréis a la ventana en la que le indicamos con que nombre y donde queremos guardar el documento, pero ahora debemos cambiar algo.

Cambiar el Formato del documento de Excel
Cambiar el Formato del documento de Excel.

Desde la versión 2007 de Excel, cuando un documento contiene Macros, hay que cambiar el formato del archivo en el que se guardará el documento. En versiones anteriores si un documento contenía macros no había que hacer nada especial para guardar, los documentos "normales" de Excel podían contener macros, pero ahora no. Los documentos "normales" de Excel 2007 en adelante acaban con la extensión ".xlsx", este tipo de documentos no puede contener macros. Hay que cambiar el formato a uno que permita guardar macros, en concreto a "Libro de Excel habilitado para Macros (*.xlsm)", en este caso los documentos tendrán la extensión ".xlsm".

Libro de Excel habilitado para Macros
Libro de Excel habilitado para Macros.

Este formato permite guardar en su interior macros y código VBA y es el que tenemos que seleccionar en estos casos. Si ahora pulsamos en "Guardar", se guardará el documento y ya no recibiremos ningún mensaje de advertencia. Bueno, pues ya está, estos eran los detalles que debéis tener en cuenta a la hora de guardar documentos con macros. Ahora llega la segunda parte, ¿Qué pasará cuando abramos el documento?

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.

jueves, 14 de agosto de 2014

Opciones y Pasos Previos a la Grabación de una Macro en Excel 2013.


Ficha Desarrollador en Excel 2013
Ficha Desarrollador en Excel 2013
Antes de realizar algunas macros de ejemplo, en este artículo os voy a explicar los pasos previos que hay que seguir para empezar a grabar una macro. Entre otras cosas os voy a explicar cómo mostrar todas las herramientas relacionadas con las "Macros". Y también veremos qué información y opciones iniciales hay que indicar antes de empezar la grabación de una macro.

Lo primero que hay que hacer es mostrar la ficha "Desarrollador" en la "Cinta de Opciones" de Excel 2013, que por defecto está siempre oculta. En ella tenemos disponibles todas las herramientas que nos van a permitir crear Macros y código VBA. Se pueden crear macros sin tener visible esta ficha, se puede utilizar el botón situado en la "Barra de estado" para iniciar la grabación de macros, en la siguiente imagen lo podéis ver. Cuando empecéis a grabar una macro con él, se convertirá en el botón para detener la grabación de la macro. Pero como os digo, es mejor que os acostumbréis a tener visible la ficha "Desarrollador".

Botón para iniciar la grabación de una macro desde la barra de estado
Botón para iniciar la grabación de una macro desde la barra de estado.

Para mostrar la ficha "Desarrollador" debemos acceder a la personalización de la "Cinta de Opciones". Podemos hacer clic con el botón secundario del ratón sobre la cinta y seleccionar la opción "Personalizar la cinta de opciones".

Accedemos a las opciones de la Cinta de Opciones
Accedemos a las opciones de la Cinta de Opciones.

Una vez seleccionada esa opción, aparecerá una ventana donde podemos activar la casilla de verificación que nos permitirá mostrar la ficha. Está en la lista de la derecha y por defecto siempre está desactivada. La activamos y a continuación aceptamos para que aparezca la ficha, en la "Cinta de Opciones".

Activar la ficha Desarrollador
Activar la ficha Desarrollador.

Cuando la tengamos visible, accedemos a ella y para empezar a grabar una macro nos debemos fijar en el botón "Grabar macro" del grupo "Código". En ese grupo de botones tenemos las opciones más importantes para crear macros y código VBA.

Botón para iniciar la grabación de una macro
Botón para iniciar la grabación de la macro.

Al hacer clic en el botón "Grabar macro", aparecerá una ventana en la que debemos indicar algo de información inicial sobre la macro que vamos a crear. En este punto todavía no hemos empezado a grabar la macro, sólo cuando pulsemos el botón "Aceptar", empezará la grabación.

Opciones iniciales de una Macro
Opciones iniciales de una Macro.

Lo primeo que debemos indicar es el nombre de la macro. El nombre es muy importante ya que es lo que identificará a la macro que queremos ejecutar entre todas las que tengamos disponibles. Para ser válidos los nombres deben cumplir unos criterios que si no se cumplen, no permitirán iniciar la grabación de la macro:


  • El Nombre siempre debe empezar con una letra, el primer carácter del nombre debe ser una letra.
  • A partir del segundo carácter se pueden utilizar letras, números y el guion de subrayado. Todo lo demás está prohibido. 
  • Una vez comentado lo anterior, obviamente los espacios están prohibidos. Todo lo que se os pueda ocurrir fuera de letras, números y guiones de subrayado... prohibido.
  • Debéis evitar nombrar a las macros con nombres que tengan otros objetos del documento en el que estáis trabajando. Por ejemplo no podéis utilizar nombres de celdas que hayáis creado en las hojas. Imaginaros que habéis llamado a una celda Iva, bueno pues no deberíais llamar a una macro de la misma manera.

Mensaje de error al usar un nombre de macro que no es correcto
Mensaje de error al usar un nombre de macro que no es correcto.

lunes, 28 de julio de 2014

¿Qué es una Macro?


La ventana Macros en Excel 2013.
La ventana Macros en Excel 2013.
Las "Macros" o la "Programación en Excel", son en mi opinión la herramienta más potente que tiene Excel. Llevan a Excel a un nivel muy superior del que se puede llegar con las herramientas "normales" de Excel. Sin usar las macros se pueden hacer cosas realmente potentes... Pero con ellas, todo queda mejor, da una sensación de mayor integración entre todas las herramientas que tenemos disponibles y mejoran mucho la usabilidad de las hojas. Queda todo con un mejor acabado, más redondo. Para explicaros que es una macro, creo que es mucho mejor que os ponga un ejemplo en el que se ve claramente como una Macro nos podría ahorrar mucho tiempo y trabajo. Vamos a imaginar, que todos los días, en mi jornada laboral de 8 horas, cada hora tengo que realizar las siguientes tareas:

  • Primero importo los datos de producción de unas máquinas de un archivo de texto.
  • A continuación con esos datos creo un gráfico.
  • Una vez creado el gráfico, cambio algunas de sus características para darle el aspecto que yo quiero.
  • Después, muevo el gráfico a una hoja de gráficos para que al imprimirlo tenga tamaño A4.
  • Casi acabando ya, imprimo dos copias del gráfico.
  • Y por último, una vez que tengo el gráfico impreso lo elimino.

Resultado Final de la Macro.
Resultado Final de la Macro.

Realizar todas estas tareas, 8 veces en mi jornada laborar me va quitar mucho tiempo. Que os parecería si os digo que todo esto se puede hacer en tres segundo si lo metemos en una macro... Incluso mejor, que os parecería si os digo que todo ese trabajo lo podemos meter en una macro y que simplemente pulsando un botón se hará tantas veces como lo necesitemos. Pasaríamos de ocupar unos cuantos minutos cada hora para realizar estas tareas, a ocupar sólo unos poco segundos.

Con esto que os acabo de contar ya os puedo dar una primera definición de Macro: Una macro es un conjunto de operaciones o pasos que se han grabado, para posteriormente ser ejecutados, ser realizados de forma secuencial, sin intervención del usuario. Fijaros que he utilizado el verbo "Grabar". Las macros en Excel se pueden crear usando la "Grabadora de Macros".

Grabadora de Macros en Excel 2013.
Grabadora de Macros en Excel 2013.

La "Grabadora de Macros" es una herramienta que desde el momento que le indiquemos, graba todos los pasos que vamos realizando en Excel. Una vez hemos finalizado los pasos que queremos que formen parte de la Macro, le indicaremos que pare la grabación. El resultado final de la grabación se convertirá en una Macro que posteriormente podremos ejecutar para que todos esos pasos se hagan sin intervención del usuario, se hagan automáticamente. Podríamos por ejemplo asignar esa macro a un botón y al ser pulsado se realizarán todos los pasos grabados. Seguro que más de uno ya se está emocionando y pensando en la de trabajo que se ahorrará...

Pero... cuidado, no todo es tan perfecto. Desde el momento que se lo indiquemos la grabadora grabará todo lo que hagamos pero debéis tener en cuenta dos detalles. La Grabadora graba todo el rato, esto incluye los momentos en los que nos confundamos... Por lo tanto es recomendable que antes de grabar una macro practiquéis un poco los pasos para no cometer errores en el momento de la grabación. Y el otro detalle que debéis tener en cuenta, es que la grabadora graba casi todo... Pero hay algunos pasos que no es capaz de grabar y harán que nuestra macro no sea tan automática como queríamos.


La macro no ha grabado la confirmación para eliminar el gráfico.
La macro no ha grabado la confirmación para eliminar el gráfico.

En el ejemplo que os he contado al principio, por ejemplo hay un paso que no sería capaz de grabar. Cuando eliminemos la hoja en la que está el gráfico se pedirá confirmación para la eliminación de la hoja, bueno pues la grabadora no es capaz de grabar si hemos pulsado que si o que no. En la imagen anterior podéis ver el momento en el que me pregunta si quiero eliminar el gráfico o no. Por lo tanto los pasos en los que se pida confirmación del usuario, no se grabarán, no formarán parte de la macro. Es una pequeña limitación que tienen las macros, pero no os preocupéis que todo tiene solución, enseguida os lo contaré.