You are on page 1of 62

C Co oo or rd di in na ac ci i n n

d de e
I In nf fo or rm m t ti ic ca a




M Ma an nu ua al l d de el l
P Pa ar rt ti ic ci ip pa an nt te e

A
A
u
u
t
t
o
o
m
m
a
a
t
t
i
i
z
z
a
a
c
c
i
i

n
n

d
d
e
e
H
H
o
o
j
j
a
a
s
s
d
d
e
e

C
C

l
l
c
c
u
u
l
l
o
o
e
e
n
n
E
E
x
x
c
c
e
e
l
l



























AUTOMATIZACIN DE HOJAS DE CLCULO EN EXCEL PRESENTACION
CENTRO NACIONAL DE CAPACITACION Y CALIDADIMSS-SNTSS 3

ndice:
Presentacin ..................................................................................................................................... 5
Automatizacin de Hojas de Clculo en Excel ............................................................................ 7
Mdulo I Funciones de Usuario ....................................................................................................... 9
INTRODUCCIN ............................................................................................................................................ 11
1.1 CREACIN DE FUNCIONES ................................................................................................................... 11
1.2 SINTAXIS DE UNA FUNCIN. ................................................................................................................ 11
1.3 COMO EJECUTAR UNA FUNCION ......................................................................................................... 11
1.4 COMO ELIMINAR UNA FUNCION ........................................................................................................... 11
1.5 PROGRAMACION ESTRUCTURADA. ................................................................................................... 11
1.6 ESTRUCTURAS SECUENCIALES ......................................................................................................... 12
1.7 ESTRUCTURAS SELECTIVAS. ............................................................................................................... 12
1.8 ESTRUCTURAS REPETITIVAS .............................................................................................................. 14
Mdulo II Macros ............................................................................................................................. 15
INTRODUCCIN ............................................................................................................................................ 17
2.1 MACROS .................................................................................................................................................. 17
2.2 TIPOS DE MACROS ................................................................................................................................ 17
2.3 EL CDIGO DE LA MACRO .................................................................................................................... 18
2.4 USO DE BOTONES PARA FACILITAR LA EJECUCIN DE MACROS ................................................. 18
2.5 ASIGNAR MACRO A UN OBJETO GRAFICO ............................................................................................... 19
2.6 MODIFICAR UNA MACRO ....................................................................................................................... 19
2.7 INSTRUCCIONES VISUAL BASIC PARA MODIFICACION DE MACROS ............................................. 19
Mdulo III Aplicacin de Macros .................................................................................................... 23
INTRODUCCIN ............................................................................................................................................ 25
3.1 HOJA MENU PRINCIPAL ......................................................................................................................... 25
3.2 HOJA ALMACEN ...................................................................................................................................... 26
3.3 HOJA VENTAS ......................................................................................................................................... 27
3.4 HOJA FACTURAS .................................................................................................................................... 28
3.5 HOJA DERECHOS ................................................................................................................................... 29
Mdulo IV Barras y Mens Personalizados ................................................................................... 31
INTRODUCCIN ............................................................................................................................................ 33
4.1 CREAR UNA BARRA DE HERRAMIENTAS PERSONALIZADA ........................................................... 33
4.2 BOTONES DE MACRO EN BARRAS PERSONALIZADAS ................................................................... 33
4.3 CREAR UN MENU PERSONALIZADO .................................................................................................... 34
4.4 ELEMENTOS DEL MEN PERSONALIZADO ...................................................................................... 34
4.5 ASIGNAR MACROS A MEN PERSONALIZADO ................................................................................ 35
4.6 SUBMENS .............................................................................................................................................. 35
PRESENTACION AUTOMATIZACIN DE HOJAS DE CLCULO EN EXCEL
4 CENTRO NACIONAL DE CAPACITACION Y CALIDAD IMSS-SNTSS
Mdulo V Cuadros y Hojas de Dilogo .......................................................................................... 36
INTRODUCCION ............................................................................................................................................38
5.1 CUADROS DE DILOGO .........................................................................................................................38
5.2 APLICACIN Y PROGRAMACIN DE CONTROLES EN UN CUADRO DE DILOGO:.......................38
5.3 APLICACIN DE MACROS EN UNA HOJA DE DILOGO ...................................................................39
Anexos ............................................................................................................................................. 41
ANEXO 1. EJERCICIOS DE EXCEL AVANZADO .........................................................................................43
ANEXO 2. SISTEMA DE MACROS PARA EXCEL AVANZADO ...................................................................53
Comentarios .................................................................................................................................... 61

AUTOMATIZACIN DE HOJAS DE CLCULO EN EXCEL PRESENTACION
CENTRO NACIONAL DE CAPACITACION Y CALIDADIMSS-SNTSS 5

P Pr re es se en nt ta ac ci i n n
El Instituto Mexicano del Seguro Social conjuntamente con el Sindicato Nacional de Trabajadores del Seguro
Social comprometidos con la superacin y actualizacin del personal, impulsan la Capacitacin en materia de
Informtica, Humanstica, Promocional y de Programas Institucionales que se vinculen a la solucin de los
problemas de la operacin, favoreciendo el otorgamiento de servicios de calidad.
En este contexto la Coordinacin de Informtica del Centro Nacional de Capacitacin y Calidad, cumple con la
tarea de Disear los cursos de capacitacin y elaborar los Materiales de Apoyo Didcticos de conformidad con la
NTCL (Norma Tcnica de Competencia Laboral) Diseo e Imparticin de Cursos de Capacitacin para sustentar el
programa de capacitacin en Informtica que integran el Plan de Trabajo de esta Coordinacin y que estn
abiertos a todos nuestros compaeros trabajadores basados en la NTCL Elaboracin de documentos mediante
herramientas de cmputo.
As pues, se presenta a continuacin el Material de Apoyo Didctico del Participante Automatizacin de Hojas de
Clculo en Excel, que ha sido elaborado con base en la Unidad de Competencia Elaboracin de hojas de clculo
mediante aplicaciones de cmputo Cdigo UINF0652.01 con informacin actualizada y el sustento pedaggico y
didctico para que cumpla con el fin para el cual fue elaborado: guiar y ayudar en el aprendizaje de los
trabajadores, que implica la autosuficiencia en la operacin de herramientas para el procesamiento de Hojas de
Clculo, desde el inicio de la aplicacin, el formato a la Hoja, el tratamiento a los datos, la reproduccin en
impresora o archivos y el guardado del documento.

PRESENTACION AUTOMATIZACIN DE HOJAS DE CLCULO EN EXCEL
6 CENTRO NACIONAL DE CAPACITACION Y CALIDAD IMSS-SNTSS
Este material de apoyo didctico para el participante est estructurado en cuatro Mdulos.
Mdulo I: Funciones de Usuario para Frmulas complejas: En este mdulo usted aprender a crear sus
propias funciones de usuario. Una funcin de usuario sirve para crear frmulas complejas programadas
en Excel mediante programacin Visual Basic y colocarlas dentro del asistente de funciones para su
uso posterior, tambin aprender a llamar a funciones dentro de una funcin, usando el cdigo de
Visual Basic.
Mdulo II: Macros. Una macro es un conjunto de instrucciones a las que se da un nombre y que indica a Excel
una determinada accin a realizar. Este mdulo gua al participante en el conocimiento y aplicacin de
las macros y cmo se pueden utilizar para incrementar la productividad. Tambin veremos como
grabar, ejecutar, editar y asignar botones de rdenes a las macros creadas.
Mdulo III: Aplicacin de macros, en este mdulo el participante crear una aplicacin usando macros, en la
que aplicara todos los conocimientos adquiridos en los cursos anteriores de Excel.
Mdulo IV: Barras y Mens Personalizados: Para dar una mejor presentacin a sus libros de trabajo, este Mdulo
es el adecuado, ya que en l usted aprender a crear Barras y Mens personalizados e incluso crear su
propia barra y men para una aplicacin en especial, y as poder evitar que el usuario seleccione otras
opciones ajenas a la aplicacin.
Mdulo V: Cuadros y Hojas de Dilogo: Despus de haber creado y elaborado una serie de macros en sus
Hojas de Clculo en Excel, necesitara manejar todas sus macros desde una hoja especial de Dilogo,
esta opcin nos permite ejecutar macros que utilizan una hoja de Dilogo para una mejor presentacin
de sus sistemas en pantalla.
Es recomendable que para un buen aprovechamiento de este curso adquiera el conocimiento previo que le brindan
los cursos Introduccin al uso y Operacin de las Microcomputadoras , Administracin de Recursos con
Windows XP, Fundamentos de Programacin, Formato y Operaciones en Excel y Gestin de Datos en
Excel, con lo que seguir un proceso contino de enseanza-aprendizaje.
Es indispensable la prctica cotidiana de los temas tratados en este material de apoyo didctico, a fin de que
adquiera un mayor dominio de Excel 2003.
AUTOMATIZACIN DE HOJAS DE CLCULO EN EXCEL PRESENTACION
CENTRO NACIONAL DE CAPACITACION Y CALIDADIMSS-SNTSS 7

A Au ut to om ma at ti iz za ac ci i n n d de e H Ho oj ja as s d de e C C l lc cu ul lo o e en n E Ex xc ce el l

Objetivo General: Al trmino del curso el participante disear y aplicar macros en Excel mediante
ejercicios de aplicacin que automaticen sus hojas de clculo, optimizando tiempos al
obtener resultados que resuelvan problemas especficos en las tareas encomendadas en
su rea de trabajo.

Dirigido: Todo trabajador IMSS-SNTSS, de reas contables, financieras, estadsticas, actuariales,
etc., que requiera del conocimiento y aplicacin de macros para automatizar sus hojas de
clculo, al desempear sus tareas diarias de su rea laboral.


Requisitos: Haber acreditado los cursos: Introduccin al uso y operacin de las
microcomputadoras, Administracin de recursos con Windows XP,
Fundamentos de Programacin, Formato y Operaciones en Excel y Gestin de
Datos en Excel.

AUTOMATIZACIN DE HOJAS DE CLCULO EN EXCEL MDULO I: FUNCIONES DE USUARIO
CENTRO NACIONAL DE CAPACITACION Y CALIDADIMSS-SNTSS 9











Objetivo Especfico:
Al finalizar el mdulo el participante:

Conocer y aplicar el procedimiento para crear Funciones de Usuario.
Crear funciones de Usuario que necesite en su hoja de clculo para resolver
problemas especficos.
MDULO I: FUNCIONES DE USUARIO AUTOMATIZACIN DE HOJAS DE CLCULO EN EXCEL
10 CENTRO NACIONAL DE CAPACITACION Y CALIDAD IMSS-SNTSS
AUTOMATIZACIN DE HOJAS DE CLCULO EN EXCEL MDULO I: FUNCIONES DE USUARIO
CENTRO NACIONAL DE CAPACITACION Y CALIDADIMSS-SNTSS 11
INTRODUCCIN
Una funcin de usuario sirve para crear frmulas
complejas dentro de Excel y colocarlas dentro del
asistente de funciones para su uso posterior.
En este mdulo usted aprender a crear sus propias
funciones de usuario. Tambin aprender a llamar a
funciones dentro de una funcin, usando el cdigo de
Visual Basic.
Este contiene adems una lista de ejemplos de
funciones de usuario, que a su vez sern utilizadas
posteriormente como cualquier funcin del asistente de
funciones de Excel. Su alcance para los usuarios
depende de los conocimientos que tenga sobre Excel.
Nota:
Las funciones de usuario requieren de los
conocimientos mnimos de programacin en cualquier
compilador o interprete.
1.1 CREACIN DE FUNCIONES
Para crear una funcin de usuario necesita insertar una
hoja de Mdulo de Visual Basic en su libro de trabajo.
Para hacerlo proceda como se le indica a continuacin:
Insertar Mdulo de Visual Basic:
Clic en el men Herramientas > Macro > Editor
de Visual Basic
Clic en el men Insertar > Mdulo
Teclear cdigo de la funcin
Volver a la hoja de calculo
Nota: Todas las funciones se generan con cdigo de
Excel Visual Basic
1.2 SINTAXIS DE UNA FUNCIN.
La creacin de cualquier funcin de usuario en Excel
siempre deber obedecer los lineamientos que marca
la siguiente:
Sintaxis:

Function Nombre_de_funcion(Arg1,-Arg 2, ...Arg N)
Cuerpo de la funcin
End Function

