42
MACRO: Una macro es un conjunto de instrucciones escritas en lenguaje Visual Basic (*), que nos permite automatizar ciertas tareas que la aplicación no contempla desde las herramientas de la hoja. Por ejemplo, si necesitamos que se inserten automáticamente 2 hojas nuevas al abrir un libro, recurriremos a una macro. Otros casos: completar alguna tarea cada vez que se ingresa un valor en una celda o rango de celdas; realizar un cierto control antes de imprimir, guardar o cerrar el libro, etc. Son todas tareas que pueden ser automatizadas mediante rutinas o macros. (*) El lenguaje utilizado en Excel es VBA (Visual Basic for Applications) Cómo se crea una macro: para automatizar una tarea mediante una macro básicamente se necesitan los siguientes elementos: 1- un espacio de trabajo donde escribir las instrucciones o rutinas que harán esas tareas: el Editor de Macros. A este espacio se accede desde menú Herramientas, Macros, Editor o con el atajo de teclado Alt+F11.

f57-8.weebly.comf57-8.weebly.com/uploads/2/8/0/9/...creacion_y_aplica… · Web viewEn Excel utilizamos VBA (Visual Basic para Aplicaciones)4- Ocasionalmente un formulario donde trabajar

Embed Size (px)

Citation preview

Page 1: f57-8.weebly.comf57-8.weebly.com/uploads/2/8/0/9/...creacion_y_aplica… · Web viewEn Excel utilizamos VBA (Visual Basic para Aplicaciones)4- Ocasionalmente un formulario donde trabajar

MACRO:  Una macro es un conjunto de instrucciones escritas en lenguaje Visual Basic (*), que nos permite automatizar ciertas tareas que la aplicación no contempla desde las herramientas de la hoja. 

Por ejemplo, si necesitamos que se inserten automáticamente 2 hojas nuevas al abrir un libro, recurriremos a una macro. 

Otros casos: completar alguna tarea cada vez que se ingresa un valor en una celda o rango de celdas; realizar un cierto control antes de imprimir, guardar o cerrar el libro, etc. Son todas tareas que pueden ser automatizadas mediante rutinas o macros.

(*) El lenguaje utilizado en Excel es VBA (Visual Basic for Applications) 

Cómo se crea una macro: para automatizar una tarea mediante una macro básicamente se necesitan los siguientes elementos:    

1- un espacio de trabajo donde escribir las instrucciones o rutinas que harán esas tareas: el Editor de Macros. A este espacio se accede desde menú Herramientas, Macros, Editor o con el atajo de teclado Alt+F11. 

En versión 2007-10, activar la opción Programador de la Cinta de Opciones (Ver)

Una vez en ese 'espacio', escribiremos o copiaremos las rutinas en:

a- alguno de los objetos (hoja o libro) que seleccionemos con doble clic en el panel de Objetos

Page 2: f57-8.weebly.comf57-8.weebly.com/uploads/2/8/0/9/...creacion_y_aplica… · Web viewEn Excel utilizamos VBA (Visual Basic para Aplicaciones)4- Ocasionalmente un formulario donde trabajar

que se encuentra a la izquierda del Editor.

b- insertando módulos 

c- o insertando formularios personales o Userforms. 

2- una acción que hará que la tarea programada se ejecute. A esto llamamos  'Eventos' que inician una macro y pueden ser: abrir o cerrar un libro, entrar o salir de una hoja, cambios o selección de celdas, antes de imprimir o guardar, el 'clic' en un botón de comando, al presionar un atajo de teclado, y otros más.   

3- un lenguaje de programación. En Excel utilizamos VBA (Visual Basic para Aplicaciones)

4- Ocasionalmente un formulario donde trabajar para luego volcar los resultados en las hojas: llamados Userforms. 

Dónde colocar o escribir la macro: esto dependerá de lo que deba ejecutar nuestra rutina.

Si las instrucciones se deben ejecutar, por ejemplo, al abrir o cerrar un libro, se colocan en el objeto ThisWorkbook (o EsteLibro según la versión).

Si las instrucciones se deben ejecutar al entrar o salir de una hoja o al seleccionar o modificar una celda, se colocan en el objeto Hoja. Estos objetos se encuentran en el margen izquierdo del Editor, en la ventana Proyecto-VBAProyect

Si nuestra rutina será llamada con un botón, atajo de teclado  o desde otra rutina, se colocará en un

Page 3: f57-8.weebly.comf57-8.weebly.com/uploads/2/8/0/9/...creacion_y_aplica… · Web viewEn Excel utilizamos VBA (Visual Basic para Aplicaciones)4- Ocasionalmente un formulario donde trabajar

módulo (estando en el Editor, menú Insertar, Módulo).

Las instrucciones para los controles de un formulario o Userforms se colocan en la sección Código del mismo formulario. 

Cómo ejecutar una macro: En el punto anterior se menciona que se necesita una 'acción' que dispare o ejecute una macro grabada. Veamos los distintos casos:

1- Una acción automática resultado de un evento, ya sea a nivel libro, hoja, rango o celdaEn este grupo se encuentran las rutinas que se ejecutan en la apertura o cierre de libro, al entrar o salir de una hoja, al seleccionar o cambiar valores en celda …Son las que se colocan en el objeto HOJA o ThisWorkbook, como se menciona en tema anterior 

2- Al presionar un botón dibujado en la hoja. Podemos utilizar botones de la barra 'Cuadro de controles o ActiveX' o de la barra 'Formularios'. En versión 2003 se encuentra en Menú Ver, Barras de Herramientas. En versión 2007 desde la ficha ProgramadorDibujamos el control en la hoja, ajustamos algunas propiedades como texto, tamaño, ubicación. Al hacer clic derecho sobre el control optamos por 'Ver código' o 'Asignar macro' según qué barra de herramientas hemos utilizado.

a-      Cuadro de controles: al optar por 'Ver código' nos llevará al Editor, al objeto HOJA donde se generará automáticamente una rutina con estas 2

