You are on page 1of 19

Telecomunicaciones, Administracin de Redes de

Computadores y Ofimtica
Macros en Excel (para empezar revisa estos videos)
http://www.youtube.com/watch?v=Mz709AIeyLk&feature=related
http://www.youtube.com/watch?v=o7nrCa1U22o&feature=related
MACROS
INTRODUCCION:
Los programas que se realizan en Excel se llaman MACROS y estos van desde simples
instrucciones de una o dos lneas de cdigo hasta cosas mucho mas complejas. Lo
interesante de todo esto es que para hacer MACROS no hace falta saber programar y aun
as se pueden generar macros muy tiles y que nos pueden ahorrar mucho tiempo y trabajo.
Este tipo de MACROS es la que se puede generar con la GRAVADORA DE MACROS.
Es muy comn, en el trabajo diario , tener que hacer tareas repetitiivas como por ejemplo
hacer una plantilla con un cierto formato, ttulo, encabezamientos ,etc y sera muy
conveniente poder realizarla apretando un botn, bueno, pues esto se pude realizar con la
grabadora de macros, la cual grava estas acciones y las traduce a cdigo ( programacin VBA)
Supongamos que todos los dias tengo que generar una lista con el movimiento de un
comercio de computadoras, para organizar los datos que iremos ingresando, es conveniente
escribir los encabezados de cada columna, supongamos que estos encabezados son

y quiero que esten como se ve en la figura de arriba, tambin quiero que estos encabezados
aparezcan automticamente todas las maanas(al apretar un botn por ejemplo). Como no se
nada de programacin VBA voy a utilizar la grabadora de macros. Hay tres formas de poner
en funcionamiento la grabadora de macros:
1.

Vamos a la pestaa Vista y en la seccin Macros desplegamos el submen Macros y


dentro de este submen seleccionamos la opcin Grabar macro

2.

Pulsando el botn que se encuentra en la parte inferior izquierda de la pantalla de


Excel( barra de estado)

PEDRO ALBERTO ARIAS QUINTERO


Ing. de sistemas UMB - Especialista en telecomunicaciones UIS
Certificado Internacional MCP - MOS Master
Instructor Sena - Girn

Telecomunicaciones, Administracin de Redes de


Computadores y Ofimtica

de cualquiera de estas dos formas aparece el cuadro de dialogo Grabar Macro

donde podemos dar un nombre a la macro, sin dejar espacios en blanco.


En Mtodo abreviado: elegimos una combinacin de la tecla CTRL + "una tecla del teclado",
para ejecutar la macro, cuidando de no poner una combinacin utilizada por Excel en alguno
de sus atajos.
En Guardar macro en: podemos elegir guardar la macro en el libro activo, en el libro de
macros personal o en otro libro.
En Descripcin: podemos describir que hace de la macro o cualquier otro comentario.
Finalmente pulsamos en aceptar y el botn que estaba en la barra de estado se transforma en
el que est marcado por la flecha en la figura, comenzando la grabacin.

(Con este botn tambin se puede detener la grabacin.)


En estas circunstancias, empezando por una celda cualquiera vamos luego a la celda A1,
escribimos los encabezados con maysculas los centramos, hacemos los recuadros
correspondientes y detenemos la grabacin ( no olvidarse), esto va a generar un cdigo VBA
en forma automtica

PEDRO ALBERTO ARIAS QUINTERO


Ing. de sistemas UMB - Especialista en telecomunicaciones UIS
Certificado Internacional MCP - MOS Master
Instructor Sena - Girn

Telecomunicaciones, Administracin de Redes de


Computadores y Ofimtica

PEDRO ALBERTO ARIAS QUINTERO


Ing. de sistemas UMB - Especialista en telecomunicaciones UIS
Certificado Internacional MCP - MOS Master
Instructor Sena - Girn

Telecomunicaciones, Administracin de Redes de


Computadores y Ofimtica
No tenemos porque entender este cdigo, solo dire que se puede hacer lo mismo con un
cdigo mas reducido o dicho de otra manera, la grabadora de macros genera un cdigo
redundante, que se puede reducir aprendiendo Programacin VBA
Para que la macro haga su tarea, se puede:
1.

utilizar el mtodo abreviado, que en nuestro caso es CTRL+ r .

2.

Ir a las pestaa Programador, seccin Cdigo y luego pulsar en Macros

luego aparece el cuadro de dilogo Macro, donde aparece la macro creada, para luego
apretar el botn ejecutar

Tambin con este cuadro de dilogo podemos eliminar macros.