1.3 COMO EJECUTAR UNA FUNCION
De forma predeterminada, una funcin definida por el
usuario se limita en mbito al libro en el que reside la
funcin. Es decir, slo hojas del mismo libro pueden
llamar a una funcin definida por el usuario.
Despus de escribir las lneas que componen el cdigo
de la funcin deber ejecutarla para comprobar su
funcionamiento. Para hacerlo siga este procedimiento:
Colquese en la Hoja donde desea utilizar la funcin
Clic en el icono Pegar funcin
Categora de la funcin: Definidas por el usuario
Nombre de la funcin: Seleccione el nombre de
la funcin
Aceptar
Colocar los parmetros o argumentos.
Aceptar
1.4 COMO ELIMINAR UNA FUNCION
Si desea eliminar alguna de las funciones de usuario
que previamente codific, proceda de la siguiente
forma:
Colocarse en el Editor de Visual Basic
(Herramientas > Macro > Editor de Visual Basic)
donde se encuentra la funcin
Marcar cdigo de la funcin
Eliminarlo
1.5 PROGRAMACION ESTRUCTURADA.
La programacin estructurada en sus inicios fue desa
rrollada por Edgar W. Dijkstra y se basa en el teorema de
la estructura desarrollado en 1966 por Bhm y Jacopini.
ste teorema establece que un programa propio puede
ser escrito utilizando slo las siguientes estructuras
lgicas de control: Secuenciales, Selectivas y
Repetitivas. Un programa se define como propio
cuando cumple con los siguientes requerimientos:
Tiene exactamente una entrada y una salida para
control del programa.
Existen caminos a seguir desde la entrada hasta la
salida que conducen por cada parte del programa,
es decir, no existen lazos infinitos ni instrucciones
que no se ejecutan.
La Programacin Estructurada permite codificar un
programa en comn acuerdo con las reglas siguientes:
El programa parte de un diseo modular.
Los mdulos son diseados de forma descendente.
Cada mdulo integra en su cdigo las tres
estructuras de control bsicas. Secuenciales,
Selectivas y Repetitivas.
MODULO I: FUNCIONES DE USUARIO AUTOMATIZACIN DE HOJAS DE CLCULO EN EXCEL
12 CENTRO NACIONAL DE CAPACITACION Y CALIDAD IMSS-SNTSS
La ventaja de utilizar ste tipo de programacin radica en
que las instrucciones son fciles de leer, comprender y
codificar permitiendo aprovechar al mximo los recursos
de la computadora
1.6 ESTRUCTURAS SECUENCIALES
La estructura de control secuencial consta de
entrada, acciones y salida, las cuales se agrupan
linealmente para su ejecucin.
Ejemplo 1
FUNCIN PARA CALCULAR UNA RAZ CBICA
' FECHA : ENERO 2008
' Funcin que calcula la raiz cbica de cualquier nmero
Function RAIZ3(NUMERO)
RAIZ3 es el nombre de la funcin y NUMERO es el parmetro
RAIZ3 = NUMERO ^ (1 / 3)
Esta lnea es el cuerpo de la funcin
End Function
Nota: Para colocar comentarios en una funcin,
coloque un apstrofe al principio de la lnea y despus
coloque el comentario, en el ejemplo anterior las 3
primeras lneas son comentarios, los comentarios no
afectan al cdigo de la funcin.
Ejemplo 2.
FUNCIN PARA CALCULAR CUALQUIER RAZ DE
CUALQUIER NMERO.
Function RAIZN(NUMERO, NUM_RAIZ)
RAIZN = NUMERO ^ (1 / NUM_RAIZ)
End Function
1.7 ESTRUCTURAS SELECTIVAS.
En las estructuras selectivas las acciones se ejecutan
dependiendo del resultado de una condicin o
expresin y tienen la caracterstica de contar con una o
ms salidas.
La sentencia IF
Una de las herramientas ms tiles en el proceso de
informacin es la expresin condicional, que forma parte
de una sentencia de programa, la sentencia IF que
realiza preguntas que requieren respuestas lgicas o
booleanas (del tipo True o False, Yes o No) sobre
una propiedad o variable en el cdigo del programa.
IfThen
La sentencia IF permite evaluar una condicin en el
programa y llevar a cabo una serie de instrucciones,
segn sea el resultado de dicha condicin. Cuando slo
se requiere de la ejecucin de acciones al cumplirse la
condicin especificada (alternativa simple), la sentencia
IF tiene la siguiente sintaxis.

If condicin Then
Instruccin 1
Instruccin 2
Instruccin n
End If

Ejemplo:

IfThen Else
Cuando se espera que al no cumplirse la condicin,
tenga lugar una serie de instrucciones opuestas o
diferentes a las que ocurriran en caso de cumplirse sta
(alternativa doble) entonces la sintaxis de la sentencia
If tendr una una estructura como la siguiente:

If condicin Then
Instruccin 1
Instruccin 2
Instruccin n
Else
Instruccin 1
Instruccin 2
Instruccin n
End If

Ejemplo:
'FUNCIN PARA CALCULO DEL IVA
Function IVA(PRECIO, CAUSA)
If CAUSA = "s" Or CAUSA = "S" Then
IVA = PRECIO * 0.15
Else
IVA = 0
End If
End Function

IfThenElseIf
En la consideracin anterior de la sentencia If o se cumple
una condicin y ejecuta determinadas instrucciones, o
no se cumple y ejecuta otras condiciones distintas. Puede
ocurrir que en caso de ser necesario, se aniden una o
ms condiciones similares en cuyo caso la sintaxis de
la sentencia If toma la siguiente forma:
AUTOMATIZACIN DE HOJAS DE CLCULO EN EXCEL MDULO I: FUNCIONES DE USUARIO
CENTRO NACIONAL DE CAPACITACION Y CALIDADIMSS-SNTSS 13

IF condicin Then
Instruccin 1
Instruccin 2
Instruccin n
ElseIf condicin Then
Instruccin 1
Instruccin 2
Instruccin n
ElseIf condicin Then
Instruccin 1
Instruccin 2
Instruccin n
Else condicin Then
Instruccin 1
Instruccin 2
Instruccin n
End If

Ejemplo 1:
' FUNCIN PARA CALCULAR DESCUENTOS
Function DESCUENTOS(PRECIO, DEPTO)
If DEPTO = 1 Then
DESCUENTO = 0.1
ElseIf DEPTO = 2 Then
DESCUENTO = 0.2
ElseIf DEPTO = 3 Then
DESCUENTO = 0.3
Else
DESCUENTO = 0
End If
DESCUENTOS = PRECIO * DESCUENTO
End Function

Ejemplo 2:
' FUNCIN PARA CALCULAR AUMENTOS
Function AUMENTOS(SUELDO)
If SUELDO <= 1000 Then
AUMENTO = 0.3
ElseIf SUELDO > 1000 And SUELDO <= 2000 Then
AUMENTO = 0.25
ElseIf SUELDO > 2000 And SUELDO <= 3000 Then
AUMENTO = 0.2
ElseIf SUELDO > 3000 And SUELDO <= 4000 Then
AUMENTO = 0.15
ElseIf SUELDO > 4000 And SUELDO <= 5000 Then
AUMENTO = 0.1
Else
AUMENTO = 0.05
End If
AUMENTOS = SUELDO * AUMENTO
End Function

Ejemplo 3:

FUNCIN PARA ASIGNAR CALIFICATIVOS
Function CALIFICATIVO(CALIFICACION)
If CALIFICACION < 6 Then
CALIFICATIVO = "SOBORNA AL MAESTRO"
ElseIf CALIFICACION >= 6 And CALIFICACION <= 6.5 Then
CALIFICATIVO = "APENITAS"
ElseIf CALIFICACION > 6.5 And CALIFICACION <= 7.5 Then
CALIFICATIVO = "REGULAR"
ElseIf CALIFICACION > 7.5 And CALIFICACION <= 8.5 Then
CALIFICATIVO = "BIEN"
ElseIf CALIFICACION > 8.5 And CALIFICACION <= 9.5 Then
CALIFICATIVO = "MUY BIEN"
ElseIf CALIFICACION > 9.5 And CALIFICACION <= 10 Then
CALIFICATIVO = "GENIO"
Else
CALIFICATIVO = "NO TE PASES"
End If
End Function

La Sentencia SELECT CASE
Esta estructura se utiliza cuando se tiene que
comprobar el valor de una variable y en funcin de ste
valor seleccionar y ejecutar una serie de instrucciones
especficas (alternativa mltiple). La sintaxis para la
instruccin Select Case es la siguiente:

Select Case Parmetro
Case 1 el primer valor posible en la variable.
Instruccin 1
Instruccin 2
Instruccin n
Case 2 el segundo valor posible en la variable.
Instruccin 1
Instruccin 2
Instruccin n
Case 3 el tercer valor posible en la variable.
Instruccin 1
Instruccin 2
Instruccin n
Case Else algn otro valor en la variable distinto
de los anteriores
Instruccin 1
Instruccin 2
Instruccin n
End Select


Ejemplo:
MODULO I: FUNCIONES DE USUARIO AUTOMATIZACIN DE HOJAS DE CLCULO EN EXCEL
14 CENTRO NACIONAL DE CAPACITACION Y CALIDAD IMSS-SNTSS
FUNCIN DESCUENTOS USANDO SELECT CASE
Function REBAJA(PRECIO, DEPTO)
Select Case DEPTO
Case 1
REBAJA = precio * 0.1
Case 2
REBAJA = precio * 0.2
Case 3
REBAJA = precio * 0.3
Case Else
REBAJA = 0
End Select
End Function
Ejemplo:
FUNCIN PARA LOS DAS DE LA SEMANA
Function DIASN(NRODIA)
Select Case NRODIA
Case 1
DIASN = "DOMINGO"
Case 2
DIASN = "LUNES"
Case 3
DIASN = "MARTES"
Case 4
DIASN = "MIERCOLES"
Case 5
DIASN = "JUEVES"
Case 6
DIASN = "VIERNES"
Case 7
DIASN = "SABADO"
Case Else
DIASN = "NUMERO NO VALIDO, SOLO DEL 1 AL 7"
End Select
End Function
1.8 ESTRUCTURAS REPETITIVAS
En el procesamiento de informacin las estructuras
repetitivas o bucles nos permiten optimizar cdigo y
agilizar los programas, ya que una o varias instrucciones
pueden repetirse un nmero determinado o
indeterminado de veces.
Bucle: En programacin, un bucle o ciclo es un tipo de
estructura de control que permite repetir una o ms
sentencias mltiples veces, lo que ahorra tiempo, deja el
cdigo ms claro y facilita su modificacin en el futuro.
Los bucles con Do se utilizan cuando no se conoce
con exactitud el nmero de ocasiones en las que se
repetir el conjunto de instrucciones.
El bucle Do While
El bucle Do While (Hacer mientras) es una estructura
de la mayora de los lenguajes de programacin
estructurados cuyo propsito es repetir un bloque de
cdigo mientras una condicin se mantenga verdadera.
La sintaxis para sta estructura es la siguiente:

Do While condicin
Instruccin 1
Instruccin 2
Instruccin n
Loop delimita el final del bloque de instrucciones a repetir
en el bucle.


Ejemplo:




AUTOMATIZACIN DE HOJAS DE CLCULO EN EXCEL MDULO II: MACROS
CENTRO NACIONAL DE CAPACITACION Y CALIDADIMSS-SNTSS 15













Objetivo Especifico:
Al finalizar el mdulo el participante:
identificar y aplicar el procedimiento para grabar una macro.
Utilizando macros, automatizar las tareas que son repetitivas en sus hojas de
clculo.
Conocer y modificar el cdigo Visual Basic para modificar sus macros.
Crear un sistema de Macros para Excel



MDULO II: MACROS AUTOMATIZACIN DE HOJAS DE CLCULO EN EXCEL
16 CENTRO NACIONAL DE CAPACITACION Y CALIDAD IMSS-SNTSS
AUTOMATIZACIN DE HOJAS DE CLCULO EN EXCEL MDULO II: MACROS
CENTRO NACIONAL DE CAPACITACION Y CALIDADIMSS-SNTSS 17
INTRODUCCIN
Si es como la mayora de los usuarios de Excel, puede
que la mayor parte del trabajo que realice sea
repetitivo. Por ejemplo, si siempre introduce una serie
de cabeceras en los informes financieros o que
incremente de manera habitual la anchura de las
primeras columnas del libro de trabajo. Si estas
acciones le llevan mucho tiempo puede considerar
grabar las rdenes como una macro y ejecutar la macro
siempre que quiera realizar ese trabajo. Una macro es
un conjunto de instrucciones a las que se da un nombre
y que indica a Excel una determinada accin a realizar.
En este mdulo se ver la forma que tienen las macros
y cmo se pueden utilizar para incrementar la
productividad. Tambin veremos como grabar, ejecutar,
editar y asignarles botones de rdenes.
Una macro consta de una serie de instrucciones
escritas en un lenguaje denominado Visual Basic que
Excel puede entender. Para crear una macro, no necesita
comprender el lenguaje que se utiliza slo necesita saber
qu rdenes de Excel desea que la macro ejecute para
usted. Puede registrar las rdenes en secuencia, y
stas sern traducidas automticamente al lenguaje
utilizado por Excel. Registrar una macro es similar a
registrar una msica en una cinta magnetofnica: no
necesita comprender cmo se registra en la cinta; slo
tiene que saber qu msica desea registrar.
2.1 MACROS
Si encuentra que ejecuta con alguna frecuencia
determinadas tareas, como por ejemplo la aplicacin de
la negrita, la letra cursiva y un tipo de tamao mayor
para los ttulos de la hoja o que introduce las mismas
categoras en cada hoja de presupuesto, puede ahorrar
tiempo si automatiza estas tareas. Puede registrar una
macro para casi cualquier serie de acciones que
ejecute con Excel.
Para crear una macro, active simplemente el
registrador de macros; ejecute la secuencia de tareas
que desea registrar, y luego desactive el registrador de
macros. Cuando registre la macro, las rdenes son
traducidas automticamente al lenguaje Visual Basic y
almacenadas en una hoja de mdulo separada de su
libro de trabajo.
Registro de Macros
Antes de registrar una macro, necesita planificar
exactamente lo que desea que haga la macro, y en qu
orden. Despus de escoger Grabar nueva macro, cada
celda que seleccione, todo lo que introduzca, y cada
orden que escoja ser registrada. Tambin necesita
pensar en un nombre y una descripcin para la macro
que identifique exactamente lo que sta hace.


2.2 TIPOS DE MACROS
En Excel pueden grabarse dos tipos de macros:
Absolutas y Relativas
Activar macros Relativas
Clic en el Men Herramientas > Macro > Grabar
nueva macro ...
Nombre de la Macro: Teclear nombre para la
macro
Aceptar



En los dos nuevos iconos que aparecen, Clic en
Referencia Relativa
(Note como este icono se ACTIVA Y SE DESACTIVA,
esto nos indica si la macro va a ser Relativa o
Absoluta, para que sea relativa el icono debe de estar
ACTIVADO (oprimido))
Detener la macro (Clic en Detener grabacin,
Men Herramientas, Macro, Detener grabacin)
Ejemplos
Ejemplo 1
Crear una macro para un Ttulo
Colocarse en la celda para el ttulo
MDULO II: MACROS AUTOMATIZACIN DE HOJAS DE CLCULO EN EXCEL
18 CENTRO NACIONAL DE CAPACITACION Y CALIDAD IMSS-SNTSS
Clic en el Men Herramientas > Macro > Grabar
nueva macro ...
Nombre de la macro: Teclee TITULO
Aceptar
Comienza la grabacin
Clic en el icono Referencia Relativa (Si ya esta
activado ya no lo haga)
Teclear : Centro Nacional
Enter
Doble clic en la separacin de las columnas para
ajuste automtico
Detener la macro (Men Herramientas > Macro >
Detener grabacin Clic en el icono Detener
grabacin)
Ejemplo 2
Colocarse en la celda para el ttulo
Clic en Men Herramientas > Macro > Grabar
nueva macro ...
Nombre de la macro: Teclee TITULO2
Aceptar
Comienza la grabacin:
Clic en el icono Referencia Relativa (Si ya esta
activado no lo haga)
Teclear : CNCC
Enter
Clic Men Formato > Celdas ... > Fuente
Fuente: Impact
Estilo: Regular
Tamao: 24
Color: Azul
Bordes
Lnea
Estilo: Seleccione un Estilo
Color: Amarillo
Contorno
Tramas: Color: Rojo
Aceptar
Ajuste automtico de columnas (Doble clic en la
separacin de la columna)
Detener la macro (Men Herramientas > Macro >
Detener grabacin Clic en el icono Detener
grabacin)
Ejecutar la macro:
Colocarse en una celda vaca
Clic en Men Herramientas > Macro > Macros ...
Seleccionar el nombre de la macro : TITULO
Ejecutar