Page 4: f57-8.weebly.comf57-8.weebly.com/uploads/2/8/0/9/...creacion_y_aplica… · Web viewEn Excel utilizamos VBA (Visual Basic para Aplicaciones)4- Ocasionalmente un formulario donde trabajar

instrucciones:

Private Sub CommandButton1_click()'aquí escribiremos nuestras instruccionesEnd Sub

b-      Formularios: ya debemos tener lista la rutina en un módulo del Editor y la asignaremos cuando optemos por  'Asignar macro'. Las rutinas para este caso son como el siguiente ejemplo:

Sub nombre_rutina()'nuestras instruccionesEnd Sub

 3- Ejecutar un atajo de teclado: En estos casos tendremos una rutina como la del punto anterior (b) en un módulo del Editor.Desde la hoja Excel, menú Herramientas, Macros, Macros seleccionarla de la lista. Presionar el botón 'Avanzadas' e ingresar una letra, por ejemplo 't'  (sin las comillas)

Nota: Si Excel ya tiene asignada esta letra la reemplazará por Ctrl+Mayúsc +t Esto significa que en el momento que necesitemos que la macro se ejecute presionaremos juntas las teclas Ctrl + t  (o Ctrl+Mayusc+t)

4- Desde el menú Herramientas: si no hemos asignado la rutina que se encuentra en un módulo a ningún botón ni a atajo de teclado, la ejecutaremos desde este menú de Excel.

Referencias: Veamos los diferentes modos de referirnos a libros, hojas y celdas:

Page 5: f57-8.weebly.comf57-8.weebly.com/uploads/2/8/0/9/...creacion_y_aplica… · Web viewEn Excel utilizamos VBA (Visual Basic para Aplicaciones)4- Ocasionalmente un formulario donde trabajar

Workbook      :     Libro de trabajo. 

ActiveWorkbook     :            Libro activoWorkbooks(2)        :            El segundo libro abierto

Workbooks("Libro1.xls") :     Llamada al libro de nombre Libro1

Workbooks(milibro) :           Llamada a un libro cuyo nombre se encuentra en una variable llamada 'milibro' (*)

*-Si el nombre del libro se encuenta en una variable, NO lleva comillas

Previamente asignamos nombre, por ej: milibro=ActiveWorkbook.name

WorkSheet   :      Hoja de trabajo

ActiveSheet    :      Hoja activaSheets("Enero")  :  Hoja de nombre 'Enero' Sheets(3)        :     Número de hoja según el orden de las pestañas.

[Hoja2]           :     La 2da hoja según orden de las pestañas

Range o Cells        :    rango o celda

Activecell      :   la celda activaRange("A2")  :   la celda A2Cells(2,1)      :  la celda de fila 2 y columna 1 = A2 .

Cells(3,"D")   :  la celda de fila 3 y col D = D3

Page 6: f57-8.weebly.comf57-8.weebly.com/uploads/2/8/0/9/...creacion_y_aplica… · Web viewEn Excel utilizamos VBA (Visual Basic para Aplicaciones)4- Ocasionalmente un formulario donde trabajar

*-Nótese que mientras en Range se introduce la celda en el orden Col,Fila, en Cells es a la inversa: Cells(fila,col)

Range("A5:B10")  : rango de celdas desde A5 hasta B10 inclusiveRange("E:E")        : columna ERange("2:2")        : fila 2

[A3]                     : la celda A3

Range("A" & fila)   : celda de la col A y fila según valor de variable

Cuando hablamos de una Macro en Excel nos referimos a un lenguaje de programación orientado a aplicaciones. En este caso particular, se utiliza VBA (Visual Basic for Applications) el cual es un lenguaje de programación desarrollado por Microsoft.  Excel, al igual que los otros programas de Microsoft Office incluyen el lenguaje VBA.

Imaginen un Robot que conoce todo sobre Excel. Este robot puede leer instrucciones y operar sobre Excel de manera rápida y precisa. Simplemente escribimos un lenguaje que este robot comprenda, para que luego el robot haga el trabajo sucio mientras nos relajamos y tomamos una limonada. Eso es justamente VBA. Un lenguaje en código para robots. Pero Ojo, Excel no viene ni con un robot ni con la limonada. =)

La combinación entre la generación de un código VBA y su posterior ejecución en Excel es lo que se llama una Macro. A fin de cuentas una Macro es un programa el cual contiene un trozo de código de manera que podemos automatizar procesos que el

Page 7: f57-8.weebly.comf57-8.weebly.com/uploads/2/8/0/9/...creacion_y_aplica… · Web viewEn Excel utilizamos VBA (Visual Basic para Aplicaciones)4- Ocasionalmente un formulario donde trabajar

realizarlos a mano nos pueden tomar mucho tiempo.

La palabra Macro proviene del griego makros que significa grande-lo cual podría describir el tipo de pago que podrías recibir por convertirte en un experto en programación de Macros.

Otra cosa que se debe tener en cuenta es que VBA no es lo mismo que VB (Visual Basic), ya que VB es un lenguaje de programación que permite crear programas auto ejecutables (conocidos como archivos EXE). A pesar de que VBA y VB tienen mucho en común, son dos cosas distintas.

La idea de crear una Macro es la de automatizar tareas que son repetitivas o que deben ser desarrollas con frecuencia.  Por ejemplo, preparar reportes mensuales de manera que todos los meses podrás presentarle a tu jefe reportes con un mismo formato. Él quedará impresionado por tu consistencia  y la gran calidad de tu trabajo, e incluso te promoverá a un nuevo cargo al cual no estás capacitado!!

¡Comencemos!

Lo primero a realizar es hacer visible la lengüeta de “Programador”. Por defecto esta lengüeta viene oculta en Excel 2007. Iremos a Inicio y daremos click en “Opciones de Excel”.   

La primera opción es “Más Frecuente” y dentro de ella debemos marcar la opción de “Mostrar Ficha Programador en la cinta de Opciones”. Acá podemos observar como la hemos marcado, que en este caso es la tercera opción. Con ello la lengüeta