3. La tercera manera de que una macro grabada se manifieste, es creando un botn.
Para crear un botn vamos a la pestaa Programador, seccin controles y luego pulsamos en
el icono Insertar
PEDRO ALBERTO ARIAS QUINTERO
Ing. de sistemas UMB - Especialista en telecomunicaciones UIS
Certificado Internacional MCP - MOS Master
Instructor Sena - Girn

Telecomunicaciones, Administracin de Redes de


Computadores y Ofimtica

En los Controles de formulario pulsando donde seala la flecha aparece un puntero en forma
de cruz que nos permite colocar el botn en un lugar cualquiera y automticamente aparece la
ventana Asignar macrodonde se puede seleccionar la macro a la que le queremos asignar el
botn

aceptamos y le damos un nombre; en nuestro caso podra ser Encabezados.

Veremos que cuando el mause pasa por el botn, este se transforma en una mano, luego
hacemos clic y se dispara la macro con el resultado esperado

PEDRO ALBERTO ARIAS QUINTERO


Ing. de sistemas UMB - Especialista en telecomunicaciones UIS
Certificado Internacional MCP - MOS Master
Instructor Sena - Girn

Telecomunicaciones, Administracin de Redes de


Computadores y Ofimtica

1. Otro ejemplo de Macro


Frecuentemente nos encontramos que en algunas hojas de excel repetimos las mismas tareas o
funciones una y otra vez, ya sea una bsqueda, sumas o subtotales, etc. Este tipo de tareas podran
ser programadas mediante macros, aqu veremos lo bsico indispensable que hay que saber al
respecto.
Una macro la podemos definir como una rutina que almacen un conjunto de tareas a realizar. La
grabacin de una macro nos escribe un programa en un lenguaje llamado Visual Basic for
Applications, pero no te preocupes que no es necesario saber algo de programacin para grabar
macros.
Lo primero que haremos ser definir la tarea que queremos realizar.

Posiciona el cursor en la celda "A1" ,

Escribir una tabla de nombres de personas con un sueldo mensual,

Realizar una funcin de suma,

Dar formato a la tabla,

Se posiciona en la primera celda de la tabla,

1. Comenzar a grabar la macro: Una vez que ya tenemos un libro nuevo en excel, iremos al botn
"Grabar Macro".

En versiones anteriores de excel se encuentra en el menu Herramientas - Macros


2. Escribir los datos de la macro: Nos deber aparecer una ventana que nos pregunta los datos
generales de la macro, por el momento slo escribiremos el nombre de la macro que ser
"MiPrimeraMacro" (sin espacios) y en "Guardar macro en" elegimos "Libro de macros personal"

PEDRO ALBERTO ARIAS QUINTERO


Ing. de sistemas UMB - Especialista en telecomunicaciones UIS
Certificado Internacional MCP - MOS Master
Instructor Sena - Girn

Telecomunicaciones, Administracin de Redes de


Computadores y Ofimtica

3. Grabar la macro: Una vez que en el cuadro anterior hacemos clic en el botn Aceptar quedan
guardados los datos de la macro y en ese mismo momento comienza la grabacin.
A partir de aqu todo lo que hagas quedar guardado en la misma forma en la que lo vas realizando
entonces comenzamos a realizar los pasos que queremos que ejecute nuestra macro:
3.1 Oprimir las teclas Ctrl+Inicio para que el cursor se posiciones en la celda "A1"
3.2 Comenzar a escribr una lista de nombres (los que tu quieras) desde la celda "A1" hasta la celda
"A4", es decir cuatro nombres.
3.3 Vamos a la celda "B1" y escribimos algunos ejemplos de sueldos mensuales que podran tener
esas personas. De la misma forma llenamos de la celda "B1" hasta la celda "B4".
3.4 Abrimos la columna "A" a la medida de ancho necesaria para ver bien los nombres escritos en el
paso 3.2
3.5 Nos posicionamos en la celda "B5" y escribimos "=suma(b1:b4)" Tambin podemos hacer clic en
el botn de la funcin de suma.
3.6 Seleccionamos las celdas con datos y le ponemos bordes.
4. Finalizar la grabacin: En el mismo lugar en el que anteriormente estaba el botn de "Grabar
macro" segn el paso 1, ahora estar uno que se llama "Detener Grabacin", hacemos clic en ese
botn. En este momento ya esta grabada nuestra macro.
Si hicimos los pasos correctamente, ahora puedemos ver como qued la grabacin de la siguiente
forma: abrimos un libro nuevo y presionando el botn de macros, se abrir una ventana preguntando
que macro queremoss ejecutar y al hacer doble clic en "MiPrimeraMacro" se ejecutarn todos los
pasos que grabamos.
De esta forma puedes grabar las tareas que ms repitas en excel y podrs ahorrar mucho tiempo.