2.3 EL CDIGO DE LA MACRO
Para ver el cdigo correspondiente a su macro en
lenguaje Visual Basic haga lo siguiente:
Clic en Men Herramientas > Macro > Macros ...
Seleccionar el nombre de la macro : TITULO
Modificar. Observar el siguiente cdigo:
Sub TITULO()
ActiveCell.FormulaR1C1 = "CENTRO NACIONAL"
ActiveCell.Columns("A:A").EntireColumn.EntireColumn.AutoFit
End Sub
Nota: Lo que usted ve es cdigo Excel Visual Basic.
Cualquier cambio en su macro lo realizar usando
Instrucciones de cdigo Visual Basic
Salir del cdigo
Clic en el icono Ver Microsoft Excel ALT + F11
Eliminar una macro
Clic en Men Herramientas > Macro > Macros ...
Seleccionar el nombre de la macro : TITULO
Eliminar
S
2.4 USO DE BOTONES PARA FACILITAR
LA EJECUCIN DE MACROS
Puede ejecutar cualquier
macro de su libro desde el
cuadro de dilogo de
Macro, pero ste no
siempre es el mtodo ms
rpido. Si tiene una macro,
la cual se utilizar con
cierta frecuencia en una
hoja particular, puede
aadir un botn a esa hoja
AUTOMATIZACIN DE HOJAS DE CLCULO EN EXCEL MDULO II: MACROS
CENTRO NACIONAL DE CAPACITACION Y CALIDADIMSS-SNTSS 19
y asignar la macro al botn. De esta forma, puede
pulsar el botn para ejecutar la macro, en lugar de
utilizar una orden de men. Incluso puede acceder a la
macro a travs del men que debera necesitar.
Colocar un botn a una macro
Deben de existir macros
Mostrar la familia de iconos de la barra de
herramientas Formularios
Seleccione el icono Botn
Trace un botn en su
hoja de calculo del
tamao de una celda
Al soltar el botn del
Mouse aparece su lista
de macros
Seleccione la macro que
quiere para su botn
Aceptar
Clic dentro del botn
Elimine el texto de Botn 1 que aparece y coloque
su nuevo texto
Clic fuera del botn
Ejecutar su macro con el botn
Colquese en una celda vaca
De un clic sobre su botn
Modificar su botn
Clic derecho con su Mouse sobre el botn
Realice los cambios necesarios.
2.5 ASIGNAR MACRO A UN OBJETO GRAFICO
Tener el grfico en la hoja (Clic en el men Insertar >
Imagen > Imgenes prediseadas,
Seleccione una Imagen e Insrtela, modifique el
tamao si la imagen es muy grande)
Clic derecho sobre el grfico > Asignar macro ...
Seleccionar nombre de la macro : TITULO
Aceptar

2.6 MODIFICAR UNA MACRO
Editar la macro
Realizar los cambios adecuados
Pasar a la hoja de trabajo
> Para modificar sus macros usaremos cdigo de
Excel Visual Basic
2.7 INSTRUCCIONES VISUAL BASIC
PARA MODIFICACION DE MACROS
Instruccin InputBox:
Muestra un mensaje en un cuadro de dilogo, espera
que el usuario escriba un texto o haga clic en un botn y
devuelve un tipo String con el contenido del cuadro de
texto.
Sintaxis: Variable=Inputbox(Mensaje)

Cdigo de la macro TITULO:
Sub TITULO( )
ActiveCell.FormulaR1C1 = "CENTRO NACIONAL"
ActiveCell.Columns("A:A").EntireColumn.EntireColumn.AutoFit
End Sub
Cdigo de la Macro TITULO modificado con la instruccin
INPUTBOX y una variable llamada NOMBRE
Sub TITULO()
NOMBRE = InputBox("TECLEA EL NOMBRE QUE DESEAS")
ActiveCell.FormulaR1C1 = NOMBRE
ActiveCell.Columns("A:A").EntireColumn.EntireColumn.AutoFit
End Sub
En pantalla aparecer el siguiente cuadro:

MDULO II: MACROS AUTOMATIZACIN DE HOJAS DE CLCULO EN EXCEL
20 CENTRO NACIONAL DE CAPACITACION Y CALIDAD IMSS-SNTSS
EJERCICIO 1
Genere una macro para capturar MATRICULA, NOMBRE,
PUESTO Y SUELDO en una Base de Datos como se
muestra en el siguiente Ejemplo.
Enseguida modifique el cdigo para que la
computadora nos pida a travs de la instruccin Input
Box la Matricula, el Nombre, el Puesto y el Sueldo, y
los coloque al final de la base de datos. El cdigo ya
modificado con el uso de la instruccin Input Box debe
quedar de la forma siguiente.

Instruccin MsgBox :
La instruccin MsgBox muestra un mensaje en un
cuadro de dilogo, espera a que el usuario haga clic en
un botn y devuelve un tipo Integer correspondiente al
botn elegido por el usuario.
Sintaxis:
Variable = Msgbox(Mensaje,VBYesNo)
Instruccin DO:
La instruccin Do repite un bloque de instrucciones
cuando una condicin es Verdadera o hasta que una
condicin se convierta en Verdadero o Falso
dependiendo de la condicin.
Sintaxis:
El cdigo del ejercicio realizado modificado con el uso
de la variable MSGBOX debe quedar de la forma
siguiente:
SECUENCIA DE GRABACIN CODIGO VISUAL
NOMBRE DE LA MACRO: CAPTURA
TIPO: RELATIVA
1.- F5 A1 Enter
2.- FIN ++
3.- Teclee la MATRICULA (1) - Enter
4.- + Teclee el NOMBRE (JUAN) - Enter
5.- + Teclee el PUESTO (MATEMATICO) - Enter
6.- + Teclee el SUELDO (10000) - Enter
7.- F5 - A1 - Enter
8.- Detener Grabacin
Sub CAPTURA()
Application.Goto Reference:="R1C1"
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Range("A1").Select
MATRICULA = InputBox("Teclea la Matrcula del Trabajador")
ActiveCell.FormulaR1C1 = MATRICULA
ActiveCell.Offset(0, 1).Range("A1").Select
NOMBRE = InputBox("Teclea el nombre del Trabajador")
ActiveCell.FormulaR1C1 = NOMBRE
ActiveCell.Offset(0, 1).Range("A1").Select
PUESTO = InputBox("Teclea el Puesto del Trabajador")
ActiveCell.FormulaR1C1 = PUESTO
ActiveCell.Offset(0, 1).Range("A1").Select
SUELDO = InputBox("Teclea el Sueldo del Trabajador")
ActiveCell.FormulaR1C1 = SUELDO
Application.Goto Reference:="R1C1"
End Sub
DO WHILE
Instrucciones
LOOP

Instrucciones
LOOP

AUTOMATIZACIN DE HOJAS DE CLCULO EN EXCEL MDULO II: MACROS
CENTRO NACIONAL DE CAPACITACION Y CALIDADIMSS-SNTSS 21

Variable = vbYes
Do While Variable = vbYes

Instrucciones

Variable = MsgBox(Desea capturar mas Datos?,vbYesNo)
Loop
Este es el cdigo de la macro del ejercicio anterior
utilizando las instrucciones Do While, MsgBox, e
Inputbox para crear una macro repetitiva. En este
ejemplo se utilizaron 5 Variables que son:
RESPUESTA, que sirve para poner la condicin de la
Instruccin Do While, MATRICULA, para almacenar la
matrcula, NOMBRE, para almacenar el nombre,
PUESTO, para almacenar el puesto y SUELDO para
almacenar el sueldo.
Sub CAPTURA()
RESPUESTA = vbYes
Do While RESPUESTA = vbYes
Application.Goto Reference:="R1C1"
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Range("A1").Select
MATRICULA = InputBox("Teclea la Matrcula del Trabajador")
ActiveCell.FormulaR1C1 = MATRICULA
ActiveCell.Offset(0, 1).Range("A1").Select
NOMBRE = InputBox("Teclea el nombre del Trabajador")
ActiveCell.FormulaR1C1 = NOMBRE
ActiveCell.Offset(0, 1).Range("A1").Select
PUESTO = InputBox("Teclea el Puesto del Trabajador")
ActiveCell.FormulaR1C1 = PUESTO
ActiveCell.Offset(0, 1).Range("A1").Select
SUELDO = InputBox("Teclea el Sueldo del Trabajador")
ActiveCell.FormulaR1C1 = SUELDO
RESPUESTA = MsgBox("Desea Capturar mas Datos", vbYesNo)
Loop
Application.Goto Reference:="R1C1"
End Sub
GRABAR CODIGO EN UNA MACRO EXISTENTE
Genere otra macro con las instrucciones que desea
agregar a la macro que ya existe
Edite la nueva macro y copie el cdigo que gener
Edite la macro a la cual desea agregar mas
instrucciones
Ubique el cursor en la posicin donde desea el
cdigo de las nuevas instrucciones
Pegue el cdigo que Copi
Vuelva a la hoja de Excel y guarde su documento
MS EJEMPLOS Y EJERCICIOS:
EJERCICIO 2:
En una hoja de Excel crear una macro para capturar
MATRCULA, NOMBRE, CATEGORIA, SUELDO, NIVEL
ACADEMICO Y EDO. CIVIL del trabajador en el rango de
B2:B7, despus copiar estos datos y colocarlos al final de
una lista.

EJERCICIO 3:
Crear una macro para generar una factura. La macro
genera el nmero consecutivo de la factura; limpia los
datos del cliente anterior y todos los productos que se
llev; luego, pide el Nombre del Cliente, as como su
Direccin. Enseguida ingresa el nombre del producto,
el precio, la cantidad, y realiza operaciones para calcular
el subtotal, el IVA y Total, y los suma al total a pagar. Al
final este total a pagar lo acumula en un total global.

EJERCICIO 4:
Crear una macro que nos pida MATRICULA, NOMBRE,
PUESTO y SUELDO del trabajador y los coloque al
final de la lista, y que al terminar nos pregunte si
deseamos seguir capturando mas datos, si
contestamos que si, entonces que nos pida
nuevamente los datos para capturar, pero si
contestamos que no, que termine la macro.
MDULO II: MACROS AUTOMATIZACIN DE HOJAS DE CLCULO EN EXCEL
22 CENTRO NACIONAL DE CAPACITACION Y CALIDAD IMSS-SNTSS
(Figura igual al Ejercicio 1)
EJERCICIO 5:
Crear una macro que nos pida MATRICULA, NOMBRE,
CATEGORIA, SUELDO, NIVEL ACADEMICO y
ESTADO CIVIL del trabajador y los coloque en el
rango B2:B7, luego que nos pida comprobar si estn
bien los datos, si estn mal que los vuelva a pedir, si
estn bien que los copie y los coloque al final de la
lista, y al terminar nos pregunte si deseamos seguir
capturando mas datos, si contestamos que si, que nos
pida nuevamente los datos para capturar, pero si
contestamos que no, que termine la macro.
(Figura igual al Ejercicio 2)

EJERCICIO 6:
Crear una macro para llenar esta factura. La macro
genera el nmero consecutivo de la factura; limpia los
datos del cliente anterior y todos los productos que se
llev; luego, pide el nombre del cliente, as como su
direccin. luego nos pide comprobar si los datos del
cliente son correctos, si estn mal que nos vuelva a
pedir los datos, si estn bien que avance para ingresar
el nombre del Producto, el Precio, la Cantidad, y realiza
operaciones para calcular el Subtotal, el IVA y Total, al
llegar al total individual nos pregunte si deseamos mas
productos para este cliente, si contestamos que si, que
nos vuelva a pedir producto, precio y cantidad, si
contestamos que no los suma al total a pagar. Al final este
total a pagar lo acumula en un total global.
(Figura igual al Ejercicio 3)

AUTOMATIZACIN DE HOJAS DE CLCULO EN EXCEL MDULO III: APLICACIN DE MACROS
CENTRO NACIONAL DE CAPACITACION Y CALIDADIMSS-SNTSS 23












Objetivos Especificos:
Al finalizar el mdulo el participante:

Crear una aplicacin usando macros
Aplicar los conocimientos adquiridos en los cursos anteriores de Excel.
MDULO III: APLICACIN DE MACROS AUTOMATIZACIN DE HOJAS DE CLCULO EN EXCEL
24 CENTRO NACIONAL DE CAPACITACION Y CALIDAD IMSS-SNTSS

AUTOMATIZACIN DE HOJAS DE CLCULO EN EXCEL MDULO III: APLICACIN DE MACROS
CENTRO NACIONAL DE CAPACITACION Y CALIDADIMSS-SNTSS 25
INTRODUCCIN
La aplicacin que se desarrollara en este mdulo har que el participante ponga a prueba sus conocimientos de
Excel 2003, aqu automatizara las opciones de: definir nombres de rangos, pegado especial, operaciones con hoja
de clculo, funciones, movimientos de cursor, etc; al final se dar cuenta de la utilidad y funcionalidad de las macros.
Los ejercicios de las macros se pueden resolver fcilmente con las instrucciones vistas en los cursos Bsico e
Intermedio. Se recomienda tener a la mano los manuales respectivos, ya que se aplicarn los conocimientos
adquiridos en este curso y los anteriores de Excel
3.1 HOJA MENU PRINCIPAL