Page 8: f57-8.weebly.comf57-8.weebly.com/uploads/2/8/0/9/...creacion_y_aplica… · Web viewEn Excel utilizamos VBA (Visual Basic para Aplicaciones)4- Ocasionalmente un formulario donde trabajar

“Programador” está visible y podemos comenzar a utilizar Macros en nuestro libro de Excel.

Lo que cubriremos en este instructivo es la grabación de Macros. Esto es muy parecido a la grabación de acciones que alguna vez cubrimos en un tutorial de Photoshop.

Grabando una Macro

Seleccionamos una celda; cualquier celda servirá.

En la lengüeta de programador damos click en “grabar Macro”.

Con ello nos aparece la ventana  “Grabar Macro”.

En “Nombre de la macro” pondremos un nombre representativo (Ojo no puede llevar espacios por lo que si desean pueden usar guión bajo “_” para poner espacios entre palabras), en “método abreviado” pondremos una combinación  de teclas como acceso directo (por defecto es CTRL +”algo ”, en mi caso utilizá la tecla Shift o Mayúscula más la tecla N), en “Guardar macro en: ” dejamos igual como está, y en “Descripción” anotamos justamente una descripción de lo que hará la macro.

Damos click en “Aceptar ”. Con ello la grabación de la Macro comienza, por lo tanto todos los

Page 9: f57-8.weebly.comf57-8.weebly.com/uploads/2/8/0/9/...creacion_y_aplica… · Web viewEn Excel utilizamos VBA (Visual Basic para Aplicaciones)4- Ocasionalmente un formulario donde trabajar

movimientos que realicemos dentro del libro de Excel serán grabados.

Anotaremos nuestro nombre en una celda Hacemos click en la celda bajo el nombre y

anotaremos la siguiente fórmula: =AHORA()Esta fórmula muestra la fecha y hora actual.

Seleccionamos la celda que contiene la fórmula y la copiaremos (Con CTRL+C o en la lengüeta Inicio -> Copiar)

En la lengüeta Inicio está el botón Pegar. Si damos Click en la flecha bajo el ícono verán que aparecen más opciones. Elegimos la opción “Pegar Valores”.

Esto convierte la fórmula a su valor correspondiente.

Seleccionamos ambas celdas, osea la celda con la fecha y la celda con el nombre.

Page 10: f57-8.weebly.comf57-8.weebly.com/uploads/2/8/0/9/...creacion_y_aplica… · Web viewEn Excel utilizamos VBA (Visual Basic para Aplicaciones)4- Ocasionalmente un formulario donde trabajar

Aplicamos a ambas celdas un formato, por ejemplo “Negrita ” y en el tamaño de la letra ponemos  “16”.

Vamos a la lengüeta Programador y detenemos la grabación de la Macro con el botón respectivo.

¡Felicitaciones! Acabas de grabar tu primera Macro. Esta es una buena oportunidad para llamar a tu madre y contarle las buenas noticias.

Ahora solo nos falta correr la Macro y ver los resultados. Para ello iremos a una nueva hoja de cálculo. Seleccionamos la celda A1.

En la lengüeta de Programador hacemos click en Macros con lo cual se nos abre la ventana que administra las Macros.

Elegimos nuestra Macro, que en este caso es única y le damos click al botón ejecutar. También si prefieren pueden seleccionar la celda A1 y simplemente utilizar la combinación de teclas que configuramos, en este caso Ctrl+Shift+N.

Page 11: f57-8.weebly.comf57-8.weebly.com/uploads/2/8/0/9/...creacion_y_aplica… · Web viewEn Excel utilizamos VBA (Visual Basic para Aplicaciones)4- Ocasionalmente un formulario donde trabajar

Como observarán se ha pegado la información y se le ha dado el formato de letra en negrita y tamaño 16. Con un simple click o combinación de teclas sin necesidad de anotar el nombre, aplicar una fórmula, copiarla, pegarla, seleccionar ambas celdas y darles formato.

Ahora analicemos el código o lenguaje que se ha grabado.

Para ello podemos dar click en el botón “Visual Basic” de la lengüeta Programador o utilizar la combinación de teclas ALT+F11.

Con ello se nos abre el editor de VBA.

Damos click en el símbolo “+” de “Módulos” de manera de ampliar el árbol de módulos y con ello nos aparecerá “módulo 1” tal como se observa en la fotografía.

Con ello se abre el módulo y podemos obsevar el código que se ha generado.

Los comentarios se pueden anotar anteponiendo el símbolo de apóstrofe (’).

En este caso para explicar el código dejaré comentarios en cada línea.

Sub NombreyTiempo() ‘ NombreyTiempo Macro ‘ Esta Macro anota mi nombre y el tiempo ‘ Acceso

Page 12: f57-8.weebly.comf57-8.weebly.com/uploads/2/8/0/9/...creacion_y_aplica… · Web viewEn Excel utilizamos VBA (Visual Basic para Aplicaciones)4- Ocasionalmente un formulario donde trabajar

directo: Ctrl+Mayús+N Range(“A1″).Select ‘Se selecciona la celda A1 ActiveCell.FormulaR1C1 = “Dexter” ‘En ella se insertará Dexter Range(“A2″).Select ‘Se selecciona la celda A2 ActiveCell.FormulaR1C1 = “=NOW()” ‘Se aplica la fórmula Ahora() que en VBA se anota por su nombre en inglés NOW() Range(“A2″).Select ‘Nuevamente seleccionamos la celda A2 Selection.Copy ‘La selección se copia Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False ‘Se vuelve a pegar pero como pegado especial, en este caso como Valor Range(“A1:A2″).Select ‘Tomamos el Rango desde la celda A1 a la A2 Application.CutCopyMode = False ‘Esta linea no hace nada en particular ya que no estamos ni copiando ni pegando With Selection.Font ‘Con la seleccion antes hecha, entramos a la configuracion de fuentes .Name = “Calibri” ‘Se selecciona el tipo de fuente, en este caso Calibri .Size = 16  ‘Se selecciona el tamaño de fuente, en este caso 16 .Strikethrough = False ‘los siguientes códigos representan otros parámetros que no son necesarios analizar .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ThemeColor = xlThemeColorLight1 .TintAndShade = 0 .ThemeFont = xlThemeFontMinor End With Selection.Font.Bold = True ‘Con la misma seleccion anterior (celdas A1 y A2), aplicamos el formato de Negrita End Sub