2. Creacin de formularios en Excel para aplicar macros


Antes de crear un Userform debemos pensar bien cul ser su objetivo y cules son los controles que
utilizaremos.

Objetivo
PEDRO ALBERTO ARIAS QUINTERO
Ing. de sistemas UMB - Especialista en telecomunicaciones UIS
Certificado Internacional MCP - MOS Master
Instructor Sena - Girn

Telecomunicaciones, Administracin de Redes de


Computadores y Ofimtica
Crear un Userform para que un usuario complete unos datos personales (Nombre, Edad y Fecha de
Nacimiento). Luego que el usuario complete sus datos, al apretar un botn, los mismos se volcarn en
una tabla de Excel.

Los controles que utilizaremos son:


Textbox: para que el usuario ingrese los datos
Label: para darle el nombre a los Textbox
CommandButton: para proceder con el ingreso de datos o cancelar

1. Creamos la tabla en la hoja Excel


Primero debemos crear un nuevo libro que contenga una tabla Excel donde se volcarn los datos del
Userform. Para esto creamos un nuevo libro llamado Datos.xlsx y creamos la siguiente tabla:

2. Creamos un Userform (UF)

Los UF se crean desde el editor de visual basic.


2.1 Abrimos el editor con ALT+F11
2.2 Seleccionamos Ver > Explorador de Proyectos para ver la lista de proyectos disponibles (los mismos
se vern en la parte izquierda de la ventana).
PEDRO ALBERTO ARIAS QUINTERO
Ing. de sistemas UMB - Especialista en telecomunicaciones UIS
Certificado Internacional MCP - MOS Master
Instructor Sena - Girn

Telecomunicaciones, Administracin de Redes de


Computadores y Ofimtica
2.3 En la venta de Proyectos seleccionamos VBAProject(Datos.xls)
2.4 Desde el men superior elegimos Insertar > Userform
2.5 Aparecer un nuevo Userform vaco junto con el Cuadro de Herramientas (si el mismo no aparece se
puede abrir desde el men Ver > Cuadro de Herramientas)

3. Nombramos el Userform
3.1 Abrimos las propiedades desde el men Ver > Ventana Propiedades.
3.2 Hacemos doble clic en donde dice (Name) UserForm1, en la parte superior y tipeamos DatosUF,
luego Enter (este es el nombre con el que nos referiremos al Userform desde las macros).
3.3 El nombre del Userform cambi en la Ventana de Proyecto, pero el Userform mismo sigue
mostrando "Userform1" en su barra de su ttulo. Para cambiarlo vamos a la Ventana Propiedades,
hacemos doble clic en Caption, escribimos Datos Personales (encima de Userform1) y luego Enter.
Ahora, la barra de ttulo del Userform es ms apropiada para nuestro propsito y para darle mejor
informacin al usuario.

PEDRO ALBERTO ARIAS QUINTERO


Ing. de sistemas UMB - Especialista en telecomunicaciones UIS
Certificado Internacional MCP - MOS Master
Instructor Sena - Girn

Telecomunicaciones, Administracin de Redes de


Computadores y Ofimtica

4. Agregamos un Cuadro de Texto


Para permitir que el usuario ingrese datos en el Userform agregamos un control TextBox, desde el
Cuadro de Herramientas.
4.1 Hacemos clic en el control de TextBox y luego hacemos clic en el Userform, en la parte donde
querramos ubicarlo.

4.2 Con el nuevo TextBox seleccionado hacemos doble clic en la Ventana de Propiedades, propiedad
(Name), tipeamos la palabra UFNombre y luego enter (este es el nombre que le asignamos al objeto para
luego referirnos a l desde las macros).

PEDRO ALBERTO ARIAS QUINTERO


Ing. de sistemas UMB - Especialista en telecomunicaciones UIS
Certificado Internacional MCP - MOS Master
Instructor Sena - Girn

Telecomunicaciones, Administracin de Redes de


Computadores y Ofimtica

4.3 Hacemos clic en una parte vaca del Userform, para volver a seleccionar todo el Userform.

5. Agregamos un Texto
Para ayudar al usuario a ingresar sus datos, debemos indicarle que es lo que debe introducir en el
Cuadro de Texto del Paso anterior. Podemos agregar una etiqueta de texto que describa la informacin
que se debe introducir.
5.1 En el Cuadro de Herramientas hacemos clic en el botn Label o Etiqueta
5.2 En el Userform hacemos clic a la izquierda del TextBox, para agregar la Etiqueta de texto.