En esta hoja el participante colocar botones de macro
que hagan referencia a cada una de las opciones
indicadas, para poder hacer esto primero debe de
crear todas las macros que necesita en este ejercicio,
aqu aplicar todos sus conocimientos adquiridos en
sus cursos de Excel anteriores, ya que deber de
manejar nombres de rangos, operaciones con
archivos, pegado especial, movimientos del cursor,
frmulas, bsquedas etc., ponga a prueba sus
conocimientos.
Procedimiento para crear el men principal:
Crear un Nombre de Rango en la posicin A1 de cada
hoja (Por ejemplo para ventas se llamar
INICIO_VENTAS, para almacn se llamar
INICIO_ALMACEN, etc.)
Pasos para definir el nombre:
Colocarse en A1
Insertar > Nombre > Definir
Teclear el nombre del rango (INICIO_VENTAS)
Aceptar
Crear una macro que se dirija a esa
posicin:
Herramientas > Macro > Grabar nueva macro
Teclear Nombre de la macro: (A_VENTAS).
Procedimiento de Grabacin:
F5 - INICIO_VENTAS
Enter
Detener la macro
* Hacer lo mismo para cada hoja del libro
Cdigo Visual Basic para sta macro:
Sub A_VENTAS()
Application.Goto Reference:="INICIO_VENTAS"
End Sub
Crear un botn para ejecutar la Macro:
Mostrar la Barra de Herramientas Formulario
Seleccionar icono Botn
En la hoja de calculo trazar
un botn
Asignar la macro para este
botn (A_VENTAS).
Aceptar
Clic dentro del botn
Eliminar el nombre que tiene el botn
Teclear nuevo titulo del botn (VENTAS)
Clic fuera del botn.

* Hacer lo mismo para cada hoja del libro
MDULO III: APLICACIN DE MACROS AUTOMATIZACIN DE HOJAS DE CLCULO EN EXCEL
26 CENTRO NACIONAL DE CAPACITACION Y CALIDAD IMSS-SNTSS
3.2 HOJA ALMACEN


En esta hoja el participante elaborara una macro para
agregar nuevos productos al almacn; una macro para
actualizar las existencias de los productos en el
almacn y por ltimo una macro para encontrar un
producto por medio de la clave o el nombre.
Debe definirse previamente un nombre (PRODUCTOS)
para el rango que contendr la lista de datos de
almacn. Se sugiere establecer un rango para ingresar
por lo menos 500 productos (A2:D503)
PROCEDIMIENTO PARA AGREGAR
PRODUCTOS A ALMACEN
Antes deber definirse un nombre (PRODUCTO_NUEVO)
para el rea de productos adquiridos: (G5:G8)
Procedimiento de Grabacin:
1. F5 INICIO_ALMACEN - Enter
2. F5 G5 - Enter
3. Teclear CLAVE - Enter
4. + - Teclear PRODUCTO - Enter
5. + - Teclear PRECIO - Enter
6. + - Teclear COMPRA - Enter
7. F5 PRODUCTO_NUEVO - Enter
8. CTRL+C
9. F5 - A1 - Enter
10. FIN - + +
11. Edicin > Pegado especial
O Valores ETransponer - Aceptar
12. Esc
13. F5 - A1 - Enter
PROCEDIMIENTO PARA ACTUALIZAR
EXISTENCIAS EN ALMACEN
NOTA: Antes de proceder al grabado de la macro colocar
funciones de bsqueda en G11, G12 y G13 que permitan
consultar desde la base de datos el nombre, precio y
existencia del producto que corresponde a la clave dada:
=BUSCARV(G10,PRODUCTOS,2,FALSO)
=BUSCARV(G10,PRODUCTOS,3,FALSO)
=BUSCARV(G10,PRODUCTOS,4,FALSO)
Procedimiento de Grabacin:
1. F5 INICIO_ALMACEN Enter
2. F5 G10 Enter
3. Teclear CLAVE - Enter
4. F5 G14 Enter
5. Teclear CANTIDAD - Enter
6. CRTL+C
7. F5 A1 Enter
8. Edicin > Buscar >Teclear CLAVE
Opciones: Dentro de: Hoja Buscar: Por columnas
Buscar dentro de: Valores
E Coincidir con el contenido de toda la celda
Buscar Siguiente Cerrar
9. -
10. Edicin > Pegado especial
O Valores - O Sumar Aceptar
11. Esc
12. F5 A1 Enter
PROCEDIMIENTOS PARA BUSCAR
PRODUCTOS EN ALMACEN
NOTA: Este procedimiento permite hacer una bsqueda
de un producto utilizando la clave o el nombre del mismo.
La clave y nombre se deber pedir a travs de un Input Box.
Colocar antes en G17, G18 Y G19 frmulas para la
bsqueda del nombre, precio y existencia del producto
que corresponde a la clave o nombre dados:
=BUSCARV(G16,PRODUCTOS,2,FALSO)
=BUSCARV(G16,PRODUCTOS,3,FALSO)
=BUSCARV(G16,PRODUCTOS,4,FALSO)
Procedimiento de Grabacin:
1. F5 - A1 - Enter
2. Edicin > Buscar > Teclear la clave
Opciones:
Dentro de: Hoja Buscar: Por columnas
Buscar dentro de: Valores
E Coincidir con el contenido de toda la celda
Buscar siguiente, Cerrar
3. CTRL +
4. CTRL + C
5. F5 - G16 - Enter
6. Edicin > Pegado Especial
O Valores Aceptar
7. Esc
8. F5 - A1 Enter
AUTOMATIZACIN DE HOJAS DE CLCULO EN EXCEL MDULO III: APLICACIN DE MACROS
CENTRO NACIONAL DE CAPACITACION Y CALIDADIMSS-SNTSS 27
3.3 HOJA VENTAS


La macro de la hoja ventas debe hacer lo siguiente: Al
hacer clic sobre el botn Ventas, la computadora nos
pedir la clave del producto a vender, la computadora,
deber de decirnos que producto es, cuantos tenemos
en el almacn y el precio, por ultimo nos pedir la
cantidad a vender y al dar Enter la computadora
realizar los clculos correspondientes para el
subtotal, IVA y total.
PROCEDIMIENTO PARA LA HOJA VENTAS
Antes de iniciar asegurarse que ya existe un nombre
(PRODUCTOS) para el rango de la lista de productos
que se encuentran en almacn. Si no es as deber
crearlo con el mtodo siguiente.
Procedimiento para crear el Nombre:
Seleccionar (marcar) el rango de datos
Insertar > Nombre > Definir
Teclear nombre para el rango (PRODUCTOS)
Agregar, Aceptar

Crear frmulas de bsqueda en B4, B5 y B7 para
saber el nombre del producto, precio y existencia:
Procedimiento para hacer la bsqueda:
Colocarse en la celda donde se va a colocar el
Nombre del producto.
Crear las formulas de bsqueda:
=BUSCARV(B3,PRODUCTOS,2,FALSO) Para Producto
=BUSCARV(B3,PRODUCTOS,3,FALSO) Para Precio
=BUSCARV(B3,PRODUCTOS,4,FALSO) Para Existencia
Procedimiento de Grabacin:
Nombre de la macro: Venta
1. F5 INICIO_VENTAS - Enter
2. F5 - B3 - Enter
3. Teclear la CLAVE - Enter
4. F5 - B6 Enter
5. Teclear la CANTIDAD - Enter
6. CTRL+C
7. F5 - INICIO_ALMACEN - Enter
(Para cambiarse a HOJA ALMACEN)
8. Edicin > Buscar
Teclear la CLAVE a vender
Opciones:
Dentro de: Hoja Buscar: Por Columnas
Buscar dentro de: Valores
E Coincidir con el contenido de la celda.
Buscar Siguiente, Cerrar
9. Edicin - Pegado Especial
O Valores O Restar
Aceptar
10. Esc
11. F5 INICIO_VENTAS - Enter
Modificaciones al cdigo:
Modificar el cdigo para efectuar la venta si el cliente lo
autoriza. O en su caso modificar la cantidad o cancelar
la venta.

MDULO III: APLICACIN DE MACROS AUTOMATIZACIN DE HOJAS DE CLCULO EN EXCEL
28 CENTRO NACIONAL DE CAPACITACION Y CALIDAD IMSS-SNTSS
3.4 HOJA FACTURAS


En esta hoja el participante realizar una macro para
facturar los productos que est vendiendo, al hacer clic
en el botn de la macro, la macro deber de generar el
nmero consecutivo de la factura, borrar los datos del
cliente y los productos vendidos en la factura anterior,
pedir el nombre del nuevo cliente, pedir la direccin,
solicitar la clave del producto a vender, despus de dar
la clave, la computadora deber decirnos que producto
es y el precio, despus nos pedir la cantidad del
producto a vender, realizar las operaciones
necesarias para calcular el Subtotal, IVA y Total, y
restar en la hoja almacn la cantidad vendida de este
producto. Enseguida preguntar si deseamos agregar
mas productos, si contestamos que si repetir el
mismo proceso (a partir de la clave del producto ya que
es el mismo cliente), en caso contrario, sumar al gran
total el total de esta factura para tener un total general.
Procedimiento para generar las facturas:
Los nombres de rango: PRODUCTOS (Hoja Almacn
A2:D503), ARTS_VENDIDOS (A9:G19); y CLIENTE (B4:B5)
son nombres que tiene que definir anterioridad.
Adems deber poner un 1 en la celda F1 para
inicializar el contador del consecutivo.
Procedimiento de Grabacin:
1. F5 INICIO_FACTURAS - Enter
2. F5 - F1 - Enter
3. CTRL+C
4. + - Edicin > Pegado especial
O Valores - O Sumar - Aceptar
5. Esc
6. F5 - ARTS_VENDIDOS (Nombre de rango que
debi haber sido creado previamente) Enter
7. Supr
8. F5 - CLIENTE (Nombre de rango que debi haber
sido creado previamente) Enter
9. Supr
10. F5 - B4 - Enter
11. Teclear NOMBRE del cliente - Enter
12. + - Teclear DIRECCION del cliente- Enter
13. + - F5 - A7- Enter
14. FIN ++
15. Teclear CLAVE Enter
16. = BUSCARV(,PRODUCTOS,2,FALSO)
- Enter
17. =BUSCARV(,PRODUCTOS,3,FALSO)
-Enter
18. Teclear CANTIDAD a vender- Enter
19. Edicin > Copiar ( CTRL +C)
20. F5 INICIO_ALMACEN - Enter
21. Edicin > Buscar > Teclear la Clave
Opciones: Dentro de: Hoja;
Buscar: Por Columnas
Buscar dentro de: Valores
E Coincidir con el contenido de toda la celda.
Buscar siguiente > Cerrar
22. - Edicin > Pegado Especial
O Valores O Restar Aceptar
23. Esc
24. F5 - INICIO_FACTURAS - Enter
25. F5 - A7 Enter
26. FIN+ -
27. = * Enter
28. = * 15% Enter
29. = + Enter
30. F5 - G20 - Enter
31. Edicin > Copiar ( CTRL + C)
32. F5 I2 - Enter
33. Edicin > Pegado Especial
O Valores O Sumar Aceptar
34. Esc
35. F5 - A1 - Enter
36. Detener Grabacin

AUTOMATIZACIN DE HOJAS DE CLCULO EN EXCEL MDULO III: APLICACIN DE MACROS
CENTRO NACIONAL DE CAPACITACION Y CALIDADIMSS-SNTSS 29
3.5 HOJA DERECHOS

En esta hoja el participante nicamente genera una macro para que desde el men al hacer clic en el botn
DERECHOS, le muestre esta hoja y al hacer clic en le botn MEN de esta hoja lo devuelva al men principal.


AUTOMATIZACIN DE HOJAS DE CLCULO EN EXCEL MDULO IV: BARRAS Y MENUS PERSONALIZADOS
CENTRO NACIONAL DE CAPACITACION Y CALIDADIMSS-SNTSS 31














Objetivos Especficos:
Al finalizar el mdulo el participante:
Conocer y aplicar el procedimiento para crear y modificar Barras de
Herramientas Personalizadas.
Conocer y aplicar el procedimiento para crear y modificar Mens
Personalizados.
Crear Barras y Mens personalizados para alojar sus macros y logrando as que sus
aplicaciones sean ms personalizadas.
MDULO IV: BARRAS Y MENS PERSONALIZADOS AUTOMATIZACIN DE HOJAS DE CLCULO EN EXCEL
32 CENTRO NACIONAL DE CAPACITACION Y CALIDAD IMSS-SNTSS

AUTOMATIZACIN DE HOJAS DE CLCULO EN EXCEL MDULO IV: BARRAS Y MENUS PERSONALIZADOS
CENTRO NACIONAL DE CAPACITACION Y CALIDADIMSS-SNTSS 33
INTRODUCCIN
No es necesario utilizar Visual Basic para crear Barras
de Herramientas o Mens Personalizados en EXCEL.
Crear y modificar Barras de Herramientas y Mens es
una habilidad general que se puede aplicar en
cualquier momento en que desee personalizar la
interfaz de usuario en EXCEL. Sin embargo, a medida
que crezca su coleccin de macros, quiz desee
disear una Barra de Herramientas o un Men
personalizados slo para ejecutar sus macros.
Una forma profesional de trabajar Excel
Para dar una mejor presentacin a sus libros de
trabajo, este Captulo es el adecuado, ya que en l
usted aprender a crear mens personalizados e
incluso crear sus propios mens para una aplicacin
en especial, y as poder evitar que el usuario
seleccione otras opciones ajenas a la aplicacin.
Para crear una Barra de Herramientas o Men
personalizados, antes debe de tener sus macros
elaboradas, para poder as asignarlas al elemento de
la barra o men deseado.
4.1 CREAR UNA BARRA DE
HERRAMIENTAS PERSONALIZADA
Clic en el men Ver > Barras de herramientas
> Personalizar ...
Seleccione la ficha Barras de herramientas
Clic en Nueva
Se abre el cuadro de dilogo Nueva barra de
herramientas