Si hay tareas de Microsoft Excel que realiza reiteradamente, puede grabar una macro para automatizarlas. Una macro es una acción o un conjunto de acciones que se puede ejecutar todas las veces que desee. Cuando se crea una macro, se

Page 13: f57-8.weebly.comf57-8.weebly.com/uploads/2/8/0/9/...creacion_y_aplica… · Web viewEn Excel utilizamos VBA (Visual Basic para Aplicaciones)4- Ocasionalmente un formulario donde trabajar

graban los clics del mouse y las pulsaciones de las teclas. Después de crear una macro, puede modificarla para realizar cambios menores en su funcionamiento.

Imagine que todos los meses crea un informe para el gerente del departamento contable. Desea que los nombres de los clientes con cuentas vencidas aparezcan en rojo y en negrita. Puede crear y luego ejecutar una macro que aplique rápidamente estos cambios de formato en las celdas seleccionadas.

¿Cómo?

Antes de grabar una macro    

Compruebe que se muestra la ficha Programador en la cinta de opciones. Dado que la ficha Programador no se muestra   de manera predeterminada, haga lo siguiente:

1.   Haga clic en la pestaña Archivo, elija Opciones y, a continuación, haga clic en la categoría Personalizar cinta de opciones.

2.   En Personalizar cinta de opciones, en la lista Fichas principales, haga clic en Programador y, a continuación, haga clic en Aceptar.

Grabe una macro.    

1.   En el grupo Código en la pestaña Programador, haga clic en Grabar macro y luego haga clic en

Page 14: f57-8.weebly.comf57-8.weebly.com/uploads/2/8/0/9/...creacion_y_aplica… · Web viewEn Excel utilizamos VBA (Visual Basic para Aplicaciones)4- Ocasionalmente un formulario donde trabajar

Aceptar para comenzar a grabar.

2.   Realice algunas acciones en la hoja de cálculo como escribir algún texto, seleccionar algunas columnas o filas o rellenar con algunos datos.

3.   En el grupo Código en la pestaña Programador, haga clic en Detener grabación.

Examine la macro y pruébela.    

Al modificar la macro que ha grabado, puede aprender un poco acerca del lenguaje de programación Visual Basic.

Para editar una macro, en el grupo Código en la pestaña Programador, haga clic en Macros, seleccione el nombre de la macro que ha grabado y haga clic en Editar. Esta acción hará que se inicie el Editor de Visual Basic.

Observe el código y vea de qué manera las acciones que ha grabado aparecen como código. Es probable que entienda bien algo del código y que otra parte le resulte un poco misteriosa.

Experimente con el código, cierre el Editor de Visual Basic y ejecute la macro nuevamente. Esta vez observe si sucede algo distinto.

Las macros Excel es un conjunto de instrucciones

Page 15: f57-8.weebly.comf57-8.weebly.com/uploads/2/8/0/9/...creacion_y_aplica… · Web viewEn Excel utilizamos VBA (Visual Basic para Aplicaciones)4- Ocasionalmente un formulario donde trabajar

programadas en la hoja de cálculo electrónica Excel, las cuales automatizan las operaciones que realiza la aplicación ofimática Excel con el objetivo de eliminar tareas repetitivas o realizar cálculos complejos en un corto espacio de tiempo y con una nula probabilidad de error.

Vba es el lenguaje de programación que se utiliza para la creación de las macros Excel, vba son las siglas de Visual Basic for Applications y es un lenguaje desarrollado por Microsoft e implementado dentro de los programas informáticos de la suite Office, donde se encuentra Excel.

Para entender mejor el concepto de las macros Excel imaginemos que en nuestro trabajo tenemos que escribir diariamente el valor de cambio de 1 euro por 1 dólar, para posteriormente realizar una serie de cálculos referentes a temas financieros o contables, entonces diariamente tendremos que entrar en Internet, buscar el valor de cambio, copiar y pegar el valor  en nuestra hoja Excel y realizar los cálculos oportunos. Mediante las macros Excel al apretar un botón automáticamente la aplicación Excel realizará cada una de las operaciones descritas anteriormente por nosotros, dando el resultado fiable en apenas 1 segundo.

En el anterior ejemplo si realizásemos este trabajo de manera manual podemos decir que invertiríamos 10 minutos, que al cabo del año supondría 3300 minutos,  equivalente a casi 7 días laborables dedicados a realizar esta operación, ¿Qué pasaría si se tuviese que realizar este tipo de trabajo diariamente pero con una gama de 50 monedas diferentes?, ¿estaría dispuesto a dedicarse íntegramente el día completo a realizar esta tarea

Page 16: f57-8.weebly.comf57-8.weebly.com/uploads/2/8/0/9/...creacion_y_aplica… · Web viewEn Excel utilizamos VBA (Visual Basic para Aplicaciones)4- Ocasionalmente un formulario donde trabajar

repetitiva sabiendo que con una macro Excel se puede realizar en apenas 1 segundo y con una nula probabilidad de error?. 

Pero para que Excel haga estos trabajos por usted es necesario que le digamos como, en este momento es cuando interviene VBA, podemos decir que VBA es el interlocutor por el cual nos comunicamos con Excel, Vba es el lenguaje de programación de las Macros Excel.

Existen 2 maneras de realizar Macros en Excel:

·         Mediante el uso de la grabadora de Macros.

·         Mediante el uso del lenguaje VBA para programar a Excel