5.3 Si fuera necesario podemos cambiar el tamao de la etiqueta de texto o del Cuadro de Texto para
que no se superpongan. Se puede hacer clic en sus bordes (pequeos cuadraditos) y arrastrar para
cambiar su tamao.

PEDRO ALBERTO ARIAS QUINTERO


Ing. de sistemas UMB - Especialista en telecomunicaciones UIS
Certificado Internacional MCP - MOS Master
Instructor Sena - Girn

Telecomunicaciones, Administracin de Redes de


Computadores y Ofimtica
5.4. Seleccionamos la nueva etiqueta, hacemos doble clic en la propiedad Caption de la ventana de
propiedades, tipeamos Nombre y luego Enter.

5.5 Hacemos clic en alguna parte vaca del Userform para seleccionarlo y mostrar el cuadro de
herramientas.

6. Agregamos los Cuadros de Texto restantes


Agregamos los cuadros de texto y las etiquetas restantes (ya lo hicimos para el nombre as que
repetimos para Edad y Fecha de Nacimiento).

Repetimos los pasos 4 y 5 y agregamos:

* Un TextBox cuyo (Name) sea UFEdad, con una Etiqueta llamada "Edad"
* Un TextBox cuyo (Name) sea UFFecha, con una Etiqueta llamada "Fecha Nac."

PEDRO ALBERTO ARIAS QUINTERO


Ing. de sistemas UMB - Especialista en telecomunicaciones UIS
Certificado Internacional MCP - MOS Master
Instructor Sena - Girn

Telecomunicaciones, Administracin de Redes de


Computadores y Ofimtica
Es muy importante que no olvides asignar bien los nombres (Name) a los Textbox, si no la macro dar
error. Puedes revisar los pasos 4 y 5 para recordar como hacerlo.

Si los textbox no quedan alineados se pueden alinear de la siguiente forma:

1. Clic en el primer TextBox


2. Mantieniendo pulsada la tecla MAYUS, selecciona los otros TextBox
3. Vamos al men Formato > Alinear > Izquierda
4. Hacemos clic en alguna parte vaca del Userform para seleccionarlo y mostrar el cuadro de
herramientas.

7. Agregamos los Botones


Para permitir que el usuario ejecute una accin, se pueden agregar un Botn de comando. Nuestro
Userform tendr un botn para Agregar los datos a la tabla Excel y otro botn para Cerrar el Userform.

7.1 En el Cuadro de Herramientas hacemos clic en Botn de comando.


7.2 En el Userform hacemos clic en la parte inferior izquierda para agregar el botn.
7.3 Con el nuevo botn seleccionado hacemos doble clic en la propiedad (Nombre) de la Ventana de
Propiedades, tipeamos UFAgregar y luego enter.
PEDRO ALBERTO ARIAS QUINTERO
Ing. de sistemas UMB - Especialista en telecomunicaciones UIS
Certificado Internacional MCP - MOS Master
Instructor Sena - Girn

Telecomunicaciones, Administracin de Redes de


Computadores y Ofimtica
7.4 Con el nuevo botn seleccionado hacemos doble clic en su propiedad Caption en la Ventana de
Propiedades, tipeamos Agregar y luego enter.
7.5 Hacemos clic en alguna parte vaca del Userform para seleccionarlo y mostrar el Cuadro de
Herramientas.
7.6 Repetimos los pasos anteriores para agregar otro Botn de comando llamado UFCerrar y nombre
"Cerrar".
7.8 Si fuese necesario podemos reubicar los botones dentro del Userform.

Es muy importante que no olvides asignar bien los nombres (Name) a los Botones de comando, si no la
macro dar error. Esto se explica en el paso 7.3 y luego debers repetirlo para el otro botn, tal cual se
indica en el paso 7.6.

8. Agregamos el cdigo al botn Agregar


8.1 Seleccionamos nuestro botn de comando Agregar
8.2 Desde el men superior elegimos la opcin Ver > Cdigo. Esto abrir una ventana donde podremos
escribir cdigo macro para dicho objeto.
8.3 Donde titila el cursor escribimos lo siguiente:

PEDRO ALBERTO ARIAS QUINTERO


Ing. de sistemas UMB - Especialista en telecomunicaciones UIS
Certificado Internacional MCP - MOS Master
Instructor Sena - Girn

Telecomunicaciones, Administracin de Redes de