Nombre de la barra de herramientas :
Teclear el Nombre para la nueva barra de
herramientas
Aceptar,
Cerrar

4.2 BOTONES DE MACRO EN BARRAS
PERSONALIZADAS
Para aadir a la barra creada botones que ejecuten
macros, debern arrastrarse los nombres de las
macros desde la pestaa Comandos del cuadro de
dilogo Personalizar hasta la barra de herramientas
mediante el siguiente procedimiento:
Clic en el men Ver > Barras de herramientas
> Personalizar...
Elija la ficha Comandos
En la seccin Categoras busque y elija Macros
En el cuadro Comandos: Clic sostenido en
Personalizar Botn y arrstrelo hasta colocarlo
dentro de la barra creada.
Su nueva barra tendr el siguiente aspecto:

Modificaciones a los elementos de una
Barra Personalizada
Las siguientes son modificaciones que puede asignar a
los elementos de su barra personalizada.
A. Activar imagen y texto en botones
Seleccionar Botn
Clic en Modificar Seleccin del cuadro
Personalizar
Clic en Imagen y texto
B. Cambiar texto de botones
Seleccionar Botn
Clic en Modificar Seleccin del cuadro
Personalizar
Nombre: Teclear el nombre deseado para el Botn
Enter o clic fuera del men.
C. Cambiar imagen del botn
Seleccionar Botn
Clic en Modificar
Seleccin del cuadro
Personalizar
Cambiar imagen del
Botn
Seleccionar la imagen
deseada.
MDULO IV: BARRAS Y MENS PERSONALIZADOS AUTOMATIZACIN DE HOJAS DE CLCULO EN EXCEL
34 CENTRO NACIONAL DE CAPACITACION Y CALIDAD IMSS-SNTSS
D. Asignar una macro a un botn
Seleccionar Botn
Clic en Modificar Seleccin del cuadro Personalizar
Asignar macro
En el cuadro de Dilogo que aparece Seleccionar
la Macro deseada
Aceptar


Nota: Despus de cerrar el cuadro Personalizar podr
ejecutar cualquier macro asignada a la barra dando un
clic en el botn respectivo.
4.3 CREAR UN MENU PERSONALIZADO
Clic en el men Ver > Barras de herramientas >
Personalizar ...
Seleccione la ficha Comandos
En la seccin Categoras busque y elija Nuevo men.
En la seccin Comandos: Clic sostenido en Nuevo
men, y arrstrelo a la derecha del men Ventana.

Dar nombre al Nuevo Men
Clic en el Botn Modificar seleccin
Nombre : Teclear el nombre para el men
Enter, Cerrar
4.4 ELEMENTOS DEL
MEN PERSONALIZADO
Clic en el men Ver > Barras de herramientas >
Personalizar...
Seleccione la ficha Comandos.
En la seccin Categoras busque y elija Macros.
Comandos: Elija Personalizar elemento de men.
Clic sostenido en Personalizar elemento de men
y arrstrelo hacia su men que acaba de crear y
sultelo por debajo de l.

A
B
C
D
AUTOMATIZACIN DE HOJAS DE CLCULO EN EXCEL MDULO IV: BARRAS Y MENUS PERSONALIZADOS
CENTRO NACIONAL DE CAPACITACION Y CALIDADIMSS-SNTSS 35
Dar nombre al nuevo elemento de men
Clic en el Botn: Modificar seleccin
Nombre : Teclee el nombre para el elemento de men
4.5 ASIGNAR MACROS A
MEN PERSONALIZADO
Clic en el Botn: Modificar seleccin
Asignar macro..: Seleccione el nombre de la
macro
Aceptar, Cerrar
4.6 SUBMENS
Clic en el men Ver > Barras de herramientas >
Personalizar
Seleccione la ficha Comandos
En la seccin Categoras elija Nuevo men
En la seccin Comandos: Clic sostenido sobre
Nuevo men, arrstrelo hacia el men que acaba
de crear y colquelo debajo de l.
Clic en el Botn Modificar seleccin
Nombre: Teclear el nombre para el submen
Enter
Nota: Para agregar elementos de men al submen
creado y asignarle Macros utilizar los procedimientos
mencionados antes en ste mismo mdulo.
Eliminar mens
Clic en el men Ver > Barras de herramientas >
Personalizar ...
Comandos
Clic en el men que desea eliminar
Clic sostenido sobre el elemento que desea quitar
y arrstrelo hacia la hoja de calculo
Cerrar
Subrayar letras en mens
Men Ver > Barras de herramientas >
Personalizar ...
Elija la pestaa Comandos
Seleccione el men al cual desea subrayarle una
letra
Clic en el Botn Modificar seleccin
Nombre: Clic en el nombre del men que aqu
aparece, coloque el cursor a la izquierda de la letra
que desea subrayar y coloque un ampersand (&)
Enter, Cerrar
Modificar mens
Men Ver > Barras de herramientas >
Personalizar ...
Elija la pestaa Comandos
En la Barra de Mens seleccione el men o
submen que desea modificar (de los que acaba
de crear, luego seleccione Modificar seleccin)
Realice los cambios, agregue o elimine elementos
Cerrar
Ejercicio
Elabore sus propias macros y genere una Barra y un
Men Personalizados.













MDULO V: CUADROS Y HOJAS DE DILOGO AUTOMATIZACIN DE HOJAS DE CLCULO EN EXCEL
36 CENTRO NACIONAL DE CAPACITACION Y CALIDAD IMSS-SNTSS













Objetivos Especificos:
Al finalizar el mdulo el participante:

Conocer y disear Cuadros y Hojas de Dilogo.
Crear aplicaciones con macros controladas desde una Hoja de Dilogo.
AUTOMATIZACIN DE HOJAS DE CLCULO EN EXCEL MDULO V: CUADROS Y HOJAS DE DILOGO
CENTRO NACIONAL DE CAPACITACION Y CALIDADIMSS-SNTSS 37

MDULO V: CUADROS Y HOJAS DE DILOGO AUTOMATIZACIN DE HOJAS DE CLCULO EN EXCEL
38 CENTRO NACIONAL DE CAPACITACION Y CALIDAD IMSS-SNTSS
INTRODUCCION
Una forma distinta de manejar las macros en sus libros
del trabajo es utilizando las opciones de Cuadros de
Dilogo y Hojas de Dilogo que nos ofrece Excel.
Despus de haber creado y elaborado una serie de
Macros y Cuadros de Dilogo, usted necesitara
manejar todas sus macros desde una Hoja especial de
Dilogo. Esta opcin nos permite ejecutar Macros que
utilizan una hoja de Dilogo para una mejor
presentacin de sus aplicaciones en pantalla.
5.1 CUADROS DE DILOGO
Para crear un Cuadro de Dilogo usted necesita
desplegar la Barra de Herramientas Formularios que
se encuentra en el men de Barras de Herramientas
en donde observar los siguientes controles:

El icono Ejecutar cuadro de dilogo nos permite
ejecutar nuestra Hoja de Dilogo, Tendr que hacer
una macro para poder ejecutar la Hoja de Dilogo en
cualquier parte del libro.
5.2 APLICACIN Y PROGRAMACIN DE
CONTROLES EN UN CUADRO DE
DILOGO:
Agregar elementos a un Cuadro
Combinado
En su libro de trabajo nombre una hoja como
HOJA DE DATOS (Todos los objetos estarn en
esta Hoja)
En la celda B3 teclee DELEGACIONES
En B4 teclee hacia abajo una lista de delegaciones
(Hidalgo, Jalisco, Morelos,...)
Coloque un cuadro combinado en la celda B10
De un Clic derecho sobre el cuadro combinado
Seleccione Formato de control...

Rango de Entrada: Teclee las coordenadas del
rango donde se encuentran las delegaciones que
tecleo.
Vincular con la celda: Teclee B2
(En esta celda el objeto nos devolver un valor de
la delegacin que seleccione en el cuadro, este
valor lo tendr despus que buscar usando
BuscarV para saber a que delegacin pertenece)
Aceptar
Agregar elementos a un cuadro de lista
Vaya a D3 y teclee PUESTOS
En D4 teclee hacia abajo una lista de Puestos
(Medico, Ingeniero, Secretaria,...)
Coloque un cuadro de lista en la celdas D10:D13
De un Clic derecho sobre el cuadro de Lista
Seleccione Formato de control...
Rango de Entrada: Teclee las coordenadas donde
se encuentran los puestos que tecleo
Vincular con la celda: Teclee D2
(En esta celda el objeto nos devolver un valor del
puesto que seleccione en el cuadro de lista, este
valor lo tendr despus que buscar usando BuscarV
para saber a que puesto pertenece)
Aceptar
Agregar valores a un Control de nmero
Cree un control de nmero en las celdas F10:F12
Clic derecho sobre el control de nmero
Formato de control ...
Valor actual: El valor que tendr por default el
objeto (200)
Valor mnimo: El valor mnimo para este objeto
(50)
Valor mximo: El valor mximo que tendr este
objeto (500)
Incremento: De cuantos en cuantos aumentara el
valor del objeto (50)
Vincular con la celda: La celda donde tendremos
el valor del objeto (Teclee F2)
Aceptar
Agregar valores a un control Barra de
Desplazamiento
Cree un control de Barra de desplazamiento en las
celdas F5:G5
AUTOMATIZACIN DE HOJAS DE CLCULO EN EXCEL MDULO V: CUADROS Y HOJAS DE DILOGO
CENTRO NACIONAL DE CAPACITACION Y CALIDADIMSS-SNTSS 39
Clic derecho sobre el control Barra de desplazamiento
Clic en Formato de control...
Valor actual: El valor que tendr por default el
objeto (45)
Valor mnimo: El valor mnimo para este objeto (10)
Valor mximo: El valor mximo que tendr este
objeto (63)
Incremento: De cuantos en cuantos aumentara el
valor del objeto (1)
Cambio de Pagina: El incremento que har su
control cuando de clic sobre el botn del centro (5)
Vincular con la celda: La celda donde tendremos
el valor del objeto (Teclee G2)
Aceptar
5.3 APLICACIN DE MACROS
EN UNA HOJA DE DILOGO
INSERTAR HOJA DE DIALGO
Clic derecho con el Mouse sobre el nombre de una
Hoja en su libro de trabajo
Clic en Insertar...
Seleccione Dilogo de Excel 5.0
Aceptar
En la hoja de dialog que insert coloque los controles
que se muestran en la hoja de la siguiente figura:

Para ejecutar su Dilogo de clic sobre el icono Ejecutar
cuadro de dilogo de la Barra de Herramientas
Formularios

Genere una nueva hoja que se llame Captura de
datos y coloque los siguientes datos:
En A1 Teclee Captura de datos
En A3 Teclee Nombre
En A4 Teclee Delegacin
En A5 Teclee Puesto
En A6 Teclee Nivel
En A7 Teclee Sueldo


En la hoja de Dilogo vincule todos los objetos con la hoja Captura de datos y la Hoja de datos. Use la
funcin de Buscarv para conocer en la hoja Captura de Datos la Delegacin y el Puesto que seleccione en su
Hoja de Dilogo.
Genere una macro para ejecutar su Hoja de Dilogo. Nombre de la Macro: Dialogo
Colocarse en la hoja que contiene el diseo del dilogo:

Nota: Esta macro es la que ejecutar la Hoja de Dilogo (no olvide el mtodo abreviado que asign)
Colquese en la hoja Captura de datos y ejecute su macro

SECUENCIA DE GRABACION: CDIGO VISUAL;
1. Clic sobre el icono ejecutar Cuadro de Dilogo,
2. Aceptar
3. Finalizar Grabacin
Sub DIALOGO()
' DIALOGO Macro
' Macro grabada el 09/07/2007 por CNCYC
'
DialogSheets("Dilogo1").Show
End Sub
MDULO V: CUADROS Y HOJAS DE DILOGO AUTOMATIZACIN DE HOJAS DE CLCULO EN EXCEL
40 CENTRO NACIONAL DE CAPACITACION Y CALIDAD IMSS-SNTSS
Ocultar Hoja de Diseo de Dilogo
Al terminar de disear el dilogo de Excel, y ste se
encuentra funcionando a la perfeccin, deber crear la
macro que accede a dicho dilogo. Despus de esto, la
hoja en que se dise el dilogo de Excel no tiene
mayor inters para el usuario de ste cuadro de
dilogo por lo que deber ocultarse para no permitir
que otra persona pueda alterar el diseo de nuestro
dilogo. Para ocultarla siga ste procedimiento:
Seleccione la pestaa que contiene el nombre de la
hoja de dilogo que usted dise.
En la barra de mens, en el men Formato, haga
clic en el submen Columna en la opcin Ocultar.

Si desea volver a mostrar dicha hoja, haga clic en
la opcin Mostrar.


A continuacin aplicar el Dialogo diseado en una
macro que le permitir llenar la lista mostrada en la
figura.
PROCEDIMIENTO:
Antes de proceder al grabado de dicha macro deber
definir un nombre de rango para los datos capturados
(B3:B7). Se sugiere el nombre TRABAJADOR


Nombre de la Macro: CAPTURA
SECUENCIA DE GRABACION CODIGO VISUAL (Ya modificado)
1. F5-INICIO_CAPTURA Enter
2. ++ - TECLEAR NOMBRE - Enter
3. Herramientas > Macro > Macros

Seleccionar macro DIALOGO
Ejecutar.
4. Seleccionar valores en la Hoja de
Dialogo Aceptar
5. F5 -TRABAJADOR Enter
6. CTRL+C
7. F5 - A9 - Enter
8. FIN - ++
9. Edicin > Pegado Especial
O Valores E Transponer Aceptar
10. ESC
11. F5 - A1 - Enter
12. Finalizar Grabacin
Sub CAPTURA()
' CAPTURA Macro
' Macro grabada el 09/12/2004 por CNCYC
'
RESP = vbYes
Do While RESP = vbYes
Application.Goto Reference:="INICIO_CAPTURA"
ActiveCell.Offset(2, 1).Range("A1").Select
NOMBRE = InputBox("TECLEA EL NOMBRE")
ActiveCell.FormulaR1C1 = NOMBRE
Application.Run "'HOJAS DE DIALOGO.xls'!DIALOGO"
Application.Goto Reference:="TRABAJADOR"
Selection.Copy
Application.Goto Reference:="R9C1"
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=True
Application.CutCopyMode = False
RESP = MsgBox("DESEAS CAPTURAR OTRO NOMBRE?", vbYesNo)
Loop
Application.Goto Reference:="R1C1"
End Sub