La primera de las opciones es la más fácil, dado a que solo requiere apretar al botón grabador de macros y realizar el conjunto de operaciones que queramos que se repitan, una vez finalizado guardamos la macro grabada con el nombre que queramos. Cada vez que queramos ejecutar esta macro tendremos que apretar el botón ejecutar macro y seleccionarla.

Esta primera opción es la más fácil de usar pero es la que presenta más limitaciones, dado a que solo ejecutará una vez la tarea grabada así como no utilizará  toda la potencia del lenguaje VBA.

La segunda opción requiere del conocimiento y práctica del lenguaje de programación VBA, pero es sin duda la opción más potente en cuestión de desarrollo de aplicaciones, cualquier cosa que se nos ocurra puede realizarse mediante el uso de

Page 17: f57-8.weebly.comf57-8.weebly.com/uploads/2/8/0/9/...creacion_y_aplica… · Web viewEn Excel utilizamos VBA (Visual Basic para Aplicaciones)4- Ocasionalmente un formulario donde trabajar

VBA, desde una aplicación compleja hasta la automatización de tareas repetitivas de nuestra hoja de cálculo Excel.

A continuación se citan algunos ejemplos de las cosas que podemos con las Macros Excel:

·         Desarrollo de aplicaciones complejas

·         Automatización de tareas repetitivas

·         Desarrollo de nuevas funciones o aplicaciones dentro de la propia Excel

·         Comunicación entre aplicaciones compatibles con VBA como Word, Access, Outlook, Autocad…

·         Creación de juegos dentro de la aplicación Excel

Es una de las herramientas más útil que nos proporciona Excel. Las macros son programas personalizados por los usuarios, que permiten que tú mismo escribas las acciones que quieres que se realicen y estas se ejecuten en un solo clic.

Son atajos para automatizar acciones repetidas con asiduidad.

A continuación te presento varios ejemplos de macros que puedes usar en tu día a día. 

Macro supersencilla para insertar nombre empresa y departamento

Page 18: f57-8.weebly.comf57-8.weebly.com/uploads/2/8/0/9/...creacion_y_aplica… · Web viewEn Excel utilizamos VBA (Visual Basic para Aplicaciones)4- Ocasionalmente un formulario donde trabajar

Macro para insertar el nombre de la empresa y el departamento: MIEMPRESA SL, Departamento Formación New York, con el formato siguiente: fondo de celda verde y color de la fuente beis, tamaño 14 y en negrita.

Vas a Herramientas y de aquí a Macro y elegimos Grabar nueva macro, escribimos el nombre de la macro por ejemplo Insertar_Nombre_Empresa.

Lleva a cabo las acciones que vas a automatizar, esto es das el formato indicado para a continuación detener la macro.

Cada vez que ejecutes la macro se insertara el texto en la hoja de cálculo. 

Macro para insertar una imagen

Análogamente a lo indicado en el apartado anterior, previamente recorre las imágenes que existen en Imágenes prediseñadas o escoge una imagen de tu equipo.

Aquí puedes dar el nombre Insertar_Imagen.

Como sugerencia puedes realizar esta macro para insertar el logo de la empresa.

Macro para redondear decimales

En concreto para el caso de un libro de Excel que tengas con cifras decimales y necesites presentarlo sin ese detalle, por ejemplo un presupuesto, harías lo siguiente:

Page 19: f57-8.weebly.comf57-8.weebly.com/uploads/2/8/0/9/...creacion_y_aplica… · Web viewEn Excel utilizamos VBA (Visual Basic para Aplicaciones)4- Ocasionalmente un formulario donde trabajar

Vas al menú Herramientas y de aquí a Macro y eliges Grabar nueva macro..., en la ventana que se abre das nombre a la Macro por ejemplo RedondearCifras (tiene que ser un nombre que no empiece por un numero y que no contenga espacios) y aceptas. 

A partir de ahí realizas las acciones a automatizar: Seleccionas las celdas, botón derecho, Formato de celdas, Moneda, quitas los decimales y pones 0, aceptas para finalizar vamos a Herramientas, Macro y Detener Grabación.

Para guardar la Macro vas a Guardar Como desde Archivo y elegimos el tipo: Libro con Macros habilitadas.

A partir de ahora cada vez que quieras que los datos de un libro queden redondeados y sin posiciones decimales seleccionarás las celdas, seguirás la ruta: Herramientas, Macros..., seleccionas la macro RedondearCifras y das a Ejecutar y en un abrir y cerrar de ojos todas las cifras se han transformado desapareciendo los decimales.

Macro para cambiar la impresora asignada por defecto

En este caso lo que realizarás es la serie de pasos para indicar que en vez de imprimir por la impresora predeterminada que tengas configurada para Excel, lo haga por otra de las impresoras existentes.

Asigna el nombre Imprimir_Impresora2 y realiza la secuencia de movimientos.

Prueba tu macro con Ejecutar.

Page 20: f57-8.weebly.comf57-8.weebly.com/uploads/2/8/0/9/...creacion_y_aplica… · Web viewEn Excel utilizamos VBA (Visual Basic para Aplicaciones)4- Ocasionalmente un formulario donde trabajar

En relación con esta macro también te sugiero realizar una macro para imprimir en blanco y negro si tu impresora está configurada en color (o viceversa), puedes llamar a la macro con el nombre Imprimir_ByN.

Existen multitud de posibilidades a la hora de automatizar tareas con Excel, aprende poco a poco esta herramienta y verás que te resulta de gran utilidad.

Macro: Conjunto de acciones realizadas en una hoja de cálculo que quedan grabadas en Excel de forma que simplemente haciendo clic en el menú Herramientas, Macro, Ejecutar macro automáticamente se repite el proceso.

Para crear una Macro se utiliza el lenguaje de programación VBA, Visual Basic para Aplicaciones, si bien se puede simplemente grabar sin tener conocimientos de programación simplemente siguiendo la secuencia de acciones.

Sirve para automatizar tareas repetitivas que quieras dejar grabadas porque las realizas con asiduidad.

Algunos ejemplos:

Eliminar filas vacías en los informes de la banca electrónica.