Computadores y Ofimtica
Private Sub UFAgregar_Click()
Dim iFila As Long
Dim ws As Worksheet
Set ws = Worksheets(1)
'encuenta la siguiente fila vaca
iFila = ws.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
'Verifica que se ingrese un nombre
If Trim(Me.UFNombre.Value) = "" Then
Me.UFNombre.SetFocus
MsgBox "Debe ingresar un nombre"
Exit Sub
End If
'copy the data to the database
ws.Cells(iFila, 1).Value = Me.UFNombre.Value
ws.Cells(iFila, 2).Value = Me.UFEdad.Value
ws.Cells(iFila, 3).Value = Me.UFFecha.Value
'limpa el formulario
Me.UFNombre.Value = ""
Me.UFEdad.Value = ""
Me.UFFecha.Value = ""
Me.UFNombre.SetFocus
End Sub

8.4 En el men superior elegimos Ver > Objeto para regresar al Userform.

No te preocupes si no comprendes el cdigo. Hay muchos objetos, propiedades y mtodos nuevos.


Todos ellos se explican mejor en la 2 parte de este curso.

9. Agregamos el cdigo al botn Cerrar


PEDRO ALBERTO ARIAS QUINTERO
Ing. de sistemas UMB - Especialista en telecomunicaciones UIS
Certificado Internacional MCP - MOS Master
Instructor Sena - Girn

Telecomunicaciones, Administracin de Redes de


Computadores y Ofimtica

9.1 Seleccionamos el botn de comando Cerrar


9.2 En el men superior elegimos Ver > Cdigo
9.3 Donde titila el cursor escribimos el siguiente cdigo:

Private Sub UFCerrar_Click()


Unload Me
End Sub

9.4 En el men superior elegimos Ver > Objeto para regresar al Userform.

10. Permitir al usuario cerrar el Userform con la tecla ESC

10.1 Seleccionamos el botn de comando Cerrar


10.2 En la Ventana Propiedades cambiamos la propiedad Cancel a True.

Probar el Userform
Ya podemos probar el funcionamiento del Userform !

1. Hacemos clic en alguna parte vaca del Userform para seleccionarlo y mostrar el cuadro de
herramientas.
2. En el men superior elegimos Ejecutar > Ejecutar Sub/Userform
PEDRO ALBERTO ARIAS QUINTERO
Ing. de sistemas UMB - Especialista en telecomunicaciones UIS
Certificado Internacional MCP - MOS Master
Instructor Sena - Girn

Telecomunicaciones, Administracin de Redes de


Computadores y Ofimtica
3. Ahora podemos comenzar a completar el primer cuadro del Userform y escribimos un nombre, por ej.
Juan.
4. Presionamos la tecla TAB para movernos al siguiente cuadro de texto.
5. Cuando hemos completado todos los cuadros de texto, hacemos clic en el botn de Agregar y los
datos se completarn en la Tabla de Excel.
6. Podemos repetir los pasos anteriores e ir agregando distintos nombres con sus respectivos datos.
7. Hacemos clic en Cerrar para volver al editor de macros.

La tecla TAB sirve para moverse entre los distintos controles de un Userform. Si al presionar TAB el
orden del movimiento no es el correcto, es posible camabiarlo:

1. Clic derecho en una parte vaca del USerform


2. Elegimos Orden de Tabulacin.
3. Seleccionamos el control de la lista y con los botones de Mover Arriba o Mover Abajo ajustamos el
orden.
4. Hacemos clic en OK

Asignar un botn para ejecutar el Userform

Podemos agregar un botn para que un usuario pueda ejecutar el Userform desde la hoja Excel.

1. Activamos Excel, libro Datos.xls, Hoja 1


2. En la Barra de Dibujo, en el men Ver > Barras de Herramientas > Dibujo hacemos clic en una figura,
por ejemplo el cuadrado, y lo insertamos en la hoja.
PEDRO ALBERTO ARIAS QUINTERO
Ing. de sistemas UMB - Especialista en telecomunicaciones UIS
Certificado Internacional MCP - MOS Master
Instructor Sena - Girn

Telecomunicaciones, Administracin de Redes de


Computadores y Ofimtica
3. Seleccionamos dicha figura y con clic derecho en su borde elegimos Asignar Macro
4. Hacemos clic en el botn Nuevo
5. Donde titila el cursor escribimos: DatosUF.Show
6. Cada vez que hagamos clic en la figura se ejecutar el Userform.

PEDRO ALBERTO ARIAS QUINTERO


Ing. de sistemas UMB - Especialista en telecomunicaciones UIS
Certificado Internacional MCP - MOS Master
Instructor Sena - Girn

Telecomunicaciones, Administracin de Redes de


Computadores y Ofimtica

Y listo

PEDRO ALBERTO ARIAS QUINTERO


Ing. de sistemas UMB - Especialista en telecomunicaciones UIS
Certificado Internacional MCP - MOS Master
Instructor Sena - Girn

You might also like