AUTOMATIZACIN DE HOJAS DE CLCULO EN EXCEL ANEXOS
CENTRO NACIONAL DE CAPACITACION Y CALIDADIMSS-SNTSS 41












En ste apartado se describen los procedimientos de grabacin, cdigos y
modificaciones de cdigo para cada uno de los ejercicios realizados durante el
curso como una gua de apoyo didctico para el participante. Le invitamos a
consultarlos si le es necesario al realizar sus ejercicios.

ANEXOS AUTOMATIZACIN DE HOJAS DE CLCULO EN EXCEL
42 CENTRO NACIONAL DE CAPACITACION Y CALIDAD IMSS-SNTSS
AUTOMATIZACIN DE HOJAS DE CLCULO EN EXCEL ANEXOS
CENTRO NACIONAL DE CAPACITACION Y CALIDADIMSS-SNTSS 43
ANEXO 1. EJERCICIOS DE EXCEL AVANZADO
EJERCICIO 1:
Crear una macro que capture MATRICULA, NOMBRE, PUESTO y SUELDO del trabajador y los coloque al final de
una lista, y al terminar nos regrese a la primera celda de la hoja.

Procedimiento:
Nombre de la Macro: Macro_Ejercicio1
Secuencia de grabacin:
1. F5 - A1 - Enter
2. FIN ++
3. TECLEAR MATRICULA - Enter ( "1" )
4. TECLEAR NOMBRE - Enter ( "JUAN" )
5. TECLEAR PUESTO - Enter ( "MATEMATICO" )
6. TECLEAR SUELDO - Enter ( "10000" )
7. F5 - A1 - Enter
8. Detener Grabacin

Cdigo Visual Basic:
Sub MACRO_EJERCICIO1( )
Application.Goto Reference:="R1C1"
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveCell.FormulaR1C1 = 1
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = JUAN
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = MATEMATICO
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = 10000
Application.Goto Reference:="R1C1"
End Sub

Codigo Visual Basic Modificado:
El cdigo ya modificado con la instruccin InputBox de
Visual Basic queda de la forma siguiente:
Sub MACRO_EJERCICIO1()
Application.Goto Reference:="R1C1"
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Range("A1").Select
MATRI = InputBox("TECLEA MATRCULA DEL TRABAJADOR")
ActiveCell.FormulaR1C1 = MATRI
ActiveCell.Offset(0, 1).Range("A1").Select
NOMBRE = InputBox("TECLEA NOMBRE DEL TRABAJADOR")
ActiveCell.FormulaR1C1 = NOMBRE
ActiveCell.Offset(0, 1).Range("A1").Select
PUESTO = InputBox("TECLEA PUESTO DEL TRABAJADOR")
ActiveCell.FormulaR1C1 = PUESTO
ActiveCell.Offset(0, 1).Range("A1").Select
SUELDO = InputBox("TECLEA SUELDO DEL TRABAJADOR")
ActiveCell.FormulaR1C1 = SUELDO
Application.Goto Reference:="R1C1"
End Sub
ANEXOS AUTOMATIZACIN DE HOJAS DE CLCULO EN EXCEL
44 CENTRO NACIONAL DE CAPACITACION Y CALIDAD IMSS-SNTSS
EJERCICIO 2:
Crear una macro para capturar MATRCULA, NOMBRE, CATEGORIA, SUELDO, NIVEL ACADEMICO Y EDO. CIVIL del
trabajador en el rango de B2:B7, despus copiar estos datos y colocarlos al final de la lista.

Procedimiento:

Nombre de Macro: "Macro_Ejercicio2"
Nota: Antes de proceder al grabado de la macro deber definirse
un nombre de rango para los datos capturados B2:B7): "DATOS1"

Secuencia de grabacin:
1. F5 - A1 - Enter
2. + TECLEAR MATRICULA - Enter ( "1" )
3. + - TECLEAR NOMBRE - Enter ( "JUAN" )
4. + - TECLEAR CATEGORIA - Enter ( "52" )
5. + - TECLEAR SUELDO - Enter ( "9800" )
6. + - TECLEAR NIVEL ACADMICO - Enter
( "LICENCIATURA" )
7. + - TECLEAR ESTADO CIVIL - Enter
( "CASADO" )
8. F5 - DATOS_1 - Enter
(DATOS_1 es el nombre de rango B2:B7
definido previamente)
9. Edicin > Copiar (CTRL+C)
10. F5 - A9 - Enter
11. FIN + +
12. Edicin > Pegado Especial
O Valores E Transponer Aceptar.
13. ESC
14. F5 - A1 - Enter


AUTOMATIZACIN DE HOJAS DE CLCULO EN EXCEL ANEXOS
CENTRO NACIONAL DE CAPACITACION Y CALIDADIMSS-SNTSS 45