Dar formato a informes externos.

Combinar datos de varios libros de Excel que

Page 21: f57-8.weebly.comf57-8.weebly.com/uploads/2/8/0/9/...creacion_y_aplica… · Web viewEn Excel utilizamos VBA (Visual Basic para Aplicaciones)4- Ocasionalmente un formulario donde trabajar

recibes de otros departamentos de la empresa.

Y muchas mas utilidades, comparte la tuya con nosotros.

Habrás oído hablar mucho de las Macros y también conocerás que suponen una gran ayuda a la hora de lograr mayor productividad en tu trabajo.

Una macro es Macro un conjunto de acciones realizadas en una hoja de cálculo que van a quedar grabadas en Excel de forma que simplemente haciendo clic sobre la macro creada, esta se ejecuta y realiza dicho conjunto de acciones o pasos previamente indicados.

Se puede crear una Macro fundamentalmente de dos maneras o bien se utiliza el lenguaje de programación VBA, Visual Basic para Aplicaciones, o bien se puede simplemente grabar sin tener conocimientos de programación simplemente realizando una secuencia de acciones.

En definitiva las macros sirven para automatizar tareas repetitivas que quieras dejar grabadas porque las realizas con asiduidad.

Vas a crear una macro sencilla a modo de ejemplo que consiste en que cada vez que la ejecutes aparezca en la celda indicada las palabras Hojas de cálculo About.

Para ello los pasos a seguir son los siguientes, anímate son cortos y fáciles:

1.- Abrir una hoja de cálculo Excel y localizar desde donde trabajar con las Macros.

Page 22: f57-8.weebly.comf57-8.weebly.com/uploads/2/8/0/9/...creacion_y_aplica… · Web viewEn Excel utilizamos VBA (Visual Basic para Aplicaciones)4- Ocasionalmente un formulario donde trabajar

Si tu versión es Excel 2007 o Excel 2010 antes de nada has de activar para que se muestre la ficha Programador. Para ello haz clic en el Botón de Office, después en Opciones de Excel (abajo hacia la derecha), activar con un tic Mostrar ficha Programador en la cinta de opciones, Aceptar. 

Si tienes Excel 2003, el paso anterior no lo tienes que realizar, la opción Macro la tienes en el menú herramientas. 

2.- Empezar a grabar la Macro.

Si estas en Excel 2007 o 2010, pincha en la ficha Programador y luego en Grabar Macro, en Excel 2003 igual pero accediendo desde el menú Herramientas, Macro.

Lo primero que tienes que indicar es el nombre de la Macro, en este caso escribe MIMACRO.

A continuación te pide Método abreviado, este campo lo dejamos en blanco.

Después Guardar Macro en: Despliegas y eliges Este libro, por último puedes añadir una breve descripción que explique que va a realizar esta Macro, de momento no escribas nada.

Tras pulsar el botón Aceptar todos los movimientos que realices quedan grabados.

Empezar a grabar la Macro

Page 23: f57-8.weebly.comf57-8.weebly.com/uploads/2/8/0/9/...creacion_y_aplica… · Web viewEn Excel utilizamos VBA (Visual Basic para Aplicaciones)4- Ocasionalmente un formulario donde trabajar

3.-Acciones a grabar en la Macro.

Te sitúas en A1 y escribes Hojas de cálculo About, pulsas Intro y das al botón Detener la grabación representado con un cuadrado de color azul en unas versiones de color negro en otras.

4.- Ejecutar la Macro.

Borra el contenido de la celda A1.

Pulsa el icono Macro, en la ventana que se despliega elige la macro creada, recuerda que su nombre es MIMACRO, y pulsa en Ejecutar.

En la celda A1 que habías dejado en blanco vuelve a aparecer el mensaje: Hojas de cálculo About.

Ejecutar la Macro

5.- Eliminar la Macro.

Como esto ha sido a modo de ejemplo ahora vas a borrar o eliminar la Macro.

Pulsa en el botón Macros, teniendo seleccionada la macro a borrar haz clic en el botón Eliminar, aparece una ventana en la que te pregunta: ¿Desea eliminar la macro MIMACRO?, escoges Si.

Para comprobarlo abre de nuevo el cuadro de dialogo Macros y veras que no hay ninguna macro en el. 

Page 24: f57-8.weebly.comf57-8.weebly.com/uploads/2/8/0/9/...creacion_y_aplica… · Web viewEn Excel utilizamos VBA (Visual Basic para Aplicaciones)4- Ocasionalmente un formulario donde trabajar

6.-Más datos sobre las Macros.

Para dar el nombre a una Macro tienes que tener en cuenta que no se permiten espacios en blanco en el nombre, lo puedes solventar usando el guion.

Si quieres puedes establecer un atajo del teclado para tu Macro indicando una combinación de teclas que realizara la acción establecida en la Macro, esto lo tienes que indicar en el paso 2 cuando te pedía una letra para el Método Abreviado, pero ojo que no tiene que ser una combinación ya existente en Excel porque te la cambia.

Más datos sobre las Macros

En el departamento contable o de administración tenemos que realizar comprobaciones, conciliaciones, estudios, etc. con los datos de los extractos bancarios.

Actualmente la mayoría de entidades financieras proporcionan la información bancaria en formato Excel o simplemente puedes copiar y pegar los datos de los movimientos bancarios desde la ventana de la banca electrónica a una hoja de Excel. También es valido el formato Cuaderno 43, si bien una vez obtenido hay que importarlo a Excel.

Pues bien en muchas ocasiones al volcar esa información en Excel se crean filas completamente vacías que no te sirven para nada y necesitas

Page 25: f57-8.weebly.comf57-8.weebly.com/uploads/2/8/0/9/...creacion_y_aplica… · Web viewEn Excel utilizamos VBA (Visual Basic para Aplicaciones)4- Ocasionalmente un formulario donde trabajar

eliminar sin mas.

Para realizar dicha operación, eliminar filas vacías, puedes guardar una Macro en Excel, en concreto yo uso la que puedes ver al final del post.

Una vez ejecutada la macro las filas te quedan seguidas sin datos en blanco entre ellas.

Otra de las utilidades es que al eliminar las filas vacías podrás realizar filtros de datos, subtotales, tablas dinámicas, etc., cosa que sin haberlas eliminado no se podría hacer.

Te recomiendo que lo pruebes.

Macro:

Sub eliminarfilavacia()For fila = 1 To 6000If Cells(fila, 4).Value = "" ThenRows(fila).DeleteEnd IfNext filaEnd Sub

Para ésta exploración te verás obligado a utilizar la función macro de tu cámara, lentillas o mejor aún, si cuentas con la posibilidad de usar un objetivo dedicado de alta magnificación, los resultados serán todavía de mejor calidad.

Al utilizar macro en cualquiera de las variables anteriormente mencionadas, la profundidad de campo se reduce significativamente, lo cual quiere

Page 26: f57-8.weebly.comf57-8.weebly.com/uploads/2/8/0/9/...creacion_y_aplica… · Web viewEn Excel utilizamos VBA (Visual Basic para Aplicaciones)4- Ocasionalmente un formulario donde trabajar

decir que tus zonas de nitidez serán limitadas y debes tomar en cuenta éste factor para priorizar tu enfoque a aquellos elementos de la composición de mayor importancia y significado.

Las tomas con macro también implican la necesaria cercanía de tu cámara (y tú en consecuencia), con los sujetos de la toma por lo que probablemente tengas que arrodillarte e incluso arrastrarte para lograr las imágenes. No te preocupes mucho por la estabilidad porque aunque algunos insectos pueden mantenerse estáticos durante una eternidad, la mayoría de ellos seguramente saldrán huyendo al detectarte, por eso, recomiendo que utilices el modo de prioridad de velocidad de tu cámara y configures obturaciones por arriba de 1/125 seg si las condiciones de iluminación te lo permiten

Uso del macro

Antes de ingresar al desarrollo del Lenguaje Visual Basic para Aplicaciones, haremos una breve exposición de algunas herramientas del Excel que se supone son conocidas por nuestro amable lector. Sin embargo, para unificar criterios y con el ánimo de recordar lo conocido, haremos una exposición de la secuencia de pasos que se sigue para ejecutar o usar determinadas herramientas.

Este repaso nos servirá también para mostrar dicha secuencia usado en las versiones  Excel 2003 y Excel 2007.

El objetivo de esta sección es, entonces, refrescar al participante de dichos procedimientos a fin de que

Page 27: f57-8.weebly.comf57-8.weebly.com/uploads/2/8/0/9/...creacion_y_aplica… · Web viewEn Excel utilizamos VBA (Visual Basic para Aplicaciones)4- Ocasionalmente un formulario donde trabajar

pueda usarlos sea durante la grabación de macros o cuando tenga que programar ciertas acciones que requieran del uso de tales  procedimientos. En el numeral 1 presentamos la secuencia de pasos para realizar o ejecutar la  herramienta con algunas observaciones y comentarios. En el numeral 2 daremos  algunos ejemplos de grabación de macros que hagan uso de determinadas  herramientas. En el numeral 3 desarrollaremos algunas macros que nos permitan  realizar algunas operaciones en Excel de uso frecuente. Esta introducción termina con una breve exposición de la filosofía de objetos en la Programación Orientada a Objetos (POO), técnica empleada en la programación de macros.

Usamos filtro avanzado para poder extraer, sea en una misma hoja o en otra, ciertos registros de una base de datos que cumplen determinadas condiciones.

Para realizar el filtro avanzado es necesario definir previamente el rango de criterios así como conocer el rango de datos y la celda, a partir de la cual se deben emitir los resultados.

El rango de criterios debe contener en su primera fila, los nombres de los campos (columnas) y en las siguientes filas contener los valores o criterios del filtrado.

La imagen que se presenta en la Figura 01, nos muestran la secuencia de pasos que se debe seguir para realizar el filtro avanzado.

En la ventana de diálogo Filtro avanzado seleccione dónde desea el listado, cuál es el rango de criterios y a partir de qué celda se debe recibir los

Page 28: f57-8.weebly.comf57-8.weebly.com/uploads/2/8/0/9/...creacion_y_aplica… · Web viewEn Excel utilizamos VBA (Visual Basic para Aplicaciones)4- Ocasionalmente un formulario donde trabajar

resultados.Las macros de Excel nos permiten automatizar tareas que realizamos cotidianamente de manera que podamos ser más eficientes en nuestro trabajo. Una macro no es más que una serie de comandos o instrucciones que permanecen almacenados dentro de Excel y que podemos ejecutar cuando sea necesario y cuantas veces lo deseemos. 

si utilizas Excel frecuentemente es posible que en alguna ocasión te hayas encontrado ejecutando una misma serie de acciones una y otra vez. Esas acciones que haces repetidas veces se podrían automatizar con una macro.

Una macro es un conjunto de comandos que se almacena en un lugar especial de Excel de manera que están siempre disponibles cuando los necesites ejecutar.

Por ejemplo, si todas las mañanas creas un reporte de ventas y en ese reporte siempre das el mismo formato a los textos, se podría crear una macro para que lo haga automáticamente por ti. Las macros se utilizan principalmente para eliminar la necesidad de repetir los pasos de aquellas tareas que realizas una y otra vez.

Un lenguaje de programación Las macros se escriben en un lenguaje de computadora especial que es conocido como Visual Basic forApplications (VBA). Este lenguaje permite acceder a prácticamente todas 

las funcionalidades de Excel y con ello también ampliar la funcionalidad del programa.

Page 29: f57-8.weebly.comf57-8.weebly.com/uploads/2/8/0/9/...creacion_y_aplica… · Web viewEn Excel utilizamos VBA (Visual Basic para Aplicaciones)4- Ocasionalmente un formulario donde trabajar