Cdigo Visual Basic:
Sub MACRO_EJERCICIO2()
Application.Goto Reference:="R1C1"
ActiveCell.Offset(1, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = "1"
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveCell.FormulaR1C1 = "JUAN"
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveCell.FormulaR1C1 = "N52"
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveCell.FormulaR1C1 = "9800"
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveCell.FormulaR1C1 = "LICENCIATURA"
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveCell.FormulaR1C1 = "CASADO"
Application.Goto Reference:="DATOS_1"
Selection.Copy
Application.Goto Reference:="R9C1"
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Range("A1").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=True
Application.CutCopyMode = False
Application.Goto Reference:="R1C1"
End Sub










Cdigo Visual Basic modificado:
El cdigo ya modificado con la instruccin InputBox de
Visual Basic queda de la forma siguiente:
Sub MACRO_EJERCICIO2()
Application.Goto Reference:="R1C1"
ActiveCell.Offset(1, 1).Range("A1").Select
NOMBRE = InputBox("TECLEA EL NOMBRE")
ActiveCell.FormulaR1C1 = NOMBRE
ActiveCell.Offset(1, 0).Range("A1").Select
MATRICULA = InputBox("TECLEA LA MATRICULA")
ActiveCell.FormulaR1C1 = MATRICULA
ActiveCell.Offset(1, 0).Range("A1").Select
CATEGORIA = InputBox("TECLEA CATEGORIA O NIVEL")
ActiveCell.FormulaR1C1 = NIVEL
ActiveCell.Offset(1, 0).Range("A1").Select
SUELDO = InputBox("TECLEA EL SUELDO")
ActiveCell.FormulaR1C1 = SUELDO
ActiveCell.Offset(1, 0).Range("A1").Select
NIVEL_ACADEMICO=InputBox("TECLEA NIVEL ACADEMICO")
ActiveCell.FormulaR1C1 = NIVEL_ACADEMICO
ActiveCell.Offset(1, 0).Range("A1").Select
ESTADO_CIVIL = InputBox("TECLEA ESTADO CIVIL")
ActiveCell.FormulaR1C1 = ESTADO_CIVIL
Application.Goto Reference:="DATOS_1"
Selection.Copy
Application.Goto Reference:="R9C1"
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Range("A1").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=True
Application.CutCopyMode = False
ActiveCell.Offset(0, 1).Range("A1").Select
Application.Goto Reference:="R1C1"
End Sub



ANEXOS AUTOMATIZACIN DE HOJAS DE CLCULO EN EXCEL
46 CENTRO NACIONAL DE CAPACITACION Y CALIDAD IMSS-SNTSS
EJERCICIO 3:
Crear una macro para generar una factura. La macro genera el nmero consecutivo de la factura; limpia los datos
del cliente anterior y todos los productos que se llev; luego, pide el Nombre del Cliente, as como su Direccin.
Enseguida ingresa el nombre del producto, el precio, la cantidad, y realiza operaciones para calcular el subtotal, el
IVA y Total, y los suma al total a pagar. Al final este total a pagar lo acumula en un total global.

PROCEDIMIENTO:
Nombre de Macro: "Macro_Ejercicio3"
Nota: Antes de proceder al grabado de la macro deber hacer lo siguiente:
Definir un nombre para el rango B4:B5 ("CLIENTE") que corresponde a los datos del cliente y otro para
el rango A8:F15 (PRODUCTOS) correspondiente a los productos vendidos.
Para el registro de fecha y hora en que se emite la factura colocar en B2 la funcin =HOY() y en D2 la
funcin =AHORA() con formato de hora.
Para generar el consecutivo de la factura colocar un nmero 1 en la celda F1.
Para el clculo del total de la factura colocar en F16 la formula: =SUMA(F8:F15)
SECUENCIA DE GRABACIN:

1. F5 - A1 - Enter
2. F5 - CLIENTE - Enter
3. SUPR
4. F5 - PRODUCTOS - Enter
5. SUPR
6. F5 - F1 - Enter
7. CTRL+C
8. + Edicin > Pegado Especial
O Valores O Sumar Aceptar
9. ESC
10. F5 - B4 - Enter
11. TECLEA NOMBRE CLIENTE - Enter
12. + TECLEA DIRECCION
CLIENTE - Enter
13. F5 - A6 Enter


14. FIN ++
15. TECLEAR ARTCULO - Enter
16. TECLEAR PRECIO - Enter
17. TECLEAR CANTIDAD - Enter
18. = * Enter
19. = * 0.15 Enter
20. = + Enter
21. F5 - F16 - Enter
22. CTRL+C
23. F5 - H3 - Enter
24. Edicin > Pegado Especial
O Valores O Sumar Aceptar
25. ESC
26. F5 - A1 Enter
27. Detener Grabacin
AUTOMATIZACIN DE HOJAS DE CLCULO EN EXCEL ANEXOS
CENTRO NACIONAL DE CAPACITACION Y CALIDADIMSS-SNTSS 47
Cdigo Visual Basic:
Sub MACRO_EJERCICIO3()
Application.Goto Reference:="R1C1"
Application.Goto Reference:="CLIENTE"
Selection.ClearContents
Application.Goto Reference:="PRODUCTOS"
Selection.ClearContents
Application.Goto Reference:="R1C6"
Selection.Copy
ActiveCell.Offset(1, 0).Range("A1").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlAdd, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Application.Goto Reference:="R4C2"
ActiveCell.FormulaR1C1 = "JUAN LEON"
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveCell.FormulaR1C1 = "TLALPAN 23"
Application.Goto Reference:="R6C1"
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveCell.FormulaR1C1 = "BALATAS"
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = "4"
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = "50"
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = "=RC[-2]*RC[-1]"
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = "=RC[-1]*15%"
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = "=RC[-2]+RC[-1]"
Application.Goto Reference:="R16C6"
Selection.Copy
Application.Goto Reference:="R3C8"
Selection.PasteSpecial Paste:=xlValues, Operation:=xlAdd, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Application.Goto Reference:="R1C1"
End Sub







Cdigo Visual Basic modificado:
El cdigo ya modificado con la instruccin InputBox de
Visual Basic queda de la forma siguiente:
Sub MACRO_EJERCICIO3()
Application.Goto Reference:="R1C1"
Application.Goto Reference:="CLIENTE"
Selection.ClearContents
Application.Goto Reference:="PRODUCTOS"
Selection.ClearContents
Application.Goto Reference:="R1C6"
Selection.Copy
ActiveCell.Offset(1, 0).Range("A1").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlAdd, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Application.Goto Reference:="R4C2"
CLIENTE = InputBox("TECLEA EL NOMBRE DEL CLIENTE")
ActiveCell.FormulaR1C1 = CLIENTE
ActiveCell.Offset(1, 0).Range("A1").Select
DIRECCION = InputBox("TECLEA DIRECCION DEL CLIENTE")
ActiveCell.FormulaR1C1 = DIRECCION
Application.Goto Reference:="R6C1"
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Range("A1").Select
PRODUCTO = InputBox("TECLEA EL PRODUCTO")
ActiveCell.FormulaR1C1 = PRODUCTO
ActiveCell.Offset(0, 1).Range("A1").Select
CANTIDAD = InputBox("TECLEA LA CANTIDAD")
ActiveCell.FormulaR1C1 = CANTIDAD
ActiveCell.Offset(0, 1).Range("A1").Select
PRECIO = InputBox("TECLEA EL PRECIO")
ActiveCell.FormulaR1C1 = PRECIO
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = "=RC[-2]*RC[-1]"
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = "=RC[-1]*15%"
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = "=RC[-2]+RC[-1]"
Application.Goto Reference:="R16C6"
Selection.Copy
Application.Goto Reference:="R3C8"
Selection.PasteSpecial Paste:=xlValues, Operation:=xlAdd, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Application.Goto Reference:="R1C1"
End Sub

ANEXOS AUTOMATIZACIN DE HOJAS DE CLCULO EN EXCEL
48 CENTRO NACIONAL DE CAPACITACION Y CALIDAD IMSS-SNTSS
EJERCICIO 4:
Crear una macro que nos pida MATRICULA, NOMBRE, PUESTO y SUELDO del trabajador y los coloque al final
de la lista, y que al terminar nos pregunte si deseamos seguir capturando mas datos, si contestamos que si,
entonces que nos pida nuevamente los datos para capturar, pero si contestamos que no, que termine la macro.
Consulte la figura del Ejercicio 1
PROCEDIMIENTO:
Nombre de la Macro: Macro_Ejercicio4
El procedimiento de grabacin y cdigo son similares al ejercicio 1 como a continuacin observamos:
Nota: Antes de proceder al grabado de la macro
deber definirse un nombre de rango para los datos capturados (B2:B7): "DATOS_2"

SECUENCIA DE GRABACIN:
1. F5 - A1 - Enter
2. FIN ++
3. TECLEAR MATRICULA - Enter ( "1" )
4. TECLEAR NOMBRE - Enter ( "JUAN" )
5. TECLEAR PUESTO - Enter ( "MATEMATICO" )
6. TECLEAR SUELDO - Enter ( "10000" )
7. F5 - A1 Enter
8. Detener Grabacin

Cdigo Visual Basic:
Sub MACRO_EJERCICIO4( )
Application.Goto Reference:="R1C1"
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveCell.FormulaR1C1 = 1
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = JUAN
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = MATEMATICO
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = 10000
Application.Goto Reference:="R1C1"
End Sub
Cdigo Visual Basic modificado:
El cdigo deber modificarse con las instrucciones
InputBox, Do While y MsgBox quedando de la forma
siguiente:
Sub MACRO_EJERCICIO1()
RESPUESTA = vbYes
Do While RESPUESTA = vbYes
Application.Goto Reference:="R1C1"
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Range("A1").Select
MATRI = InputBox("TECLEA MATRCULA DEL TRABAJADOR")
ActiveCell.FormulaR1C1 = MATRI
ActiveCell.Offset(0, 1).Range("A1").Select
NOMBRE = InputBox("TECLEA NOMBRE DEL TRABAJADOR")
ActiveCell.FormulaR1C1 = NOMBRE
ActiveCell.Offset(0, 1).Range("A1").Select
PUESTO = InputBox("TECLEA PUESTO DEL TRABAJADOR")
ActiveCell.FormulaR1C1 = PUESTO
ActiveCell.Offset(0, 1).Range("A1").Select
SUELDO = InputBox("TECLEA SUELDO DEL TRABAJADOR")
ActiveCell.FormulaR1C1 = SUELDO
RESPUESTA = MsgBox("DESEAS CAPTURAR MAS DATOS?", vbYesNo)
Loop
Application.Goto Reference:="R1C1"
End Sub


AUTOMATIZACIN DE HOJAS DE CLCULO EN EXCEL ANEXOS
CENTRO NACIONAL DE CAPACITACION Y CALIDADIMSS-SNTSS 49
EJERCICIO 5:
Crear una macro que nos pida MATRICULA, NOMBRE, CATEGORIA, SUELDO, NIVEL ACADEMICO y ESTADO
CIVIL del trabajador y los coloque en el rango B2:B7, luego que nos pida comprobar si estn bien los datos, si
estn mal que los vuelva a pedir, si estn bien que los copie y los coloque al final de la lista, y al terminar nos
pregunte si deseamos seguir capturando mas datos, si contestamos que si, que nos pida nuevamente los datos
para capturar, pero si contestamos que no, que termine la macro.

PROCEDIMIENTO:
Nombre de la Macro: Macro_Ejercicio5
El procedimiento de grabacin y cdigo son similares al ejercicio 2 como a continuacin observamos:
Nota: Antes de proceder al grabado de la macro deber definirse
un nombre de rango para los datos capturados (B2:B7): "DATOS_2"

SECUENCIA DE GRABACIN:
1. F5 - A1 - Enter
2. + TECLEAR MATRICULA - Enter ( "1" )
3. + -TECLEAR NOMBRE - Enter ( "JUAN" )
4. + -TECLEAR CATEGORIA - Enter ( "52" )
5. + -TECLEAR SUELDO - Enter ( "9800" )
6. + -TECLEAR NIVEL ACADMICO - Enter
( "LICENCIATURA" )
7. + - TECLEAR ESTADO CIVIL - Enter
( "CASADO" )
8. F5 - DATOS_1 Enter
(DATOS_1 es el nombre de rango B2:B7
definido previamente)
9. Edicin > Copiar (CTRL+C)
10. F5 - A9 - Enter
11. FIN + +
12. Edicin > Pegado Especial
O Valores E Transponer Aceptar.
13. ESC
14. F5 - A1 - Enter
15. Detener Grabacin

Cdigo Visual Basic
Sub MACRO_EJERCICIO5()
Application.Goto Reference:="R1C1"
ActiveCell.Offset(1, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = "1"
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveCell.FormulaR1C1 = "JUAN"
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveCell.FormulaR1C1 = "52"
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveCell.FormulaR1C1 = "9800"
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveCell.FormulaR1C1 = "LICENCIATURA"
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveCell.FormulaR1C1 = "CASADO"
Application.Goto Reference:="DATOS_2"
Selection.Copy
Application.Goto Reference:="R9C1"
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Range("A1").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=True
Application.CutCopyMode = False
Application.Goto Reference:="R1C1"
End Sub
ANEXOS AUTOMATIZACIN DE HOJAS DE CLCULO EN EXCEL
50 CENTRO NACIONAL DE CAPACITACION Y CALIDAD IMSS-SNTSS

Cdigo Visual Basic modificado
El cdigo deber modificarse con las instrucciones InputBox, Do While y MsgBox quedando de la forma
siguiente:
Sub MACRO_EJERCICIO5()
RESPUESTA1 = vbYes
Do While RESPUESTA1 = vbYes
RESPUESTA2 = vbNo
Do While RESPUESTA2 = vbNo
Application.Goto Reference:="R1C1"
ActiveCell.Offset(1, 1).Range("A1").Select
NOMBRE = InputBox("TECLEA EL NOMBRE")
ActiveCell.FormulaR1C1 = NOMBRE
ActiveCell.Offset(1, 0).Range("A1").Select
MATRICULA = InputBox("TECLEA LA MATRICULA")
ActiveCell.FormulaR1C1 = MATRICULA
ActiveCell.Offset(1, 0).Range("A1").Select
CATEGORIA = InputBox("TECLEA LA CATEGORIA O NIVEL")
ActiveCell.FormulaR1C1 = NIVEL
ActiveCell.Offset(1, 0).Range("A1").Select
SUELDO = InputBox("TECLEA EL SUELDO")
ActiveCell.FormulaR1C1 = SUELDO
ActiveCell.Offset(1, 0).Range("A1").Select
NIVEL_ACADEMICO = InputBox("TECLEA EL NIVEL ACADEMICO")
ActiveCell.FormulaR1C1 = NIVEL_ACADEMICO
ActiveCell.Offset(1, 0).Range("A1").Select
ESTADO_CIVIL = InputBox("TECLEA EL ESTADO CIVIL")
ActiveCell.FormulaR1C1 = ESTADO_CIVIL
RESPUESTA2 = MsgBox("TUS DATOS SON CORRECTOS?", vbYesNo)
Loop
Application.Goto Reference:="DATOS_2"
Selection.Copy
Application.Goto Reference:="R9C1"
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Range("A1").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=True
Application.CutCopyMode = False
RESPUESTA1 = MsgBox("DESEAS CAPTURAR MAS DATOS?", vbYesNo)
Loop
ActiveCell.Offset(0, 1).Range("A1").Select
Application.Goto Reference:="R1C1"
End Sub

AUTOMATIZACIN DE HOJAS DE CLCULO EN EXCEL ANEXOS
CENTRO NACIONAL DE CAPACITACION Y CALIDADIMSS-SNTSS 51
EJERCICIO 6:
Crear una macro para llenar esta factura. La macro genera el nmero consecutivo de la factura; limpia los datos
del cliente anterior y todos los productos que se llev; luego, pide el nombre del cliente, as como su direccin.
luego nos pide comprobar si los datos del cliente son correctos, si estn mal que nos vuelva a pedir los datos, si
estn bien que avance para ingresar el nombre del PRODUCTO, el PRECIO, la CANTIDAD, y realiza operaciones
para calcular el SUBTOTAL, el IVA y TOTAL, al llegar al total individual nos pregunte si deseamos mas productos
para este cliente, si contestamos que si, que nos vuelva a pedir producto, precio y cantidad, si contestamos que no
los suma al total a pagar. Al final este total a pagar lo acumula en un total global.

PROCEDIMIENTO:
Nombre de Macro: "Macro_Ejercicio6"
El procedimiento de grabacin y cdigo son similares al ejercicio 3 como a continuacin observamos:
Nota: Antes de proceder al grabado de la macro deber hacer lo siguiente
Definir un nombre para el rango B4:B5 ("CLIENTE_2") que corresponde a los datos del cliente y otro para el
rango A8:F15 (PRODUCTOS_2) correspondiente a los productos vendidos.
Para el registro de fecha y hora en que se emite la factura colocar en B2 la funcin =HOY() y en D2 la funcin
=AHORA() con formato de hora.
Para generar el consecutivo de la factura colocar un nmero 1 en la celda F1.
Para el clculo del total de la factura colocar en F16 la formula: =SUMA(F8:F15)
SECUENCIA DE GRABACIN:

1. F5 - A1 - Enter
2. F5 - F1 - Enter
3. CTRL+C
4. + Edicin > Pegado Especial
O Valores O Sumar Aceptar
5. ESC
6. F5 - PRODUCTOS - Enter
7. SUPR
8. F5 - CLIENTE - Enter
9. SUPR
10. F5 - B4 - Enter
11. TECLEA NOMBRE CLIENTE - Enter
12. + TECLEA DIRECCION
CLIENTE - Enter
13. F5 - A6 Enter

14. FIN ++
15. TECLEAR ARTCULO - Enter
16. TECLEAR PRECIO - Enter
17. TECLEAR CANTIDAD - Enter
18. = * Enter
19. = * 0.15 Enter
20. = + Enter
21. F5 - F16 - Enter
22. CTRL+C
23. F5 - H3 - Enter
24. Edicin > Pegado Especial
O Valores OSumar Aceptar
25. ESC
26. F5 - A1 - Enter
27. Detener Grabacin

ANEXOS AUTOMATIZACIN DE HOJAS DE CLCULO EN EXCEL
52 CENTRO NACIONAL DE CAPACITACION Y CALIDAD IMSS-SNTSS
Cdigo Visual Basic
Sub MACRO_EJERCICIO6()
Application.Goto Reference:="R1C1"
Application.Goto Reference:="R1C6"
Selection.Copy
ActiveCell.Offset(1, 0).Range("A1").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlAdd, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Application.Goto Reference:="PRODUCTOS_2"
Selection.ClearContents
Application.Goto Reference:="CLIENTE_2"
Selection.ClearContents
Application.Goto Reference:="R4C2"
ActiveCell.FormulaR1C1 = "JUAN LEON"
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveCell.FormulaR1C1 = "TLALPAN 23"
Application.Goto Reference:="R6C1"
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveCell.FormulaR1C1 = "BALATAS"
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = "4"
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = "50"
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = "=RC[-2]*RC[-1]"
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = "=RC[-1]*15%"
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = "=RC[-2]+RC[-1]"
Application.Goto Reference:="R16C6"
Selection.Copy
Application.Goto Reference:="R3C8"
Selection.PasteSpecial Paste:=xlValues, Operation:=xlAdd, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Application.Goto Reference:="R1C1"
End Sub











Cdigo Visual Basic Modificado
El cdigo deber modificarse con las instrucciones
InputBox, Do While y MsgBox de la forma siguiente:
Sub MACRO_EJERCICIO6()
Application.Goto Reference:="R1C1"
Application.Goto Reference:="R1C6"
Selection.Copy
ActiveCell.Offset(1, 0).Range("A1").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlAdd, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Application.Goto Reference:="PRODUCTOS_2"
Selection.ClearContents
CORRECTOS = vbNo
Do While CORRECTOS = vbNo
Application.Goto Reference:="CLIENTE_2"
Selection.ClearContents
Application.Goto Reference:="R4C2"
CLIENTE = InputBox("TECLEA NOMBRE DEL CLIENTE")
ActiveCell.FormulaR1C1 = CLIENTE
ActiveCell.Offset(1, 0).Range("A1").Select
DIRECCION = InputBox("TECLEA DIRECCION DEL CLIENTE")
ActiveCell.FormulaR1C1 = DIRECCION
CORRECTOS = MsgBox(LOS DATOS SON CORRECTOS?,vbYesNo)
Loop
RESPUESTA = vbYes
Do While RESPUESTA = vbYes
Application.Goto Reference:="R6C1"
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Range("A1").Select
PRODUCTO = InputBox("TECLEA EL PRODUCTO")
ActiveCell.FormulaR1C1 = PRODUCTO
ActiveCell.Offset(0, 1).Range("A1").Select
CANTIDAD = InputBox("TECLEA LA CANTIDAD")
ActiveCell.FormulaR1C1 = CANTIDAD
ActiveCell.Offset(0, 1).Range("A1").Select
PRECIO = InputBox("TECLEA EL PRECIO")
ActiveCell.FormulaR1C1 = PRECIO
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = "=RC[-2]*RC[-1]"
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = "=RC[-1]*15%"
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = "=RC[-2]+RC[-1]"
RESPUESTA = MsgBox(DESEAS INGRESAR MS PRODUCTOS?,vbYesNo)
Loop
Application.Goto Reference:="R16C6"
Selection.Copy
Application.Goto Reference:="R3C8"
Selection.PasteSpecial Paste:=xlValues, Operation:=xlAdd, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Application.Goto Reference:="R1C1"
End Sub
AUTOMATIZACIN DE HOJAS DE CLCULO EN EXCEL ANEXOS
CENTRO NACIONAL DE CAPACITACION Y CALIDADIMSS-SNTSS 53
ANEXO 2. SISTEMA DE MACROS PARA EXCEL AVANZADO
HOJA MENU

PROCEDIMIENTO:
NOTA: Los nombres de la primera celda de cada hoja: INICIO_ALMACEN. INICIO_VENTAS, INICIO_FACTURAS,
INICIO_DERECHOS e INICIO_MENU debern definirse antes de grabar cada una de las macros.
Los cdigos de las macros asignadas a cada botn del men son los siguientes
Sub A_ALMACEN()
' Macro para trasladarse a la hoja ALMACEN
Application.Goto Reference:="INICIO_ALMACEN"
End Sub
Sub A_VENTAS()
' Macro para trasladarse a la hoja VENTAS
Application.Goto Reference:="INICIO_VENTAS"
End Sub
Sub A_FACTURAS()
' Macro para trasladarse a la hoja FACTURAS
Application.Goto Reference:="INICIO_FACTURAS"
End Sub
Sub A_DERECHOS()
' Macro para trasladarse a la hoja DERECHOS
Application.Goto Reference:="INICIO_DERECHOS"
End Sub
Sub A_MENU()
' Macro para trasladarse a la hoja MENU
Application.Goto Reference:="INICIO_MENU"
End Sub
ANEXOS AUTOMATIZACIN DE HOJAS DE CLCULO EN EXCEL
54 CENTRO NACIONAL DE CAPACITACION Y CALIDAD IMSS-SNTSS
HOJA ALMACEN:
Debe definirse previamente un nombre (PRODUCTOS) para el rango que contendr la lista de datos de almacn.
Se sugiere establecer un rango para ingresar por lo menos 500 productos (A2:D503)
1. MACRO PARA AGREGAR NUEVOS PRODUCTOS:
Nombre de macro: NUEVO
PROCEDIMIENTO:
Se debe definir antes un nombre (PRODUCTO_NUEVO) para el rea de productos adquiridos: (G5:G8)
El cdigo de la macro que agrega nuevos productos al almacn ya modificado queda de la forma siguiente:
Sub NUEVO()
' NUEVO - Macro que permite agregar nuevos productos al almacn.

Application.Goto Reference:="INICIO_ALMACEN"
RESP = vbYes
Do While RESP = vbYes
Application.Goto Reference:="R5C7"
CLAVE = InputBox("ESCRIBE LA CLAVE")
ActiveCell.FormulaR1C1 = CLAVE
ActiveCell.Offset(1, 0).Range("A1").Select
PRODUCTO = InputBox("ESCRIBE NOMBRE DE PRODUCTO")
ActiveCell.FormulaR1C1 = PRODUCTO
ActiveCell.Offset(1, 0).Range("A1").Select
PRECIO = InputBox("ESCRIBE PRECIO DEL PRODUCTO")
ActiveCell.FormulaR1C1 = PRECIO
ActiveCell.Offset(1, 0).Range("A1").Select
CANT = InputBox("TECLEA LA CANTIDAD COMPRADA")
ActiveCell.FormulaR1C1 = CANT
Application.Goto Reference:="PRODUCTO_NUEVO"
Selection.Copy
Application.Goto Reference:="R1C1"
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=True
Application.CutCopyMode = False
RESP = MsgBox("DESEAS CAPTURAR OTRO PRODUCTO?", vbYesNo)
Loop
Application.Goto Reference:="R1C1"
End Sub

AUTOMATIZACIN DE HOJAS DE CLCULO EN EXCEL ANEXOS
CENTRO NACIONAL DE CAPACITACION Y CALIDADIMSS-SNTSS 55
2. MACRO PARA ACTUALIZAR EXISTENCIAS EN ALMACEN (NUEVAS COMPRAS)
NOTA: Antes de proceder al grabado de la macro colocar funciones de bsqueda en G11, G12 y G13 que permitan
consultar desde la base de datos el nombre, precio y existencia del producto que corresponde a la clave dada:
=BUSCARV(G10,PRODUCTOS,2,FALSO)
=BUSCARV(G10,PRODUCTOS,3,FALSO)
=BUSCARV(G10,PRODUCTOS,4,FALSO)
El cdigo ya modificado de la macro que actualiza existencias en almacn queda de la forma siguiente:
Sub ACTUALIZAR()
' Macro que actualiza existencias en Almacen
Application.Goto Reference:="INICIO_ALMACEN"
RESPUESTA = vbYes
Do While RESPUESTA = vbYes
RESPUESTA2 = vbNo
Do While RESPUESTA2 = vbNo
Application.Goto Reference:="R10C7"
CLAVE = InputBox("FAVOR DE TECLEAR LA CLAVE")
ActiveCell.FormulaR1C1 = CLAVE
Application.Goto Reference:="R14C7"
COMPRA = InputBox("FAVOR DE TECLEAR CANTIDAD COMPRADA")
ActiveCell.FormulaR1C1 = COMPRA
RESPUESTA2 = MsgBox("EL DATO ES CORRECTO?", vbYesNo)
Loop
Selection.Copy
Application.Goto Reference:="R1C1"
Cells.Find(What:=CLAVE, After:=ActiveCell, LookIn:=xlValues, LookAt:= _
xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Activate
ActiveCell.Offset(0, 3).Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlAdd, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Application.Goto Reference:="R14C7"
Selection.ClearContents
MsgBox "EL PRODUCTO SE HA ACTUALIZADO!", vbOKOnly
RESPUESTA = MsgBox("DESEA ACTUALIZAR OTRO PRODUCTO?", vbYesNo)
Loop
Application.Goto Reference:="R1C1"
End Sub
ANEXOS AUTOMATIZACIN DE HOJAS DE CLCULO EN EXCEL
56 CENTRO NACIONAL DE CAPACITACION Y CALIDAD IMSS-SNTSS
3.- MACRO PARA BUSQUEDA DE PRODUCTOS EN ALMACEN:
NOTA: Este procedimiento permite hacer una bsqueda de un producto utilizando la clave o el nombre del mismo.
La clave y nombre se deber pedir a travs de un Input Box. Colocar antes en G17, G18 Y G19 frmulas para la bsqueda
del NOMBRE, PRECIO y EXISTENCIA del producto que corresponde a la clave o nombre dados:
=BUSCARV(G16,PRODUCTOS,2,FALSO)
=BUSCARV(G16,PRODUCTOS,3,FALSO)
=BUSCARV(G16,PRODUCTOS,4,FALSO)
El cdigo ya modificado de la macro para bsquedas en almacn queda de la forma siguiente:
Sub BUSQUEDA()
' Macro para realizar BUSQUEDAS en almacn.
Application.Goto Reference:="INICIO_ALMACEN"
CLAVE = InputBox("ESCRIBA LA CLAVE O NOMBRE DEL PRODUCTO BUSCADO")
Cells.Find(What:=CLAVE, After:=ActiveCell, LookIn:=xlValues, LookAt:= _
xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False _
, SearchFormat:=False).Activate
Selection.End(xlToLeft).Select
Selection.Copy
Application.Goto Reference:="R16C7"
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Application.Goto Reference:="R1C1"
End Sub
AUTOMATIZACIN DE HOJAS DE CLCULO EN EXCEL ANEXOS
CENTRO NACIONAL DE CAPACITACION Y CALIDADIMSS-SNTSS 57
HOJA VENTAS:
PROCEDIMIENTO:
A.) Antes de iniciar asegurarse que ya existe un nombre (PRODUCTOS) para el rango de la lista de productos
que se encuentran en almacn. Si no es as deber crearlo.
B.) Crear frmulas de bsqueda en B4, B5 y B7 para saber el nombre del producto, precio y existencia:
PROCEDIMIENTO PARA HACER LA BUSQUEDA:
Colocarse en la celda donde se va a colocar el Nombre del producto.
Crear las formulas de bsqueda:
=BUSCARV(B3,PRODUCTOS,2,FALSO) Para el Producto
=BUSCARV(B3,PRODUCTOS,3,FALSO) Para el Precio
=BUSCARV(B3,PRODUCTOS,4,FALSO) Para la Existencia
El cdigo Visual ya modificado de la macro para la hoja VENTAS queda de la forma siguiente:
Sub VENTA()
' Macro para realizar una VENTA
Application.Goto Reference:="INICIO_VENTAS"
RESP = vbYes
Do While RESP = vbYes
Application.Goto Reference:="R3C2"
CLAVE = InputBox("TECLEA LA CLAVE DEL PRODUCTO")
ActiveCell.FormulaR1C1 = CLAVE
CORRECTA = vbNo
Do While CORRECTA = vbNo
Application.Goto Reference:="R6C2"
CANT = InputBox("TECLEA LA CANTIDAD SOLICITADA")
ActiveCell.FormulaR1C1 = CANT
CORRECTA = MsgBox("LA CANTIDAD ES CORRECTA?", vbYesNo)
Loop
AUTORIZA = MsgBox("EL CLIENTE ACEPTA LA COMPRA?", vbYesNo)
If AUTORIZA = vbNo Then
Application.Goto Reference:="INICIO_VENTAS"
End
Else
Selection.Copy
Application.Goto Reference:="INICIO_ALMACEN"
Cells.Find(What:=CLAVE, After:=ActiveCell, LookIn:=xlValues, LookAt:= _
xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
, SearchFormat:=False).Activate
ActiveCell.Offset(0, 3).Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlSubtract, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Application.Goto Reference:="INICIO_VENTAS"
End If
RESP = MsgBox("DESEAS REGISTRAR OTRA VENTA?", vbYesNo)
Loop
Application.Goto Reference:="INICIO_VENTAS"
End Sub
ANEXOS AUTOMATIZACIN DE HOJAS DE CLCULO EN EXCEL
58 CENTRO NACIONAL DE CAPACITACION Y CALIDAD IMSS-SNTSS
HOJA FACTURAS:
PROCEDIMIENTO:
PRODUCTOS (Hoja Almacn A2:D503), ARTS_VENDIDOS (A9:G19); y CLIENTE (B4:B5) son nombres de rango
que tiene que definir con anterioridad. Adems deber poner un 1 en la celda F1 para inicializar el contador del
consecutivo. El cdigo Visual ya modificado de la macro FACTURAR queda de la forma siguiente:
Sub FACTURAR()
' Macro para llenar una FACTURA
Application.Goto Reference:="INICIO_FACTURAS"
Application.Goto Reference:="R1C6"
Selection.Copy
ActiveCell.Offset(1, 0).Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlAdd, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Application.Goto Reference:="ARTS_VENDIDOS"
Selection.ClearContents
CORRECTO = vbNo
Do While CORRECTO = vbNo
Application.Goto Reference:="CLIENTE"
Selection.ClearContents
Application.Goto Reference:="R4C2"
NOMBRE = InputBox("INTRODUCE NOMBRE DEL CLIENTE")
ActiveCell.FormulaR1C1 = NOMBRE
ActiveCell.Offset(1, 0).Range("A1").Select
DIRECCION = InputBox("INTRODUCE DIRECCION DEL CLIENTE")
ActiveCell.FormulaR1C1 = DIRECCION
CORRECTO = MsgBox("LOS DATOS DEL CLIENTE SON CORRECTOS?", vbYesNo)
Loop
RESPUESTA = vbYes
Do While RESPUESTA = vbYes
Application.Goto Reference:="R7C1"
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Range("A1").Select
CLAVE = InputBox("INTRODUCE LA CLAVE DEL PRODUCTO A VENDER")
ActiveCell.FormulaR1C1 = CLAVE
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-1],PRODUCTOS,2,FALSE)"
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-2],PRODUCTOS,3,FALSE)"
ActiveCell.Offset(0, 1).Range("A1").Select
CANTIDAD = InputBox("INTRODUCE LA CANTIDAD A VENDER")
ActiveCell.FormulaR1C1 = CANTIDAD
Selection.Copy
Application.Goto Reference:="INICIO_ALMACEN"
Cells.Find(What:=CLAVE, After:=ActiveCell, LookIn:=xlValues, LookAt:= _
xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Activate
ActiveCell.Offset(0, 3).Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlSubtract, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Application.Goto Reference:="INICIO_FACTURAS"
Application.Goto Reference:="R7C1"
Selection.End(xlDown).Select
ActiveCell.Offset(0, 4).Range("A1").Select
ActiveCell.FormulaR1C1 = "=RC[-2]*RC[-1]"
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = "=RC[-1]*15%"
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = "=RC[-2]+RC[-1]"
RESPUESTA = MsgBox("DESEAS AGREGAR OTRO PRODUCTO?", vbYesNo)
AUTOMATIZACIN DE HOJAS DE CLCULO EN EXCEL ANEXOS
CENTRO NACIONAL DE CAPACITACION Y CALIDADIMSS-SNTSS 59
Loop
Application.Goto Reference:="R20C7"
Selection.Copy
Application.Goto Reference:="R2C9"
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlAdd, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Application.Goto Reference:="R1C1"
End Sub



ANEXOS AUTOMATIZACIN DE HOJAS DE CLCULO EN EXCEL
60 CENTRO NACIONAL DE CAPACITACION Y CALIDAD IMSS-SNTSS


AUTOMATIZACIN DE HOJAS DE CLCULO EN EXCEL ANEXOS
CENTRO NACIONAL DE CAPACITACION Y CALIDADIMSS-SNTSS 61











C Co om me en nt ta ar ri io os s

Deseamos que el presente material de apoyo le haya facilitado el aprendizaje de los temas que componen cada
mdulo de este evento y que le sea til para futuras consultas.
Le felicitamos por haber concluido este curso de capacitacin, contine practicando; recuerde que su habilidad
depender del manejo cotidiano de esta paquetera.
Le invitamos a tomar el curso de Excel 2003 Intermedio, en el cual conocer el uso de las Tablas Dinmicas,
Escenarios, Esquemas, Funciones de Bases de Datos, Solver, Buscar Objetivos, etc., dichas herramientas le
ayudarn a realizar mejor sus funciones laborales y personales, con Excel 2003 Avanzado, aprenders a crear y
aplicar las macros de Excel, con esta herramienta podrs automatizar todos tus procesos de una manera eficaz,
atrvete a entrar al mundo maravilloso de la aplicacin de las matemticas en una hoja de clculo.

La perseverancia nos lleva al XITO
C a p a c t a t e !

ANEXOS AUTOMATIZACIN DE HOJAS DE CLCULO EN EXCEL
62 CENTRO NACIONAL DE CAPACITACION Y CALIDAD IMSS-SNTSS
Bibliografa:


La BIBLIA de Microsoft Office 2003
Ed Bott
Woody Leonhard
Editorial Anaya Multimedia
Pas Espaa
1084 Pginas
2005


Edicin Especial Microsoft Office XP
ED BOTT y WOODY LEONHARD
Editorial Prentice Hall
Pas Espaa
1344 Pginas
2004


Microsoft Excel 2003 Paso a Paso
C. Nossiter Joshua
Editorial Prentice Hall
Pas Mxico
426 Pginas
2004


Excel 2003 Super Book
McFedries Paul
Editorial SAMS Publishing
Pas EEUU
1772 Pginas
2004













Obra literaria propiedad del:
Centro Nacional de Capacitacin y Calidad IMSS-SNTSS
Elaborado por:
Eliseo Robles Hernndez

You might also like