Pero no te preocupes si no eres un programador de computadoras, Excel provee de una herramienta especial que permite crear una macro sin necesidad de conocer los detalles del lenguaje de programación.

Aunque si aceptas el desafío y te introduces en el mundo de la programación VBA pronto te convertirás en un Ninja de Excel. Verás que crear una macro en Excel no es tan complicado y será una manera fácil y rápida de eliminar esas tareas repetitivas que todos los días te quitan minutos preciados de tu tiempo.

Una macro nos ayuda a automatizar aquellas tareas que hacemos repetidamente. Una macro es una serie de instrucciones que son guardadas dentro de un archivo de Excel para poder ser ejecutadas cuando lo necesitemos.

      Automatización de tareas Seguramente estás familiarizado con procesos de automatización en el ámbito industrial. Un ejemplo muy claro son las plantas ensambladoras de automóviles donde existen robots que han sustituido tareas que antes eran hechas por humanos. La automatización trajo beneficios como mayor eficiencia y productividad de las plantas y un mejor aprovechamiento del tiempo del personal al reducir la cantidad de tareas repetitivas que realizaban.

De la misma manera las macros nos ayudan a eliminar esas tareas repetitivas de nuestro trabajo

Page 30: f57-8.weebly.comf57-8.weebly.com/uploads/2/8/0/9/...creacion_y_aplica… · Web viewEn Excel utilizamos VBA (Visual Basic para Aplicaciones)4- Ocasionalmente un formulario donde trabajar

cotidiano al permitirnos utilizar mejor nuestro tiempo en el análisis de los datos  y en la toma de decisiones.

¿Cómo se ve una macro en Excel? Las macros son escritas en un lenguaje de computadora conocido como VBA por sus siglas en inglés (Visual Basic forApplications). Como cualquier otro lenguaje de computadora debemos aprender a utilizar los comandos que nos ayudarán a indicar a Excel lo que deseamos hacer con nuestros datos.

Aprender el lenguaje VBA no es nada complicado y se puede lograr fácilmente. Lo que toma un poco más de tiempo es pulir nuestras habilidades de programación. Lo que quiero decir con esto es que para ser un buen programador de macros debes dedicar tiempo en resolver múltiples problemas en donde puedas llevar al límite el lenguaje VBA.

Creación de una macro Las macros se crean con el Editor de Visual Basic el cual nos permitirá introducir el código con las instrucciones que serán ejecutadas por la macro.

Existe otro método que es utilizar la Grabadora de macros la cual irá grabando todas las acciones que realicemos en Excel hasta que detengamos la grabación. Una vez grabada la macro podremos “reproducir” de nuevo las acciones con tan solo un clic.

En una consolidación Procedimiento para grabar una macro:En Excel 2003:Puede usar una de las siguientes opciones:

Page 31: f57-8.weebly.comf57-8.weebly.com/uploads/2/8/0/9/...creacion_y_aplica… · Web viewEn Excel utilizamos VBA (Visual Basic para Aplicaciones)4- Ocasionalmente un formulario donde trabajar

Activar la barra de herramientas de Visual Basic y hacer clic en el botón <Grabar nueva macro>.

Puede usar la secuencia <Herramientas> - <Macro> - <Grabar nueva macro>.

En Excel 2007:

Debe tener activada la ficha del Programador.

Hacer clic en Grabar macro del grupo Código

A continuación y en ambas versiones, debe dar nombre a la macro (sin dejar espacio en blanco); ingresar una tecla para el método abreviado y verificar dónde desea grabar la macro: en el libro actual, en un nuevo libro o en el libro de macros personal.

Ahora ya debe realizar todas las operaciones que desea que haga la macro

Al final (y sin hacer otra cosa) debe detener la grabación de la macro haciendo clic en un pequeño botón que se dispone en Excel 2003 o en el icono que aparece en el lado izquierdo de la barra de estado en Excel 2007.

Ahora sí pasemos a los ejemplos de aplicación de macros.

Ejemplo

Page 32: f57-8.weebly.comf57-8.weebly.com/uploads/2/8/0/9/...creacion_y_aplica… · Web viewEn Excel utilizamos VBA (Visual Basic para Aplicaciones)4- Ocasionalmente un formulario donde trabajar

Grabe una macro que permita consolidar datos de proyecciones mensuales, cada una de las cuales está en una hoja diferente. Para ello abra el archivo Proyecciones.xlsx.

Antes de iniciar la grabación verifique lo siguiente:

Los rangos a ser consolidados tienen la misma estructura en todas las hojas, aunque la cantidad de filas puede no ser la misma

Para mayor facilidad al ingresar los rangos, sería bueno usar nombres de rangos y no rangos mismos. Para ello ya hemos dado nombre a cada uno de ellos.

Se debe tener cuidado de ordenar las hojas ya que el Excel ordena alfabéticamente los rango de consolidación en la lista <Agregar>.

Abra el archivo Proyecciones.xls. Ubíquese en la hoja <Análisis de ventas>

El nombre de la macro es MacCons01; el método abreviado es <CTRL> + <k>

Solución

Antes de iniciar la grabación de la macro, daremos nombre a cada uno de los rangos. Puesto que el rango es el mismo, démosle nombre Mes01 a Enero, Mes02 a Febrero, etc.

Page 33: f57-8.weebly.comf57-8.weebly.com/uploads/2/8/0/9/...creacion_y_aplica… · Web viewEn Excel utilizamos VBA (Visual Basic para Aplicaciones)4- Ocasionalmente un formulario donde trabajar

Durante la grabación de la macro, en el cuadro de referencia, digite el nombre del rango de cada hoja y haga clic en <Agregar>.

A continuación active las opciones de Fila superior y columna izquierda. Luego detenga la grabación.

Para ejecutar la macro debe eliminar los rangos consolidados de la ventana de consolidación.

http://hojasdecalculo.about.com/od/Excel_avanzado/ss/Crear-Y-Usar-Una-Macro.htm

http://www.fernocas.com/opositores/temarios_apuntes/documentos/excel.pdf