SlideShare una empresa de Scribd logo
1 de 62
Descargar para leer sin conexión
CCoooorrddiinnaacciióónn
ddee
IInnffoorrmmááttiiccaa
MMaannuuaall ddeell
PPaarrttiicciippaannttee
AAuuttoommaattiizzaacciióónn
ddee HHoojjaass ddee
CCáállccuulloo eenn EExxcceell
AUTOMATIZACIÓN DE HOJAS DE CÁLCULO EN EXCEL PRESENTACION
CENTRO NACIONAL DE CAPACITACION Y CALIDADIMSS-SNTSS 3
Índice:
Presentación ..................................................................................................................................... 5
“Automatización de Hojas de Cálculo en Excel”............................................................................ 7
Módulo I Funciones de Usuario ....................................................................................................... 9
INTRODUCCIÓN............................................................................................................................................11
1.1 CREACIÓN DE FUNCIONES...................................................................................................................11
1.2 SINTAXIS DE UNA FUNCIÓN. ................................................................................................................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
Módulo II Macros............................................................................................................................. 15
INTRODUCCIÓN............................................................................................................................................17
2.1 MACROS ..................................................................................................................................................17
2.2 TIPOS DE MACROS ................................................................................................................................17
2.3 EL CÓDIGO DE LA MACRO ....................................................................................................................18
2.4 USO DE BOTONES PARA FACILITAR LA EJECUCIÓN 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
Módulo III Aplicación de Macros.................................................................................................... 23
INTRODUCCIÓN............................................................................................................................................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
Módulo IV Barras y Menús Personalizados................................................................................... 31
INTRODUCCIÓN............................................................................................................................................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 SUBMENÚS..............................................................................................................................................35
PRESENTACION AUTOMATIZACIÓN DE HOJAS DE CÁLCULO EN EXCEL
4 CENTRO NACIONAL DE CAPACITACION Y CALIDAD IMSS-SNTSS
Módulo V Cuadros y Hojas de Diálogo ..........................................................................................36
INTRODUCCION ............................................................................................................................................38
5.1 CUADROS DE DIÁLOGO.........................................................................................................................38
5.2 APLICACIÓN Y PROGRAMACIÓN DE CONTROLES EN UN CUADRO DE DIÁLOGO:.......................38
5.3 APLICACIÓN DE MACROS EN UNA HOJA DE DIÁLOGO ...................................................................39
Anexos .............................................................................................................................................41
ANEXO 1. EJERCICIOS DE EXCEL AVANZADO .........................................................................................43
ANEXO 2. SISTEMA DE MACROS PARA EXCEL AVANZADO ...................................................................53
Comentarios ....................................................................................................................................61
AUTOMATIZACIÓN DE HOJAS DE CÁLCULO EN EXCEL PRESENTACION
CENTRO NACIONAL DE CAPACITACION Y CALIDADIMSS-SNTSS 5
PPrreesseennttaacciióónn
El Instituto Mexicano del Seguro Social conjuntamente con el Sindicato Nacional de Trabajadores del Seguro
Social comprometidos con la superación y actualización del personal, impulsan la Capacitación en materia de
Informática, Humanística, Promocional y de Programas Institucionales que se vinculen a la solución de los
problemas de la operación, favoreciendo el otorgamiento de servicios de calidad.
En este contexto la Coordinación de Informática del Centro Nacional de Capacitación y Calidad, cumple con la
tarea de Diseñar los cursos de capacitación y elaborar los Materiales de Apoyo Didácticos de conformidad con la
NTCL (Norma Técnica de Competencia Laboral) Diseño e Impartición de Cursos de Capacitación para sustentar el
programa de capacitación en Informática que integran el Plan de Trabajo de esta Coordinación y que están
abiertos a todos nuestros compañeros trabajadores basados en la NTCL Elaboración de documentos mediante
herramientas de cómputo.
Así pues, se presenta a continuación el Material de Apoyo Didáctico del Participante “Automatización de Hojas de
Cálculo en Excel”, que ha sido elaborado con base en la Unidad de Competencia “Elaboración de hojas de cálculo
mediante aplicaciones de cómputo” Código UINF0652.01 con información actualizada y el sustento pedagógico y
didáctico 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 operación de herramientas para el procesamiento de Hojas de
Cálculo, desde el inicio de la aplicación, el formato a la Hoja, el tratamiento a los datos, la reproducción en
impresora o archivos y el guardado del documento.
PRESENTACION AUTOMATIZACIÓN DE HOJAS DE CÁLCULO EN EXCEL
6 CENTRO NACIONAL DE CAPACITACION Y CALIDAD IMSS-SNTSS
Este material de apoyo didáctico para el participante está estructurado en cuatro Módulos.
Módulo I: Funciones de Usuario para Fórmulas complejas: En este módulo usted aprenderá a crear sus
propias funciones de usuario. Una función de usuario sirve para crear fórmulas complejas programadas
en Excel mediante programación Visual Basic y colocarlas dentro del asistente de funciones para su
uso posterior, también aprenderá a llamar a funciones dentro de una función, usando el código de
Visual Basic.
Módulo II: Macros. Una macro es un conjunto de instrucciones a las que se da un nombre y que indica a Excel
una determinada acción a realizar. Este módulo guía al participante en el conocimiento y aplicación de
las macros y cómo se pueden utilizar para incrementar la productividad. También veremos como
grabar, ejecutar, editar y asignar botones de órdenes a las macros creadas.
Módulo III: Aplicación de macros, en este módulo el participante creará una aplicación usando macros, en la
que aplicara todos los conocimientos adquiridos en los cursos anteriores de Excel.
Módulo IV: Barras y Menús Personalizados: Para dar una mejor presentación a sus libros de trabajo, este Módulo
es el adecuado, ya que en él usted aprenderá a crear Barras y Menús personalizados e incluso crear su
propia barra y menú para una aplicación en especial, y así poder evitar que el usuario seleccione otras
opciones ajenas a la aplicación.
Módulo V: Cuadros y Hojas de Diálogo: Después de haber creado y elaborado una serie de macros en sus
Hojas de Cálculo en Excel, necesitara manejar todas sus macros desde una hoja especial de Diálogo,
esta opción nos permite ejecutar macros que utilizan una hoja de Diálogo para una mejor presentación
de sus sistemas en pantalla.
Es recomendable que para un buen aprovechamiento de este curso adquiera el conocimiento previo que le brindan
los cursos “Introducción al uso y Operación de las Microcomputadoras” , “Administración de Recursos con
Windows XP”, “Fundamentos de Programación”, “Formato y Operaciones en Excel” y “Gestión de Datos en
Excel”, con lo que seguirá un proceso continúo de enseñanza-aprendizaje.
Es indispensable la práctica cotidiana de los temas tratados en este material de apoyo didáctico, a fin de que
adquiera un mayor dominio de Excel 2003.
AUTOMATIZACIÓN DE HOJAS DE CÁLCULO EN EXCEL PRESENTACION
CENTRO NACIONAL DE CAPACITACION Y CALIDADIMSS-SNTSS 7
““AAuuttoommaattiizzaacciióónn ddee HHoojjaass ddee CCáállccuulloo eenn EExxcceell””
Objetivo General: Al término del curso el participante diseñará y aplicará macros en Excel mediante
ejercicios de aplicación que automaticen sus hojas de cálculo, optimizando tiempos al
obtener resultados que resuelvan problemas específicos en las tareas encomendadas en
su área de trabajo.
Dirigido: Todo trabajador IMSS-SNTSS, de áreas contables, financieras, estadísticas, actuariales,
etc., que requiera del conocimiento y aplicación de macros para automatizar sus hojas de
cálculo, al desempeñar sus tareas diarias de su área laboral.
Requisitos: Haber acreditado los cursos: “Introducción al uso y operación de las
microcomputadoras”, “Administración de recursos con Windows XP”,
“Fundamentos de Programación”, “Formato y Operaciones en Excel” y “Gestión de
Datos en Excel”.
AUTOMATIZACIÓN DE HOJAS DE CÁLCULO EN EXCEL MÓDULO I: FUNCIONES DE USUARIO
CENTRO NACIONAL DE CAPACITACION Y CALIDADIMSS-SNTSS 9
MMóódduulloo II
FFuunncciioonneess
ddee
UUssuuaarriioo
Objetivo Específico:
Al finalizar el módulo el participante:
 Conocerá y aplicará el procedimiento para crear Funciones de Usuario.
 Creará funciones de Usuario que necesite en su hoja de cálculo para resolver
problemas específicos.
MÓDULO I: FUNCIONES DE USUARIO AUTOMATIZACIÓN DE HOJAS DE CÁLCULO EN EXCEL
10 CENTRO NACIONAL DE CAPACITACION Y CALIDAD IMSS-SNTSS
AUTOMATIZACIÓN DE HOJAS DE CÁLCULO EN EXCEL MÓDULO I: FUNCIONES DE USUARIO
CENTRO NACIONAL DE CAPACITACION Y CALIDADIMSS-SNTSS 11
INTRODUCCIÓN
Una función de usuario sirve para crear fórmulas
complejas dentro de Excel y colocarlas dentro del
asistente de funciones para su uso posterior.
En este módulo usted aprenderá a crear sus propias
funciones de usuario. También aprenderá a llamar a
funciones dentro de una función, usando el código de
Visual Basic.
Este contiene además una lista de ejemplos de
funciones de usuario, que a su vez serán utilizadas
posteriormente como cualquier función 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 mínimos de programación en cualquier
compilador o interprete.
1.1 CREACIÓN DE FUNCIONES
Para crear una función de usuario necesita insertar una
hoja de Módulo de Visual Basic en su libro de trabajo.
Para hacerlo proceda como se le indica a continuación:
Insertar Módulo de Visual Basic:
 Clic en el menú Herramientas > Macro > Editor
de Visual Basic
 Clic en el menú Insertar > Módulo
 Teclear código de la función
 Volver a la hoja de calculo
Nota: Todas las funciones se generan con código de
Excel Visual Basic
1.2 SINTAXIS DE UNA FUNCIÓN.
La creación de cualquier función 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 función
End Function
1.3 COMO EJECUTAR UNA FUNCION
De forma predeterminada, una función definida por el
usuario se limita en ámbito al libro en el que reside la
función. Es decir, sólo hojas del mismo libro pueden
llamar a una función definida por el usuario.
Después de escribir las líneas que componen el código
de la función deberá ejecutarla para comprobar su
funcionamiento. Para hacerlo siga este procedimiento:
 Colóquese en la Hoja donde desea utilizar la función
 Clic en el icono Pegar función
 Categoría de la función: Definidas por el usuario
 Nombre de la función: Seleccione el nombre de
la función
 Aceptar
 Colocar los parámetros 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 función
 Marcar código de la función
 Eliminarlo
1.5 PROGRAMACION ESTRUCTURADA.
La programación estructurada en sus inicios fue desa
rrollada por Edgar W. Dijkstra y se basa en el teorema de
la estructura desarrollado en 1966 por Böhm y Jacopini.
Éste teorema establece que un programa propio puede
ser escrito utilizando sólo las siguientes estructuras
lógicas 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 Programación Estructurada permite codificar un
programa en común acuerdo con las reglas siguientes:
 El programa parte de un diseño modular.
 Los módulos son diseñados de forma descendente.
 Cada módulo integra en su código las tres
estructuras de control básicas. Secuenciales,
Selectivas y Repetitivas.
MODULO I: FUNCIONES DE USUARIO AUTOMATIZACIÓN DE HOJAS DE CÁLCULO EN EXCEL
12 CENTRO NACIONAL DE CAPACITACION Y CALIDAD IMSS-SNTSS
La ventaja de utilizar éste tipo de programación radica en
que las instrucciones son fáciles de leer, comprender y
codificar permitiendo aprovechar al máximo 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 ejecución.
Ejemplo 1
„ FUNCIÓN PARA CALCULAR UNA RAÍZ CÚBICA
' FECHA : ENERO 2008
' Función que calcula la raiz cúbica de cualquier número
Function RAIZ3(NUMERO)
‟ RAIZ3 es el nombre de la función y NUMERO es el parámetro
RAIZ3 = NUMERO ^ (1 / 3)
„ Esta línea es el cuerpo de la función
End Function
Nota: Para colocar comentarios en una función,
coloque un apóstrofe al principio de la línea y después
coloque el comentario, en el ejemplo anterior las 3
primeras líneas son comentarios, los comentarios no
afectan al código de la función.
Ejemplo 2.
„ FUNCIÓN PARA CALCULAR CUALQUIER RAÍZ DE
CUALQUIER NÚMERO.
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 condición o
expresión y tienen la característica de contar con una o
más salidas.
La sentencia “IF”
Una de las herramientas más útiles en el proceso de
información es la expresión condicional, que forma parte
de una sentencia de programa, la sentencia IF que
realiza preguntas que requieren respuestas lógicas o
booleanas (del tipo True o False, Yes o No)… sobre
una propiedad o variable en el código del programa.
If…Then
La sentencia IF permite evaluar una condición en el
programa y llevar a cabo una serie de instrucciones,
según sea el resultado de dicha condición. Cuando sólo
se requiere de la ejecución de acciones al cumplirse la
condición especificada (alternativa simple), la sentencia
IF tiene la siguiente sintaxis.
If condición Then
Instrucción 1
Instrucción 2
Instrucción n
End If
Ejemplo:
If…Then …Else
Cuando se espera que al no cumplirse la condición,
tenga lugar una serie de instrucciones opuestas o
diferentes a las que ocurrirían en caso de cumplirse ésta
(alternativa doble) entonces la sintaxis de la sentencia
If tendrá una una estructura como la siguiente:
If condición Then
Instrucción 1
Instrucción 2
Instrucción n
Else
Instrucción 1
Instrucción 2
Instrucción n
End If
Ejemplo:
'FUNCIÓN 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
If…Then…ElseIf
En la consideración anterior de la sentencia If o se cumple
una condición 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
más condiciones similares en cuyo caso la sintaxis de
la sentencia If toma la siguiente forma:
AUTOMATIZACIÓN DE HOJAS DE CÁLCULO EN EXCEL MÓDULO I: FUNCIONES DE USUARIO
CENTRO NACIONAL DE CAPACITACION Y CALIDADIMSS-SNTSS 13
IF condición Then
Instrucción 1
Instrucción 2
Instrucción n
ElseIf condición Then
Instrucción 1
Instrucción 2
Instrucción n
ElseIf condición Then
Instrucción 1
Instrucción 2
Instrucción n
Else condición Then
Instrucción 1
Instrucción 2
Instrucción n
End If
Ejemplo 1:
' FUNCIÓN 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:
' FUNCIÓN 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:
„ FUNCIÓN 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 función de éste
valor seleccionar y ejecutar una serie de instrucciones
específicas (alternativa múltiple). La sintaxis para la
instrucción Select Case es la siguiente:
Select Case Parámetro
Case 1 el primer valor posible en la variable.
Instrucción 1
Instrucción 2
Instrucción n
Case 2 el segundo valor posible en la variable.
Instrucción 1
Instrucción 2
Instrucción n
Case 3 el tercer valor posible en la variable.
Instrucción 1
Instrucción 2
Instrucción n
Case Else algún otro valor en la variable distinto
de los anteriores
Instrucción 1
Instrucción 2
Instrucción n
End Select
Ejemplo:
MODULO I: FUNCIONES DE USUARIO AUTOMATIZACIÓN DE HOJAS DE CÁLCULO EN EXCEL
14 CENTRO NACIONAL DE CAPACITACION Y CALIDAD IMSS-SNTSS
„ FUNCIÓN 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:
„ FUNCIÓN PARA LOS DÍAS 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 información las estructuras
repetitivas o bucles nos permiten optimizar código y
agilizar los programas, ya que una o varias instrucciones
pueden repetirse un número determinado o
indeterminado de veces.
Bucle: En programación, un bucle o ciclo es un tipo de
estructura de control que permite repetir una o más
sentencias múltiples veces, lo que ahorra tiempo, deja el
código más claro y facilita su modificación en el futuro.
Los bucles con Do se utilizan cuando no se conoce
con exactitud el número 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 mayoría de los lenguajes de programación
estructurados cuyo propósito es repetir un bloque de
código mientras una condición se mantenga verdadera.
La sintaxis para ésta estructura es la siguiente:
Do While condición
Instrucción 1
Instrucción 2
Instrucción n
Loop delimita el final del bloque de instrucciones a repetir
en el bucle.
Ejemplo:
AUTOMATIZACIÓN DE HOJAS DE CÁLCULO EN EXCEL MÓDULO II: MACROS
CENTRO NACIONAL DE CAPACITACION Y CALIDADIMSS-SNTSS 15
MMóódduulloo IIII
MMaaccrrooss
Objetivo Especifico:
Al finalizar el módulo el participante:
 identificará y aplicará el procedimiento para grabar una macro.
 Utilizando macros, automatizar las tareas que son repetitivas en sus hojas de
cálculo.
 Conocerá y modificará el código Visual Basic para modificar sus macros.
 Creará un sistema de Macros para Excel
MÓDULO II: MACROS AUTOMATIZACIÓN DE HOJAS DE CÁLCULO EN EXCEL
16 CENTRO NACIONAL DE CAPACITACION Y CALIDAD IMSS-SNTSS
AUTOMATIZACIÓN DE HOJAS DE CÁLCULO EN EXCEL MÓDULO II: MACROS
CENTRO NACIONAL DE CAPACITACION Y CALIDADIMSS-SNTSS 17
INTRODUCCIÓN
Si es como la mayoría 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 acción a realizar.
En este módulo se verá la forma que tienen las macros
y cómo se pueden utilizar para incrementar la
productividad. También 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 sólo necesita saber
qué órdenes de Excel desea que la macro ejecute para
usted. Puede registrar las órdenes en secuencia, y
éstas serán traducidas automáticamente al lenguaje
utilizado por Excel. Registrar una macro es similar a
registrar una música en una cinta magnetofónica: no
necesita comprender cómo se registra en la cinta; sólo
tiene que saber qué música desea registrar.
2.1 MACROS
Si encuentra que ejecuta con alguna frecuencia
determinadas tareas, como por ejemplo la aplicación de
la negrita, la letra cursiva y un tipo de tamaño mayor
para los títulos de la hoja o que introduce las mismas
categorías 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 automáticamente al lenguaje Visual Basic y
almacenadas en una hoja de módulo 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. Después de escoger Grabar nueva macro, cada
celda que seleccione, todo lo que introduzca, y cada
orden que escoja será registrada. También necesita
pensar en un nombre y una descripción 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 grabación, ó
Menú Herramientas, Macro, Detener grabación)
Ejemplos
Ejemplo 1
Crear una macro para un Título
 Colocarse en la celda para el título
MÓDULO II: MACROS AUTOMATIZACIÓN DE HOJAS DE CÁLCULO 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 grabación
 Clic en el icono Referencia Relativa (Si ya esta
activado ya no lo haga)
 Teclear : Centro Nacional
 Enter
 Doble clic en la separación de las columnas para
ajuste automático
 Detener la macro (Menú Herramientas > Macro >
Detener grabación ó Clic en el icono Detener
grabación)
Ejemplo 2
 Colocarse en la celda para el título
 Clic en Menú Herramientas > Macro > Grabar
nueva macro ...
 Nombre de la macro: Teclee TITULO2
 Aceptar
Comienza la grabación:
 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
Tamaño: 24
Color: Azul
 Bordes
Línea
Estilo: Seleccione un Estilo
Color: Amarillo
Contorno
 Tramas: Color: Rojo
 Aceptar
 Ajuste automático de columnas (Doble clic en la
separación de la columna)
 Detener la macro (Menú Herramientas > Macro >
Detener grabación ó Clic en el icono Detener
grabación)
Ejecutar la macro:
 Colocarse en una celda vacía
 Clic en Menú Herramientas > Macro > Macros ...
 Seleccionar el nombre de la macro : TITULO
 Ejecutar
2.3 EL CÓDIGO DE LA MACRO
Para ver el código 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 código:
Sub TITULO()
ActiveCell.FormulaR1C1 = "CENTRO NACIONAL"
ActiveCell.Columns("A:A").EntireColumn.EntireColumn.AutoFit
End Sub
Nota: Lo que usted ve es código Excel Visual Basic.
Cualquier cambio en su macro lo realizará usando
Instrucciones de código Visual Basic
Salir del código
 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 EJECUCIÓN DE MACROS
Puede ejecutar cualquier
macro de su libro desde el
cuadro de diálogo de
Macro, pero éste no
siempre es el método más
rápido. Si tiene una macro,
la cual se utilizará con
cierta frecuencia en una
hoja particular, puede
añadir un botón a esa hoja
AUTOMATIZACIÓN DE HOJAS DE CÁLCULO EN EXCEL MÓDULO II: MACROS
CENTRO NACIONAL DE CAPACITACION Y CALIDADIMSS-SNTSS 19
y asignar la macro al botón. De esta forma, puede
pulsar el botón para ejecutar la macro, en lugar de
utilizar una orden de menú. Incluso puede acceder a la
macro a través del menú que debería necesitar.
Colocar un botón a una macro
 Deben de existir macros
 Mostrar la familia de iconos de la barra de
herramientas Formularios
 Seleccione el icono Botón
 Trace un botón en su
hoja de calculo del
tamaño de una celda
 Al soltar el botón del
Mouse aparece su lista
de macros
 Seleccione la macro que
quiere para su botón
 Aceptar
 Clic dentro del botón
 Elimine el texto de Botón 1 que aparece y coloque
su nuevo texto
 Clic fuera del botón
Ejecutar su macro con el botón
 Colóquese en una celda vacía
 De un clic sobre su botón
Modificar su botón
 Clic derecho con su Mouse sobre el botón
 Realice los cambios necesarios.
2.5 ASIGNAR MACRO A UN OBJETO GRAFICO
 Tener el gráfico en la hoja (Clic en el menú Insertar >
Imagen > Imágenes prediseñadas,
Seleccione una Imagen e Insértela, modifique el
tamaño si la imagen es muy grande)
 Clic derecho sobre el gráfico > 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 código de
Excel Visual Basic
2.7 INSTRUCCIONES VISUAL BASIC
PARA MODIFICACION DE MACROS
Instrucción InputBox:
Muestra un mensaje en un cuadro de diálogo, espera
que el usuario escriba un texto o haga clic en un botón y
devuelve un tipo String con el contenido del cuadro de
texto.
Sintaxis: Variable=Inputbox(“Mensaje”)
Código de la macro TITULO:
Sub TITULO( )
ActiveCell.FormulaR1C1 = "CENTRO NACIONAL"
ActiveCell.Columns("A:A").EntireColumn.EntireColumn.AutoFit
End Sub
Código de la Macro TITULO modificado con la instrucción
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:
MÓDULO II: MACROS AUTOMATIZACIÓN DE HOJAS DE CÁLCULO 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 código para que la
computadora nos pida a través de la instrucción Input
Box la Matricula, el Nombre, el Puesto y el Sueldo, y
los coloque al final de la base de datos. El código ya
modificado con el uso de la instrucción Input Box debe
quedar de la forma siguiente.
Instrucción MsgBox :
La instrucción MsgBox muestra un mensaje en un
cuadro de diálogo, espera a que el usuario haga clic en
un botón y devuelve un tipo Integer correspondiente al
botón elegido por el usuario.
Sintaxis:
Variable = Msgbox(“Mensaje”,VBYesNo)
Instrucción DO:
La instrucción Do repite un bloque de instrucciones
cuando una condición es Verdadera o hasta que una
condición se convierta en Verdadero o Falso
dependiendo de la condición.
Sintaxis:
El código del ejercicio realizado modificado con el uso
de la variable MSGBOX debe quedar de la forma
siguiente:
SECUENCIA DE GRABACIÓN 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 Grabación
Sub CAPTURA()
Application.Goto Reference:="R1C1"
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Range("A1").Select
MATRICULA = InputBox("Teclea la Matrícula 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
AUTOMATIZACIÓN DE HOJAS DE CÁLCULO EN EXCEL MÓDULO 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 código 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 condición de la
Instrucción Do While, MATRICULA, para almacenar la
matrícula, 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 Matrícula 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 código que generó
Edite la macro a la cual desea agregar mas
instrucciones
Ubique el cursor en la posición donde desea el
código de las nuevas instrucciones
Pegue el código que Copió
Vuelva a la hoja de Excel y guarde su documento
MÁS EJEMPLOS Y EJERCICIOS:
EJERCICIO 2:
En una hoja de Excel crear una macro para capturar
MATRÍCULA, NOMBRE, CATEGORIA, SUELDO, NIVEL
ACADEMICO Y EDO. CIVIL del trabajador en el rango de
B2:B7, después copiar estos datos y colocarlos al final de
una lista.
EJERCICIO 3:
Crear una macro para generar una factura. La macro
genera el número 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
Dirección. 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.
MÓDULO II: MACROS AUTOMATIZACIÓN DE HOJAS DE CÁLCULO 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 están
bien los datos, si están mal que los vuelva a pedir, si
están 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 número 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
dirección. luego nos pide comprobar si los datos del
cliente son correctos, si están mal que nos vuelva a
pedir los datos, si están 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)
AUTOMATIZACIÓN DE HOJAS DE CÁLCULO EN EXCEL MÓDULO III: APLICACIÓN DE MACROS
CENTRO NACIONAL DE CAPACITACION Y CALIDADIMSS-SNTSS 23
MMóódduulloo IIIIII
AApplliiccaacciióónn
ddee MMaaccrrooss
Objetivos Especificos:
Al finalizar el módulo el participante:
 Creará una aplicación usando macros
 Aplicará los conocimientos adquiridos en los cursos anteriores de Excel.
MÓDULO III: APLICACIÓN DE MACROS AUTOMATIZACIÓN DE HOJAS DE CÁLCULO EN EXCEL
24 CENTRO NACIONAL DE CAPACITACION Y CALIDAD IMSS-SNTSS
AUTOMATIZACIÓN DE HOJAS DE CÁLCULO EN EXCEL MÓDULO III: APLICACIÓN DE MACROS
CENTRO NACIONAL DE CAPACITACION Y CALIDADIMSS-SNTSS 25
INTRODUCCIÓN
La aplicación que se desarrollara en este módulo 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 cálculo, 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 fácilmente con las instrucciones vistas en los cursos Básico e
Intermedio. Se recomienda tener a la mano los manuales respectivos, ya que se aplicarán 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,
fórmulas, búsquedas etc., ponga a prueba sus
conocimientos.
Procedimiento para crear el menú principal:
Crear un Nombre de Rango en la posición A1 de cada
hoja (Por ejemplo para ventas se llamará
INICIO_VENTAS, para almacén 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
posición:
Herramientas > Macro > Grabar nueva macro…
Teclear Nombre de la macro: (A_VENTAS).
Procedimiento de Grabación:
 F5 - INICIO_VENTAS
 Enter
 Detener la macro
* Hacer lo mismo para cada hoja del libro
Código Visual Basic para ésta macro:
Sub A_VENTAS()
Application.Goto Reference:="INICIO_VENTAS"
End Sub
Crear un botón para ejecutar la Macro:
Mostrar la Barra de Herramientas “Formulario”
Seleccionar icono Botón
En la hoja de calculo trazar
un botón
Asignar la macro para este
botón (A_VENTAS).
Aceptar
Clic dentro del botón
Eliminar el nombre que tiene el botón
Teclear nuevo titulo del botón (VENTAS)
Clic fuera del botón.
* Hacer lo mismo para cada hoja del libro
MÓDULO III: APLICACIÓN DE MACROS AUTOMATIZACIÓN DE HOJAS DE CÁLCULO 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 almacén; una macro para
actualizar las existencias de los productos en el
almacén 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
almacén. 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 Grabación:
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. Edición > Pegado especial
 Valores Transponer - 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 búsqueda 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 Grabación:
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. Edición > Buscar >Teclear CLAVE
Opciones: Dentro de: Hoja Buscar: Por columnas
Buscar dentro de: Valores
 Coincidir con el contenido de toda la celda
Buscar Siguiente – Cerrar
9.    -
10. Edición > Pegado especial
 Valores -  Sumar Aceptar
11. Esc
12. F5 – A1 – Enter
PROCEDIMIENTOS PARA BUSCAR
PRODUCTOS EN ALMACEN
NOTA: Este procedimiento permite hacer una búsqueda
de un producto utilizando la clave o el nombre del mismo.
La clave y nombre se deberá pedir a través de un Input Box.
Colocar antes en G17, G18 Y G19 fórmulas para la
búsqueda 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 Grabación:
1. F5 - A1 - Enter
2. Edición > Buscar > Teclear la clave
Opciones:
Dentro de: Hoja Buscar: Por columnas
Buscar dentro de: Valores
 Coincidir con el contenido de toda la celda
Buscar siguiente, Cerrar
3. CTRL + 
4. CTRL + C
5. F5 - G16 - Enter
6. Edición > Pegado Especial
 Valores Aceptar
7. Esc
8. F5 - A1 – Enter
AUTOMATIZACIÓN DE HOJAS DE CÁLCULO EN EXCEL MÓDULO III: APLICACIÓN 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 botón Ventas, la computadora nos
pedirá la clave del producto a vender, la computadora,
deberá de decirnos que producto es, cuantos tenemos
en el almacén y el precio, por ultimo nos pedirá la
cantidad a vender y al dar Enter la computadora
realizará los cálculos 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 almacén. Si no es así deberá
crearlo con el método siguiente.
Procedimiento para crear el Nombre:
Seleccionar (marcar) el rango de datos
Insertar > Nombre > Definir
Teclear nombre para el rango (“PRODUCTOS”)
Agregar, Aceptar
Crear fórmulas de búsqueda en B4, B5 y B7 para
saber el nombre del producto, precio y existencia:
Procedimiento para hacer la búsqueda:
Colocarse en la celda donde se va a colocar el
Nombre del producto.
Crear las formulas de búsqueda:
=BUSCARV(B3,PRODUCTOS,2,FALSO) Para Producto
=BUSCARV(B3,PRODUCTOS,3,FALSO) Para Precio
=BUSCARV(B3,PRODUCTOS,4,FALSO) Para Existencia
Procedimiento de Grabación:
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. Edición > Buscar
Teclear la CLAVE a vender
Opciones:
Dentro de: Hoja Buscar: Por Columnas
Buscar dentro de: Valores
 Coincidir con el contenido de la celda.
Buscar Siguiente, Cerrar
9.    Edición - Pegado Especial
 Valores  Restar
Aceptar
10. Esc
11. F5 INICIO_VENTAS - Enter
Modificaciones al código:
Modificar el código para efectuar la venta si el cliente lo
autoriza. O en su caso modificar la cantidad o cancelar
la venta.
MÓDULO III: APLICACIÓN DE MACROS AUTOMATIZACIÓN DE HOJAS DE CÁLCULO 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 botón de la macro, la macro deberá de generar el
número 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 dirección,
solicitar la clave del producto a vender, después de dar
la clave, la computadora deberá decirnos que producto
es y el precio, después nos pedirá la cantidad del
producto a vender, realizará las operaciones
necesarias para calcular el Subtotal, IVA y Total, y
restará en la hoja almacén 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 Almacén
A2:D503), ARTS_VENDIDOS (A9:G19); y CLIENTE (B4:B5)
son nombres que tiene que definir anterioridad.
Además deberá poner un 1 en la celda F1 para
inicializar el contador del consecutivo.
Procedimiento de Grabación:
1. F5 – INICIO_FACTURAS - Enter
2. F5 - F1 - Enter
3. CTRL+C
4.  - Edición > Pegado especial
 Valores -  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. Edición > Copiar (ó CTRL +C)
20. F5 – INICIO_ALMACEN - Enter
21. Edición > Buscar > Teclear la Clave
Opciones: Dentro de: Hoja;
Buscar: Por Columnas
Buscar dentro de: Valores
 Coincidir con el contenido de toda la celda.
Buscar siguiente > Cerrar
22.    - Edición > Pegado Especial
 Valores  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. Edición > Copiar (ó CTRL + C)
32. F5 – I2 - Enter
33. Edición > Pegado Especial
 Valores  Sumar Aceptar
34. Esc
35. F5 - A1 - Enter
36. Detener Grabación
AUTOMATIZACIÓN DE HOJAS DE CÁLCULO EN EXCEL MÓDULO III: APLICACIÓN 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 botón
DERECHOS, le muestre esta hoja y al hacer clic en le botón MENÚ de esta hoja lo devuelva al menú principal.
AUTOMATIZACIÓN DE HOJAS DE CÁLCULO EN EXCEL MÓDULO IV: BARRAS Y MENUS PERSONALIZADOS
CENTRO NACIONAL DE CAPACITACION Y CALIDADIMSS-SNTSS 31
MMóódduulloo IIVV
BBaarrrraass yy MMeennúúss
PPeerrssoonnaalliizzaaddooss
Objetivos Específicos:
Al finalizar el módulo el participante:
 Conocerá y aplicará el procedimiento para crear y modificar Barras de
Herramientas Personalizadas.
 Conocerá y aplicará el procedimiento para crear y modificar Menús
Personalizados.
 Creará Barras y Menús personalizados para alojar sus macros y logrando así que sus
aplicaciones sean más personalizadas.
MÓDULO IV: BARRAS Y MENÚS PERSONALIZADOS AUTOMATIZACIÓN DE HOJAS DE CÁLCULO EN EXCEL
32 CENTRO NACIONAL DE CAPACITACION Y CALIDAD IMSS-SNTSS
AUTOMATIZACIÓN DE HOJAS DE CÁLCULO EN EXCEL MÓDULO IV: BARRAS Y MENUS PERSONALIZADOS
CENTRO NACIONAL DE CAPACITACION Y CALIDADIMSS-SNTSS 33
INTRODUCCIÓN
No es necesario utilizar Visual Basic para crear Barras
de Herramientas o Menús Personalizados en EXCEL.
Crear y modificar Barras de Herramientas y Menús 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 colección de macros, quizá desee
diseñar una Barra de Herramientas o un Menú
personalizados sólo para ejecutar sus macros.
Una forma profesional de trabajar Excel
Para dar una mejor presentación a sus libros de
trabajo, este Capítulo es el adecuado, ya que en él
usted aprenderá a crear menús personalizados e
incluso crear sus propios menús para una aplicación
en especial, y así poder evitar que el usuario
seleccione otras opciones ajenas a la aplicación.
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 diálogo 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 añadir a la barra creada botones que ejecuten
macros, deberán arrastrarse los nombres de las
macros desde la pestaña Comandos del cuadro de
diálogo 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 sección Categorías busque y elija Macros
 En el cuadro Comandos: Clic sostenido en
Personalizar Botón y arrástrelo 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 Botón
 Clic en Modificar Selección del cuadro
Personalizar
 Clic en Imagen y texto
B. Cambiar texto de botones
 Seleccionar Botón
 Clic en Modificar Selección del cuadro
Personalizar
 Nombre: Teclear el nombre deseado para el Botón
 Enter o clic fuera del menú.
C. Cambiar imagen del botón
 Seleccionar Botón
 Clic en Modificar
Selección del cuadro
Personalizar
 Cambiar imagen del
Botón
Seleccionar la imagen
deseada.
MÓDULO IV: BARRAS Y MENÚS PERSONALIZADOS AUTOMATIZACIÓN DE HOJAS DE CÁLCULO EN EXCEL
34 CENTRO NACIONAL DE CAPACITACION Y CALIDAD IMSS-SNTSS
D. Asignar una macro a un botón
 Seleccionar Botón
 Clic en Modificar Selección del cuadro Personalizar
 Asignar macro…
En el cuadro de Diálogo que aparece Seleccionar
la Macro deseada
 Aceptar
Nota: Después de cerrar el cuadro Personalizar podrá
ejecutar cualquier macro asignada a la barra dando un
clic en el botón respectivo.
4.3 CREAR UN MENU PERSONALIZADO
 Clic en el menú Ver > Barras de herramientas >
Personalizar ...
 Seleccione la ficha Comandos
 En la sección Categorías busque y elija Nuevo menú.
 En la sección Comandos: Clic sostenido en Nuevo
menú, y arrástrelo a la derecha del menú Ventana.
Dar nombre al Nuevo Menú
 Clic en el Botón Modificar selección
 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 sección Categorías busque y elija Macros.
 Comandos: Elija Personalizar elemento de menú.
 Clic sostenido en Personalizar elemento de menú
y arrástrelo hacia su menú que acaba de crear y
suéltelo por debajo de él.
A
B
C
D
AUTOMATIZACIÓN DE HOJAS DE CÁLCULO EN EXCEL MÓDULO IV: BARRAS Y MENUS PERSONALIZADOS
CENTRO NACIONAL DE CAPACITACION Y CALIDADIMSS-SNTSS 35
Dar nombre al nuevo elemento de menú
 Clic en el Botón: Modificar selección
 Nombre : Teclee el nombre para el elemento de menú
4.5 ASIGNAR MACROS A
MENÚ PERSONALIZADO
 Clic en el Botón: Modificar selección
 Asignar macro..: Seleccione el nombre de la
macro
 Aceptar, Cerrar
4.6 SUBMENÚS
 Clic en el menú Ver > Barras de herramientas >
Personalizar…
 Seleccione la ficha Comandos
 En la sección Categorías elija Nuevo menú
 En la sección Comandos: Clic sostenido sobre
Nuevo menú, arrástrelo hacia el menú que acaba
de crear y colóquelo debajo de él.
 Clic en el Botón Modificar selección
 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 módulo.
Eliminar menús
 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 arrástrelo hacia la hoja de calculo
 Cerrar
Subrayar letras en menús
 Menú Ver > Barras de herramientas >
Personalizar ...
 Elija la pestaña Comandos
 Seleccione el menú al cual desea subrayarle una
letra
 Clic en el Botón Modificar selección
 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 menús
 Menú Ver > Barras de herramientas >
Personalizar ...
 Elija la pestaña Comandos
 En la Barra de Menús seleccione el menú o
submenú que desea modificar (de los que acaba
de crear, luego seleccione Modificar selección)
 Realice los cambios, agregue o elimine elementos
 Cerrar
Ejercicio
Elabore sus propias macros y genere una Barra y un
Menú Personalizados.
MÓDULO V: CUADROS Y HOJAS DE DIÁLOGO AUTOMATIZACIÓN DE HOJAS DE CÁLCULO EN EXCEL
36 CENTRO NACIONAL DE CAPACITACION Y CALIDAD IMSS-SNTSS
MMóódduulloo VV
CCuuaaddrrooss yy
HHoojjaass ddee DDiiáállooggoo
Objetivos Especificos:
Al finalizar el módulo el participante:
 Conocerá y diseñará Cuadros y Hojas de Diálogo.
 Creará aplicaciones con macros controladas desde una Hoja de Diálogo.
AUTOMATIZACIÓN DE HOJAS DE CÁLCULO EN EXCEL MÓDULO V: CUADROS Y HOJAS DE DIÁLOGO
CENTRO NACIONAL DE CAPACITACION Y CALIDADIMSS-SNTSS 37
MÓDULO V: CUADROS Y HOJAS DE DIÁLOGO AUTOMATIZACIÓN DE HOJAS DE CÁLCULO 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
Diálogo y Hojas de Diálogo que nos ofrece Excel.
Después de haber creado y elaborado una serie de
Macros y Cuadros de Diálogo, usted necesitara
manejar todas sus macros desde una Hoja especial de
Diálogo. Esta opción nos permite ejecutar Macros que
utilizan una hoja de Diálogo para una mejor
presentación de sus aplicaciones en pantalla.
5.1 CUADROS DE DIÁLOGO
Para crear un Cuadro de Diálogo 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 diálogo nos permite
ejecutar nuestra Hoja de Diálogo, Tendrá que hacer
una macro para poder ejecutar la Hoja de Diálogo en
cualquier parte del libro.
5.2 APLICACIÓN Y PROGRAMACIÓN DE
CONTROLES EN UN CUADRO DE
DIÁLOGO:
Agregar elementos a un “Cuadro
Combinado”
 En su libro de trabajo nombre una hoja como
HOJA DE DATOS (Todos los objetos estarán 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 delegación que seleccione en el cuadro, este
valor lo tendrá después que buscar usando
BuscarV para saber a que delegación 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á después que buscar usando BuscarV
para saber a que puesto pertenece)
 Aceptar
Agregar valores a un “Control de número”
 Cree un control de número en las celdas F10:F12
 Clic derecho sobre el control de número
 Formato de control ...
 Valor actual: El valor que tendrá por default el
objeto (200)
 Valor mínimo: El valor mínimo para este objeto
(50)
 Valor máximo: El valor máximo 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
AUTOMATIZACIÓN DE HOJAS DE CÁLCULO EN EXCEL MÓDULO V: CUADROS Y HOJAS DE DIÁLOGO
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 mínimo: El valor mínimo para este objeto (10)
 Valor máximo: El valor máximo 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 botón del centro (5)
 Vincular con la celda: La celda donde tendremos
el valor del objeto (Teclee G2)
 Aceptar
5.3 APLICACIÓN DE MACROS
EN UNA HOJA DE DIÁLOGO
INSERTAR HOJA DE DIALGO
 Clic derecho con el Mouse sobre el nombre de una
Hoja en su libro de trabajo
 Clic en Insertar...
 Seleccione Diálogo 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 Diálogo de clic sobre el icono Ejecutar
cuadro de diálogo 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 “Delegación”
En A5 Teclee “Puesto”
En A6 Teclee “Nivel”
En A7 Teclee “Sueldo”
 En la hoja de Diálogo vincule todos los objetos con la hoja Captura de datos y la Hoja de datos. Use la
función de Buscarv para conocer en la hoja Captura de Datos la Delegación y el Puesto que seleccione en su
Hoja de Diálogo.
 Genere una macro para ejecutar su Hoja de Diálogo. Nombre de la Macro: Dialogo
Colocarse en la hoja que contiene el diseño del diálogo:
Nota: Esta macro es la que ejecutará la Hoja de Diálogo (no olvide el método abreviado que asignó)
 Colóquese en la hoja Captura de datos y ejecute su macro
SECUENCIA DE GRABACION: CÓDIGO VISUAL;
1. Clic sobre el icono ejecutar Cuadro de Diálogo,
2. Aceptar
3. Finalizar Grabación
Sub DIALOGO()
' DIALOGO Macro
' Macro grabada el 09/07/2007 por CNCYC
'
DialogSheets("Diálogo1").Show
End Sub
MÓDULO V: CUADROS Y HOJAS DE DIÁLOGO AUTOMATIZACIÓN DE HOJAS DE CÁLCULO EN EXCEL
40 CENTRO NACIONAL DE CAPACITACION Y CALIDAD IMSS-SNTSS
Ocultar Hoja de Diseño de Diálogo
Al terminar de diseñar el diálogo de Excel, y éste se
encuentra funcionando a la perfección, deberá crear la
macro que accede a dicho diálogo. Después de esto, la
hoja en que se diseñó el diálogo de Excel no tiene
mayor interés para el usuario de éste cuadro de
diálogo por lo que deberá ocultarse para no permitir
que otra persona pueda alterar el diseño de nuestro
diálogo. Para ocultarla siga éste procedimiento:
 Seleccione la pestaña que contiene el nombre de la
hoja de diálogo que usted diseñó.
 En la barra de menús, en el menú Formato, haga
clic en el submenú Columna en la opción Ocultar.
 Si desea volver a mostrar dicha hoja, haga clic en
la opción Mostrar.
A continuación aplicará el Dialogo diseñado 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. Edición > Pegado Especial
 Valores  Transponer Aceptar
10. ESC
11. F5 - A1 - Enter
12. Finalizar Grabación
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
AUTOMATIZACIÓN DE HOJAS DE CÁLCULO EN EXCEL ANEXOS
CENTRO NACIONAL DE CAPACITACION Y CALIDADIMSS-SNTSS 41
AAnneexxooss
En éste apartado se describen los procedimientos de grabación, códigos y
modificaciones de código para cada uno de los ejercicios realizados durante el
curso como una guía de apoyo didáctico para el participante. Le invitamos a
consultarlos si le es necesario al realizar sus ejercicios.
ANEXOS AUTOMATIZACIÓN DE HOJAS DE CÁLCULO EN EXCEL
42 CENTRO NACIONAL DE CAPACITACION Y CALIDAD IMSS-SNTSS
AUTOMATIZACIÓN DE HOJAS DE CÁLCULO 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 grabación:
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 Grabación
Código 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 código ya modificado con la instrucción 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 MATRÍCULA 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 AUTOMATIZACIÓN DE HOJAS DE CÁLCULO EN EXCEL
44 CENTRO NACIONAL DE CAPACITACION Y CALIDAD IMSS-SNTSS
EJERCICIO 2:
Crear una macro para capturar MATRÍCULA, NOMBRE, CATEGORIA, SUELDO, NIVEL ACADEMICO Y EDO. CIVIL del
trabajador en el rango de B2:B7, después 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 grabación:
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 ACADÉMICO - 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. Edición > Copiar (CTRL+C)
10. F5 - A9 - Enter
11. FIN  
12. Edición > Pegado Especial
 Valores  Transponer Aceptar.
13. ESC
14. F5 - A1 - Enter
AUTOMATIZACIÓN DE HOJAS DE CÁLCULO EN EXCEL ANEXOS
CENTRO NACIONAL DE CAPACITACION Y CALIDADIMSS-SNTSS 45
Código 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
Código Visual Basic modificado:
El código ya modificado con la instrucción 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("TECLEANIVELACADEMICO")
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 AUTOMATIZACIÓN DE HOJAS DE CÁLCULO EN EXCEL
46 CENTRO NACIONAL DE CAPACITACION Y CALIDAD IMSS-SNTSS
EJERCICIO 3:
Crear una macro para generar una factura. La macro genera el número 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 Dirección.
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 función =HOY() y en D2 la
función =AHORA() con formato de hora.
 Para generar el consecutivo de la factura colocar un número 1 en la celda F1.
 Para el cálculo del total de la factura colocar en F16 la formula: =SUMA(F8:F15)
SECUENCIA DE GRABACIÓN:
1. F5 - A1 - Enter
2. F5 - CLIENTE - Enter
3. SUPR
4. F5 - PRODUCTOS - Enter
5. SUPR
6. F5 - F1 - Enter
7. CTRL+C
8.  Edición > Pegado Especial
 Valores  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 ARTÍCULO - 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. Edición > Pegado Especial
 Valores  Sumar Aceptar
25. ESC
26. F5 - A1 – Enter
27. Detener Grabación
AUTOMATIZACIÓN DE HOJAS DE CÁLCULO EN EXCEL ANEXOS
CENTRO NACIONAL DE CAPACITACION Y CALIDADIMSS-SNTSS 47
Código 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
Código Visual Basic modificado:
El código ya modificado con la instrucción 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 AUTOMATIZACIÓN DE HOJAS DE CÁLCULO 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 grabación y código son similares al ejercicio 1 como a continuación 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 GRABACIÓN:
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 Grabación
Código 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
Código Visual Basic modificado:
El código 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 MATRÍCULA 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
AUTOMATIZACIÓN DE HOJAS DE CÁLCULO 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 están bien los datos, si
están mal que los vuelva a pedir, si están 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 grabación y código son similares al ejercicio 2 como a continuación 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 GRABACIÓN:
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 ACADÉMICO - 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. Edición > Copiar (CTRL+C)
10. F5 - A9 - Enter
11. FIN  
12. Edición > Pegado Especial
 Valores  Transponer Aceptar.
13. ESC
14. F5 - A1 - Enter
15. Detener Grabación
Código 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 AUTOMATIZACIÓN DE HOJAS DE CÁLCULO EN EXCEL
50 CENTRO NACIONAL DE CAPACITACION Y CALIDAD IMSS-SNTSS
Código Visual Basic modificado
El código 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
AUTOMATIZACIÓN DE HOJAS DE CÁLCULO EN EXCEL ANEXOS
CENTRO NACIONAL DE CAPACITACION Y CALIDADIMSS-SNTSS 51
EJERCICIO 6:
Crear una macro para llenar esta factura. La macro genera el número 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 dirección.
luego nos pide comprobar si los datos del cliente son correctos, si están mal que nos vuelva a pedir los datos, si
están 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 grabación y código son similares al ejercicio 3 como a continuación 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 función =HOY() y en D2 la función
=AHORA() con formato de hora.
Para generar el consecutivo de la factura colocar un número 1 en la celda F1.
Para el cálculo del total de la factura colocar en F16 la formula: =SUMA(F8:F15)
SECUENCIA DE GRABACIÓN:
1. F5 - A1 - Enter
2. F5 - F1 - Enter
3. CTRL+C
4.  Edición > Pegado Especial
 Valores  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 ARTÍCULO - 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. Edición > Pegado Especial
 Valores Sumar Aceptar
25. ESC
26. F5 - A1 - Enter
27. Detener Grabación
ANEXOS AUTOMATIZACIÓN DE HOJAS DE CÁLCULO EN EXCEL
52 CENTRO NACIONAL DE CAPACITACION Y CALIDAD IMSS-SNTSS
Código 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
Código Visual Basic Modificado
El código 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 MÁS 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
AUTOMATIZACIÓN DE HOJAS DE CÁLCULO 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 deberán definirse antes de grabar cada una de las macros.
Los códigos de las macros asignadas a cada botón 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 AUTOMATIZACIÓN DE HOJAS DE CÁLCULO 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 almacén.
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 código de la macro que agrega nuevos productos al almacén ya modificado queda de la forma siguiente:
Sub NUEVO()
' NUEVO - Macro que permite agregar nuevos productos al almacén.
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
AUTOMATIZACIÓN DE HOJAS DE CÁLCULO 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 búsqueda 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 código ya modificado de la macro que actualiza existencias en almacén 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 AUTOMATIZACIÓN DE HOJAS DE CÁLCULO 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 búsqueda de un producto utilizando la clave o el nombre del mismo.
La clave y nombre se deberá pedir a través de un Input Box. Colocar antes en G17, G18 Y G19 fórmulas para la búsqueda
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 código ya modificado de la macro para búsquedas en almacén queda de la forma siguiente:
Sub BUSQUEDA()
' Macro para realizar BUSQUEDAS en almacén.
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
AUTOMATIZACIÓN DE HOJAS DE CÁLCULO 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 almacén. Si no es así deberá crearlo.
B.) Crear fórmulas de búsqueda 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 búsqueda:
=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 código 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
3automatizacion
3automatizacion
3automatizacion
3automatizacion
3automatizacion

Más contenido relacionado

La actualidad más candente

Informe final practica pre_ii_francisco_flores_v6
Informe final practica pre_ii_francisco_flores_v6Informe final practica pre_ii_francisco_flores_v6
Informe final practica pre_ii_francisco_flores_v6
Francisco Flores Murrieta
 
Informe final practica pre_ii_francisco_flores_v6
Informe final practica pre_ii_francisco_flores_v6Informe final practica pre_ii_francisco_flores_v6
Informe final practica pre_ii_francisco_flores_v6
Francisco Flores Murrieta
 
Soporte y mantenimiento_de_equipo_de_computo
Soporte y mantenimiento_de_equipo_de_computoSoporte y mantenimiento_de_equipo_de_computo
Soporte y mantenimiento_de_equipo_de_computo
Yahaira Guadalupe
 

La actualidad más candente (15)

Informe final practica pre_ii_francisco_flores_v6
Informe final practica pre_ii_francisco_flores_v6Informe final practica pre_ii_francisco_flores_v6
Informe final practica pre_ii_francisco_flores_v6
 
Quimica
QuimicaQuimica
Quimica
 
Propuesta Guía Metodológica para Diseñar el Silabo USP
Propuesta Guía Metodológica para Diseñar el Silabo USPPropuesta Guía Metodológica para Diseñar el Silabo USP
Propuesta Guía Metodológica para Diseñar el Silabo USP
 
Sp014informe de tendencias de la educación virtual
Sp014informe de tendencias de la educación virtualSp014informe de tendencias de la educación virtual
Sp014informe de tendencias de la educación virtual
 
Informe final practica pre_ii_francisco_flores_v6
Informe final practica pre_ii_francisco_flores_v6Informe final practica pre_ii_francisco_flores_v6
Informe final practica pre_ii_francisco_flores_v6
 
Soporte y mantenimiento_de_equipo_de_computo
Soporte y mantenimiento_de_equipo_de_computoSoporte y mantenimiento_de_equipo_de_computo
Soporte y mantenimiento_de_equipo_de_computo
 
Informe final proyecto de TI
Informe final proyecto de TIInforme final proyecto de TI
Informe final proyecto de TI
 
5' s
5' s5' s
5' s
 
Informatica
InformaticaInformatica
Informatica
 
Propuesta para el diseño del sistema logístico en la empresa
Propuesta para el diseño del sistema logístico en la empresa Propuesta para el diseño del sistema logístico en la empresa
Propuesta para el diseño del sistema logístico en la empresa
 
Documentos secundaria matematica-vi
Documentos secundaria matematica-viDocumentos secundaria matematica-vi
Documentos secundaria matematica-vi
 
Documentos secundaria matematica-vi
Documentos secundaria matematica-viDocumentos secundaria matematica-vi
Documentos secundaria matematica-vi
 
Rutas de aprendizaje 1º y 2º grado secundaria (vi ciclo)
Rutas de aprendizaje 1º y 2º grado secundaria (vi ciclo)Rutas de aprendizaje 1º y 2º grado secundaria (vi ciclo)
Rutas de aprendizaje 1º y 2º grado secundaria (vi ciclo)
 
Rutas Matemática VI- 2015
Rutas Matemática VI- 2015Rutas Matemática VI- 2015
Rutas Matemática VI- 2015
 
Rutas del aprendizaje VI ciclo versión 2015
Rutas del aprendizaje VI ciclo versión 2015Rutas del aprendizaje VI ciclo versión 2015
Rutas del aprendizaje VI ciclo versión 2015
 

Destacado

Destacado (12)

3automatizacion
3automatizacion3automatizacion
3automatizacion
 
malcicsinisa40
malcicsinisa40malcicsinisa40
malcicsinisa40
 
Img006
Img006Img006
Img006
 
Registro de-productos-plaguicidas-agrocalidad
Registro de-productos-plaguicidas-agrocalidadRegistro de-productos-plaguicidas-agrocalidad
Registro de-productos-plaguicidas-agrocalidad
 
Romania
RomaniaRomania
Romania
 
Your pacfold learn guide.
Your pacfold learn guide.Your pacfold learn guide.
Your pacfold learn guide.
 
SAP Teched 2016 best practive BPMN development
SAP Teched 2016 best practive BPMN developmentSAP Teched 2016 best practive BPMN development
SAP Teched 2016 best practive BPMN development
 
Semana 16
Semana 16Semana 16
Semana 16
 
Semana 11
Semana 11Semana 11
Semana 11
 
STAGES OF LANGUAGE ACQUISITION
STAGES OF LANGUAGE ACQUISITIONSTAGES OF LANGUAGE ACQUISITION
STAGES OF LANGUAGE ACQUISITION
 
Estructura atómica de los materiales
Estructura atómica de los materialesEstructura atómica de los materiales
Estructura atómica de los materiales
 
Note technique du 1er avril 2016 relative à la collecte de renseignements st...
Note technique du 1er avril 2016  relative à la collecte de renseignements st...Note technique du 1er avril 2016  relative à la collecte de renseignements st...
Note technique du 1er avril 2016 relative à la collecte de renseignements st...
 

Similar a 3automatizacion

Mcvs ad-02 plan de gestión de desarrollo
Mcvs ad-02 plan de gestión de desarrolloMcvs ad-02 plan de gestión de desarrollo
Mcvs ad-02 plan de gestión de desarrollo
lnavarros
 
guia 5 mantenimiento - herramientas colaborativas
guia 5   mantenimiento - herramientas colaborativasguia 5   mantenimiento - herramientas colaborativas
guia 5 mantenimiento - herramientas colaborativas
deko
 
Proyecto de Conectividad
Proyecto de ConectividadProyecto de Conectividad
Proyecto de Conectividad
Alexis1721
 
guia-criterios-de-diseno-para-el-taller-de-especialidad-de-educacion-para-el-...
guia-criterios-de-diseno-para-el-taller-de-especialidad-de-educacion-para-el-...guia-criterios-de-diseno-para-el-taller-de-especialidad-de-educacion-para-el-...
guia-criterios-de-diseno-para-el-taller-de-especialidad-de-educacion-para-el-...
duaniguzman
 

Similar a 3automatizacion (20)

Diagrama de clases - Ejemplo monográfico 01
Diagrama de clases - Ejemplo monográfico 01Diagrama de clases - Ejemplo monográfico 01
Diagrama de clases - Ejemplo monográfico 01
 
Guia ap5
Guia ap5Guia ap5
Guia ap5
 
CGEU-145_MANUAL (1).pdf
CGEU-145_MANUAL (1).pdfCGEU-145_MANUAL (1).pdf
CGEU-145_MANUAL (1).pdf
 
CGEU-145_MANUAL.pdf
CGEU-145_MANUAL.pdfCGEU-145_MANUAL.pdf
CGEU-145_MANUAL.pdf
 
Ptordoya tfc0111
Ptordoya tfc0111Ptordoya tfc0111
Ptordoya tfc0111
 
Informe practicas
Informe practicasInforme practicas
Informe practicas
 
F004 p006-gfpi mapas-de_procesos.docx
F004 p006-gfpi mapas-de_procesos.docxF004 p006-gfpi mapas-de_procesos.docx
F004 p006-gfpi mapas-de_procesos.docx
 
Mpmiiis3 copiaik
Mpmiiis3   copiaikMpmiiis3   copiaik
Mpmiiis3 copiaik
 
Mcvs ad-02 plan de gestión de desarrollo
Mcvs ad-02 plan de gestión de desarrolloMcvs ad-02 plan de gestión de desarrollo
Mcvs ad-02 plan de gestión de desarrollo
 
guia 5 mantenimiento - herramientas colaborativas
guia 5   mantenimiento - herramientas colaborativasguia 5   mantenimiento - herramientas colaborativas
guia 5 mantenimiento - herramientas colaborativas
 
Proyecto de Conectividad
Proyecto de ConectividadProyecto de Conectividad
Proyecto de Conectividad
 
Actualización de sílabos
Actualización de sílabosActualización de sílabos
Actualización de sílabos
 
Proyecto_Final.docx
Proyecto_Final.docxProyecto_Final.docx
Proyecto_Final.docx
 
Manual informatica
Manual informaticaManual informatica
Manual informatica
 
manual de competencia basica de informatica.pdf
manual de competencia basica de informatica.pdfmanual de competencia basica de informatica.pdf
manual de competencia basica de informatica.pdf
 
Cómo automatizar tareas rutinarias con excel macros
Cómo automatizar tareas rutinarias con excel macrosCómo automatizar tareas rutinarias con excel macros
Cómo automatizar tareas rutinarias con excel macros
 
guia-criterios-de-diseno-para-el-taller-de-especialidad-de-educacion-para-el-...
guia-criterios-de-diseno-para-el-taller-de-especialidad-de-educacion-para-el-...guia-criterios-de-diseno-para-el-taller-de-especialidad-de-educacion-para-el-...
guia-criterios-de-diseno-para-el-taller-de-especialidad-de-educacion-para-el-...
 
Curso competencias dig-guia_trabajo
Curso competencias dig-guia_trabajoCurso competencias dig-guia_trabajo
Curso competencias dig-guia_trabajo
 
Untitled manual informatica
Untitled   manual informaticaUntitled   manual informatica
Untitled manual informatica
 
Fundamentos de programación
Fundamentos de programaciónFundamentos de programación
Fundamentos de programación
 

Último

Presentación_ Marco general de las contrataciones públicas.pdf
Presentación_ Marco general de las contrataciones públicas.pdfPresentación_ Marco general de las contrataciones públicas.pdf
Presentación_ Marco general de las contrataciones públicas.pdf
fernandolozano90
 
TIPOS DE BASTIDORES Y CARROCERIA EN LA INDUSTRIA AUTOMOTRIZ
TIPOS DE BASTIDORES Y CARROCERIA EN LA INDUSTRIA AUTOMOTRIZTIPOS DE BASTIDORES Y CARROCERIA EN LA INDUSTRIA AUTOMOTRIZ
TIPOS DE BASTIDORES Y CARROCERIA EN LA INDUSTRIA AUTOMOTRIZ
varichard
 

Último (20)

Presentación_ Marco general de las contrataciones públicas.pdf
Presentación_ Marco general de las contrataciones públicas.pdfPresentación_ Marco general de las contrataciones públicas.pdf
Presentación_ Marco general de las contrataciones públicas.pdf
 
Balance materia y energia procesos de Secado
Balance materia y energia procesos de SecadoBalance materia y energia procesos de Secado
Balance materia y energia procesos de Secado
 
subestaciones electricas , elementos y caracteristicas
subestaciones electricas , elementos y caracteristicassubestaciones electricas , elementos y caracteristicas
subestaciones electricas , elementos y caracteristicas
 
Ficha Técnica -Cemento YURA Multiproposito TIPO IP.pdf
Ficha Técnica -Cemento YURA  Multiproposito TIPO IP.pdfFicha Técnica -Cemento YURA  Multiproposito TIPO IP.pdf
Ficha Técnica -Cemento YURA Multiproposito TIPO IP.pdf
 
subestaciones electricas, distribucion de energia
subestaciones electricas, distribucion de energiasubestaciones electricas, distribucion de energia
subestaciones electricas, distribucion de energia
 
50870516-hidroponia. descargado en novppt
50870516-hidroponia. descargado en novppt50870516-hidroponia. descargado en novppt
50870516-hidroponia. descargado en novppt
 
ESFUERZO EN VIGAS SESIÓN 5 PROBLEMA RESUELTOS.pdf
ESFUERZO EN VIGAS SESIÓN 5 PROBLEMA RESUELTOS.pdfESFUERZO EN VIGAS SESIÓN 5 PROBLEMA RESUELTOS.pdf
ESFUERZO EN VIGAS SESIÓN 5 PROBLEMA RESUELTOS.pdf
 
TIPOS DE BASTIDORES Y CARROCERIA EN LA INDUSTRIA AUTOMOTRIZ
TIPOS DE BASTIDORES Y CARROCERIA EN LA INDUSTRIA AUTOMOTRIZTIPOS DE BASTIDORES Y CARROCERIA EN LA INDUSTRIA AUTOMOTRIZ
TIPOS DE BASTIDORES Y CARROCERIA EN LA INDUSTRIA AUTOMOTRIZ
 
DIAGRAMAS PID automatizacion y control.ppt
DIAGRAMAS PID automatizacion y control.pptDIAGRAMAS PID automatizacion y control.ppt
DIAGRAMAS PID automatizacion y control.ppt
 
ESPECIFICACIONES TECNICAS MURO DE CONTENCION.docx
ESPECIFICACIONES TECNICAS MURO DE CONTENCION.docxESPECIFICACIONES TECNICAS MURO DE CONTENCION.docx
ESPECIFICACIONES TECNICAS MURO DE CONTENCION.docx
 
slideshare.vpdfs.com_sensores-magneticos-controles-pptx.pdf
slideshare.vpdfs.com_sensores-magneticos-controles-pptx.pdfslideshare.vpdfs.com_sensores-magneticos-controles-pptx.pdf
slideshare.vpdfs.com_sensores-magneticos-controles-pptx.pdf
 
1.1 Los 14 principios del Toyota Way -2024.pdf
1.1 Los 14 principios del Toyota Way -2024.pdf1.1 Los 14 principios del Toyota Way -2024.pdf
1.1 Los 14 principios del Toyota Way -2024.pdf
 
Matematica Basica Limites indeterminados
Matematica Basica Limites indeterminadosMatematica Basica Limites indeterminados
Matematica Basica Limites indeterminados
 
TYPP_Industrialización del Petróleo.pptx
TYPP_Industrialización del Petróleo.pptxTYPP_Industrialización del Petróleo.pptx
TYPP_Industrialización del Petróleo.pptx
 
herrramientas de resistividad para registro de pozos.pptx
herrramientas de resistividad para registro de pozos.pptxherrramientas de resistividad para registro de pozos.pptx
herrramientas de resistividad para registro de pozos.pptx
 
TEST ESPACIAL CONTEO DE CUBOS y TEST DE MOSAICOS
TEST ESPACIAL CONTEO DE CUBOS y TEST DE MOSAICOSTEST ESPACIAL CONTEO DE CUBOS y TEST DE MOSAICOS
TEST ESPACIAL CONTEO DE CUBOS y TEST DE MOSAICOS
 
UNIDAD III Esquemas de comunicacion pptx
UNIDAD III Esquemas de comunicacion pptxUNIDAD III Esquemas de comunicacion pptx
UNIDAD III Esquemas de comunicacion pptx
 
Diseño digital - M. Morris Mano - 3ed.pdf
Diseño digital - M. Morris Mano - 3ed.pdfDiseño digital - M. Morris Mano - 3ed.pdf
Diseño digital - M. Morris Mano - 3ed.pdf
 
Semana 1 - Introduccion - Fluidos - Unidades.pptx
Semana 1 - Introduccion - Fluidos - Unidades.pptxSemana 1 - Introduccion - Fluidos - Unidades.pptx
Semana 1 - Introduccion - Fluidos - Unidades.pptx
 
Practica_Calificada_03333333333333333.pdf
Practica_Calificada_03333333333333333.pdfPractica_Calificada_03333333333333333.pdf
Practica_Calificada_03333333333333333.pdf
 

3automatizacion

  • 2.
  • 3. AUTOMATIZACIÓN DE HOJAS DE CÁLCULO EN EXCEL PRESENTACION CENTRO NACIONAL DE CAPACITACION Y CALIDADIMSS-SNTSS 3 Índice: Presentación ..................................................................................................................................... 5 “Automatización de Hojas de Cálculo en Excel”............................................................................ 7 Módulo I Funciones de Usuario ....................................................................................................... 9 INTRODUCCIÓN............................................................................................................................................11 1.1 CREACIÓN DE FUNCIONES...................................................................................................................11 1.2 SINTAXIS DE UNA FUNCIÓN. ................................................................................................................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 Módulo II Macros............................................................................................................................. 15 INTRODUCCIÓN............................................................................................................................................17 2.1 MACROS ..................................................................................................................................................17 2.2 TIPOS DE MACROS ................................................................................................................................17 2.3 EL CÓDIGO DE LA MACRO ....................................................................................................................18 2.4 USO DE BOTONES PARA FACILITAR LA EJECUCIÓN 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 Módulo III Aplicación de Macros.................................................................................................... 23 INTRODUCCIÓN............................................................................................................................................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 Módulo IV Barras y Menús Personalizados................................................................................... 31 INTRODUCCIÓN............................................................................................................................................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 SUBMENÚS..............................................................................................................................................35
  • 4. PRESENTACION AUTOMATIZACIÓN DE HOJAS DE CÁLCULO EN EXCEL 4 CENTRO NACIONAL DE CAPACITACION Y CALIDAD IMSS-SNTSS Módulo V Cuadros y Hojas de Diálogo ..........................................................................................36 INTRODUCCION ............................................................................................................................................38 5.1 CUADROS DE DIÁLOGO.........................................................................................................................38 5.2 APLICACIÓN Y PROGRAMACIÓN DE CONTROLES EN UN CUADRO DE DIÁLOGO:.......................38 5.3 APLICACIÓN DE MACROS EN UNA HOJA DE DIÁLOGO ...................................................................39 Anexos .............................................................................................................................................41 ANEXO 1. EJERCICIOS DE EXCEL AVANZADO .........................................................................................43 ANEXO 2. SISTEMA DE MACROS PARA EXCEL AVANZADO ...................................................................53 Comentarios ....................................................................................................................................61
  • 5. AUTOMATIZACIÓN DE HOJAS DE CÁLCULO EN EXCEL PRESENTACION CENTRO NACIONAL DE CAPACITACION Y CALIDADIMSS-SNTSS 5 PPrreesseennttaacciióónn El Instituto Mexicano del Seguro Social conjuntamente con el Sindicato Nacional de Trabajadores del Seguro Social comprometidos con la superación y actualización del personal, impulsan la Capacitación en materia de Informática, Humanística, Promocional y de Programas Institucionales que se vinculen a la solución de los problemas de la operación, favoreciendo el otorgamiento de servicios de calidad. En este contexto la Coordinación de Informática del Centro Nacional de Capacitación y Calidad, cumple con la tarea de Diseñar los cursos de capacitación y elaborar los Materiales de Apoyo Didácticos de conformidad con la NTCL (Norma Técnica de Competencia Laboral) Diseño e Impartición de Cursos de Capacitación para sustentar el programa de capacitación en Informática que integran el Plan de Trabajo de esta Coordinación y que están abiertos a todos nuestros compañeros trabajadores basados en la NTCL Elaboración de documentos mediante herramientas de cómputo. Así pues, se presenta a continuación el Material de Apoyo Didáctico del Participante “Automatización de Hojas de Cálculo en Excel”, que ha sido elaborado con base en la Unidad de Competencia “Elaboración de hojas de cálculo mediante aplicaciones de cómputo” Código UINF0652.01 con información actualizada y el sustento pedagógico y didáctico 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 operación de herramientas para el procesamiento de Hojas de Cálculo, desde el inicio de la aplicación, el formato a la Hoja, el tratamiento a los datos, la reproducción en impresora o archivos y el guardado del documento.
  • 6. PRESENTACION AUTOMATIZACIÓN DE HOJAS DE CÁLCULO EN EXCEL 6 CENTRO NACIONAL DE CAPACITACION Y CALIDAD IMSS-SNTSS Este material de apoyo didáctico para el participante está estructurado en cuatro Módulos. Módulo I: Funciones de Usuario para Fórmulas complejas: En este módulo usted aprenderá a crear sus propias funciones de usuario. Una función de usuario sirve para crear fórmulas complejas programadas en Excel mediante programación Visual Basic y colocarlas dentro del asistente de funciones para su uso posterior, también aprenderá a llamar a funciones dentro de una función, usando el código de Visual Basic. Módulo II: Macros. Una macro es un conjunto de instrucciones a las que se da un nombre y que indica a Excel una determinada acción a realizar. Este módulo guía al participante en el conocimiento y aplicación de las macros y cómo se pueden utilizar para incrementar la productividad. También veremos como grabar, ejecutar, editar y asignar botones de órdenes a las macros creadas. Módulo III: Aplicación de macros, en este módulo el participante creará una aplicación usando macros, en la que aplicara todos los conocimientos adquiridos en los cursos anteriores de Excel. Módulo IV: Barras y Menús Personalizados: Para dar una mejor presentación a sus libros de trabajo, este Módulo es el adecuado, ya que en él usted aprenderá a crear Barras y Menús personalizados e incluso crear su propia barra y menú para una aplicación en especial, y así poder evitar que el usuario seleccione otras opciones ajenas a la aplicación. Módulo V: Cuadros y Hojas de Diálogo: Después de haber creado y elaborado una serie de macros en sus Hojas de Cálculo en Excel, necesitara manejar todas sus macros desde una hoja especial de Diálogo, esta opción nos permite ejecutar macros que utilizan una hoja de Diálogo para una mejor presentación de sus sistemas en pantalla. Es recomendable que para un buen aprovechamiento de este curso adquiera el conocimiento previo que le brindan los cursos “Introducción al uso y Operación de las Microcomputadoras” , “Administración de Recursos con Windows XP”, “Fundamentos de Programación”, “Formato y Operaciones en Excel” y “Gestión de Datos en Excel”, con lo que seguirá un proceso continúo de enseñanza-aprendizaje. Es indispensable la práctica cotidiana de los temas tratados en este material de apoyo didáctico, a fin de que adquiera un mayor dominio de Excel 2003.
  • 7. AUTOMATIZACIÓN DE HOJAS DE CÁLCULO EN EXCEL PRESENTACION CENTRO NACIONAL DE CAPACITACION Y CALIDADIMSS-SNTSS 7 ““AAuuttoommaattiizzaacciióónn ddee HHoojjaass ddee CCáállccuulloo eenn EExxcceell”” Objetivo General: Al término del curso el participante diseñará y aplicará macros en Excel mediante ejercicios de aplicación que automaticen sus hojas de cálculo, optimizando tiempos al obtener resultados que resuelvan problemas específicos en las tareas encomendadas en su área de trabajo. Dirigido: Todo trabajador IMSS-SNTSS, de áreas contables, financieras, estadísticas, actuariales, etc., que requiera del conocimiento y aplicación de macros para automatizar sus hojas de cálculo, al desempeñar sus tareas diarias de su área laboral. Requisitos: Haber acreditado los cursos: “Introducción al uso y operación de las microcomputadoras”, “Administración de recursos con Windows XP”, “Fundamentos de Programación”, “Formato y Operaciones en Excel” y “Gestión de Datos en Excel”.
  • 8.
  • 9. AUTOMATIZACIÓN DE HOJAS DE CÁLCULO EN EXCEL MÓDULO I: FUNCIONES DE USUARIO CENTRO NACIONAL DE CAPACITACION Y CALIDADIMSS-SNTSS 9 MMóódduulloo II FFuunncciioonneess ddee UUssuuaarriioo Objetivo Específico: Al finalizar el módulo el participante:  Conocerá y aplicará el procedimiento para crear Funciones de Usuario.  Creará funciones de Usuario que necesite en su hoja de cálculo para resolver problemas específicos.
  • 10. MÓDULO I: FUNCIONES DE USUARIO AUTOMATIZACIÓN DE HOJAS DE CÁLCULO EN EXCEL 10 CENTRO NACIONAL DE CAPACITACION Y CALIDAD IMSS-SNTSS
  • 11. AUTOMATIZACIÓN DE HOJAS DE CÁLCULO EN EXCEL MÓDULO I: FUNCIONES DE USUARIO CENTRO NACIONAL DE CAPACITACION Y CALIDADIMSS-SNTSS 11 INTRODUCCIÓN Una función de usuario sirve para crear fórmulas complejas dentro de Excel y colocarlas dentro del asistente de funciones para su uso posterior. En este módulo usted aprenderá a crear sus propias funciones de usuario. También aprenderá a llamar a funciones dentro de una función, usando el código de Visual Basic. Este contiene además una lista de ejemplos de funciones de usuario, que a su vez serán utilizadas posteriormente como cualquier función 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 mínimos de programación en cualquier compilador o interprete. 1.1 CREACIÓN DE FUNCIONES Para crear una función de usuario necesita insertar una hoja de Módulo de Visual Basic en su libro de trabajo. Para hacerlo proceda como se le indica a continuación: Insertar Módulo de Visual Basic:  Clic en el menú Herramientas > Macro > Editor de Visual Basic  Clic en el menú Insertar > Módulo  Teclear código de la función  Volver a la hoja de calculo Nota: Todas las funciones se generan con código de Excel Visual Basic 1.2 SINTAXIS DE UNA FUNCIÓN. La creación de cualquier función 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 función End Function 1.3 COMO EJECUTAR UNA FUNCION De forma predeterminada, una función definida por el usuario se limita en ámbito al libro en el que reside la función. Es decir, sólo hojas del mismo libro pueden llamar a una función definida por el usuario. Después de escribir las líneas que componen el código de la función deberá ejecutarla para comprobar su funcionamiento. Para hacerlo siga este procedimiento:  Colóquese en la Hoja donde desea utilizar la función  Clic en el icono Pegar función  Categoría de la función: Definidas por el usuario  Nombre de la función: Seleccione el nombre de la función  Aceptar  Colocar los parámetros 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 función  Marcar código de la función  Eliminarlo 1.5 PROGRAMACION ESTRUCTURADA. La programación estructurada en sus inicios fue desa rrollada por Edgar W. Dijkstra y se basa en el teorema de la estructura desarrollado en 1966 por Böhm y Jacopini. Éste teorema establece que un programa propio puede ser escrito utilizando sólo las siguientes estructuras lógicas 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 Programación Estructurada permite codificar un programa en común acuerdo con las reglas siguientes:  El programa parte de un diseño modular.  Los módulos son diseñados de forma descendente.  Cada módulo integra en su código las tres estructuras de control básicas. Secuenciales, Selectivas y Repetitivas.
  • 12. MODULO I: FUNCIONES DE USUARIO AUTOMATIZACIÓN DE HOJAS DE CÁLCULO EN EXCEL 12 CENTRO NACIONAL DE CAPACITACION Y CALIDAD IMSS-SNTSS La ventaja de utilizar éste tipo de programación radica en que las instrucciones son fáciles de leer, comprender y codificar permitiendo aprovechar al máximo 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 ejecución. Ejemplo 1 „ FUNCIÓN PARA CALCULAR UNA RAÍZ CÚBICA ' FECHA : ENERO 2008 ' Función que calcula la raiz cúbica de cualquier número Function RAIZ3(NUMERO) ‟ RAIZ3 es el nombre de la función y NUMERO es el parámetro RAIZ3 = NUMERO ^ (1 / 3) „ Esta línea es el cuerpo de la función End Function Nota: Para colocar comentarios en una función, coloque un apóstrofe al principio de la línea y después coloque el comentario, en el ejemplo anterior las 3 primeras líneas son comentarios, los comentarios no afectan al código de la función. Ejemplo 2. „ FUNCIÓN PARA CALCULAR CUALQUIER RAÍZ DE CUALQUIER NÚMERO. 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 condición o expresión y tienen la característica de contar con una o más salidas. La sentencia “IF” Una de las herramientas más útiles en el proceso de información es la expresión condicional, que forma parte de una sentencia de programa, la sentencia IF que realiza preguntas que requieren respuestas lógicas o booleanas (del tipo True o False, Yes o No)… sobre una propiedad o variable en el código del programa. If…Then La sentencia IF permite evaluar una condición en el programa y llevar a cabo una serie de instrucciones, según sea el resultado de dicha condición. Cuando sólo se requiere de la ejecución de acciones al cumplirse la condición especificada (alternativa simple), la sentencia IF tiene la siguiente sintaxis. If condición Then Instrucción 1 Instrucción 2 Instrucción n End If Ejemplo: If…Then …Else Cuando se espera que al no cumplirse la condición, tenga lugar una serie de instrucciones opuestas o diferentes a las que ocurrirían en caso de cumplirse ésta (alternativa doble) entonces la sintaxis de la sentencia If tendrá una una estructura como la siguiente: If condición Then Instrucción 1 Instrucción 2 Instrucción n Else Instrucción 1 Instrucción 2 Instrucción n End If Ejemplo: 'FUNCIÓN 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 If…Then…ElseIf En la consideración anterior de la sentencia If o se cumple una condición 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 más condiciones similares en cuyo caso la sintaxis de la sentencia If toma la siguiente forma:
  • 13. AUTOMATIZACIÓN DE HOJAS DE CÁLCULO EN EXCEL MÓDULO I: FUNCIONES DE USUARIO CENTRO NACIONAL DE CAPACITACION Y CALIDADIMSS-SNTSS 13 IF condición Then Instrucción 1 Instrucción 2 Instrucción n ElseIf condición Then Instrucción 1 Instrucción 2 Instrucción n ElseIf condición Then Instrucción 1 Instrucción 2 Instrucción n Else condición Then Instrucción 1 Instrucción 2 Instrucción n End If Ejemplo 1: ' FUNCIÓN 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: ' FUNCIÓN 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: „ FUNCIÓN 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 función de éste valor seleccionar y ejecutar una serie de instrucciones específicas (alternativa múltiple). La sintaxis para la instrucción Select Case es la siguiente: Select Case Parámetro Case 1 el primer valor posible en la variable. Instrucción 1 Instrucción 2 Instrucción n Case 2 el segundo valor posible en la variable. Instrucción 1 Instrucción 2 Instrucción n Case 3 el tercer valor posible en la variable. Instrucción 1 Instrucción 2 Instrucción n Case Else algún otro valor en la variable distinto de los anteriores Instrucción 1 Instrucción 2 Instrucción n End Select Ejemplo:
  • 14. MODULO I: FUNCIONES DE USUARIO AUTOMATIZACIÓN DE HOJAS DE CÁLCULO EN EXCEL 14 CENTRO NACIONAL DE CAPACITACION Y CALIDAD IMSS-SNTSS „ FUNCIÓN 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: „ FUNCIÓN PARA LOS DÍAS 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 información las estructuras repetitivas o bucles nos permiten optimizar código y agilizar los programas, ya que una o varias instrucciones pueden repetirse un número determinado o indeterminado de veces. Bucle: En programación, un bucle o ciclo es un tipo de estructura de control que permite repetir una o más sentencias múltiples veces, lo que ahorra tiempo, deja el código más claro y facilita su modificación en el futuro. Los bucles con Do se utilizan cuando no se conoce con exactitud el número 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 mayoría de los lenguajes de programación estructurados cuyo propósito es repetir un bloque de código mientras una condición se mantenga verdadera. La sintaxis para ésta estructura es la siguiente: Do While condición Instrucción 1 Instrucción 2 Instrucción n Loop delimita el final del bloque de instrucciones a repetir en el bucle. Ejemplo:
  • 15. AUTOMATIZACIÓN DE HOJAS DE CÁLCULO EN EXCEL MÓDULO II: MACROS CENTRO NACIONAL DE CAPACITACION Y CALIDADIMSS-SNTSS 15 MMóódduulloo IIII MMaaccrrooss Objetivo Especifico: Al finalizar el módulo el participante:  identificará y aplicará el procedimiento para grabar una macro.  Utilizando macros, automatizar las tareas que son repetitivas en sus hojas de cálculo.  Conocerá y modificará el código Visual Basic para modificar sus macros.  Creará un sistema de Macros para Excel
  • 16. MÓDULO II: MACROS AUTOMATIZACIÓN DE HOJAS DE CÁLCULO EN EXCEL 16 CENTRO NACIONAL DE CAPACITACION Y CALIDAD IMSS-SNTSS
  • 17. AUTOMATIZACIÓN DE HOJAS DE CÁLCULO EN EXCEL MÓDULO II: MACROS CENTRO NACIONAL DE CAPACITACION Y CALIDADIMSS-SNTSS 17 INTRODUCCIÓN Si es como la mayoría 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 acción a realizar. En este módulo se verá la forma que tienen las macros y cómo se pueden utilizar para incrementar la productividad. También 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 sólo necesita saber qué órdenes de Excel desea que la macro ejecute para usted. Puede registrar las órdenes en secuencia, y éstas serán traducidas automáticamente al lenguaje utilizado por Excel. Registrar una macro es similar a registrar una música en una cinta magnetofónica: no necesita comprender cómo se registra en la cinta; sólo tiene que saber qué música desea registrar. 2.1 MACROS Si encuentra que ejecuta con alguna frecuencia determinadas tareas, como por ejemplo la aplicación de la negrita, la letra cursiva y un tipo de tamaño mayor para los títulos de la hoja o que introduce las mismas categorías 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 automáticamente al lenguaje Visual Basic y almacenadas en una hoja de módulo 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. Después de escoger Grabar nueva macro, cada celda que seleccione, todo lo que introduzca, y cada orden que escoja será registrada. También necesita pensar en un nombre y una descripción 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 grabación, ó Menú Herramientas, Macro, Detener grabación) Ejemplos Ejemplo 1 Crear una macro para un Título  Colocarse en la celda para el título
  • 18. MÓDULO II: MACROS AUTOMATIZACIÓN DE HOJAS DE CÁLCULO 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 grabación  Clic en el icono Referencia Relativa (Si ya esta activado ya no lo haga)  Teclear : Centro Nacional  Enter  Doble clic en la separación de las columnas para ajuste automático  Detener la macro (Menú Herramientas > Macro > Detener grabación ó Clic en el icono Detener grabación) Ejemplo 2  Colocarse en la celda para el título  Clic en Menú Herramientas > Macro > Grabar nueva macro ...  Nombre de la macro: Teclee TITULO2  Aceptar Comienza la grabación:  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 Tamaño: 24 Color: Azul  Bordes Línea Estilo: Seleccione un Estilo Color: Amarillo Contorno  Tramas: Color: Rojo  Aceptar  Ajuste automático de columnas (Doble clic en la separación de la columna)  Detener la macro (Menú Herramientas > Macro > Detener grabación ó Clic en el icono Detener grabación) Ejecutar la macro:  Colocarse en una celda vacía  Clic en Menú Herramientas > Macro > Macros ...  Seleccionar el nombre de la macro : TITULO  Ejecutar 2.3 EL CÓDIGO DE LA MACRO Para ver el código 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 código: Sub TITULO() ActiveCell.FormulaR1C1 = "CENTRO NACIONAL" ActiveCell.Columns("A:A").EntireColumn.EntireColumn.AutoFit End Sub Nota: Lo que usted ve es código Excel Visual Basic. Cualquier cambio en su macro lo realizará usando Instrucciones de código Visual Basic Salir del código  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 EJECUCIÓN DE MACROS Puede ejecutar cualquier macro de su libro desde el cuadro de diálogo de Macro, pero éste no siempre es el método más rápido. Si tiene una macro, la cual se utilizará con cierta frecuencia en una hoja particular, puede añadir un botón a esa hoja
  • 19. AUTOMATIZACIÓN DE HOJAS DE CÁLCULO EN EXCEL MÓDULO II: MACROS CENTRO NACIONAL DE CAPACITACION Y CALIDADIMSS-SNTSS 19 y asignar la macro al botón. De esta forma, puede pulsar el botón para ejecutar la macro, en lugar de utilizar una orden de menú. Incluso puede acceder a la macro a través del menú que debería necesitar. Colocar un botón a una macro  Deben de existir macros  Mostrar la familia de iconos de la barra de herramientas Formularios  Seleccione el icono Botón  Trace un botón en su hoja de calculo del tamaño de una celda  Al soltar el botón del Mouse aparece su lista de macros  Seleccione la macro que quiere para su botón  Aceptar  Clic dentro del botón  Elimine el texto de Botón 1 que aparece y coloque su nuevo texto  Clic fuera del botón Ejecutar su macro con el botón  Colóquese en una celda vacía  De un clic sobre su botón Modificar su botón  Clic derecho con su Mouse sobre el botón  Realice los cambios necesarios. 2.5 ASIGNAR MACRO A UN OBJETO GRAFICO  Tener el gráfico en la hoja (Clic en el menú Insertar > Imagen > Imágenes prediseñadas, Seleccione una Imagen e Insértela, modifique el tamaño si la imagen es muy grande)  Clic derecho sobre el gráfico > 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 código de Excel Visual Basic 2.7 INSTRUCCIONES VISUAL BASIC PARA MODIFICACION DE MACROS Instrucción InputBox: Muestra un mensaje en un cuadro de diálogo, espera que el usuario escriba un texto o haga clic en un botón y devuelve un tipo String con el contenido del cuadro de texto. Sintaxis: Variable=Inputbox(“Mensaje”) Código de la macro TITULO: Sub TITULO( ) ActiveCell.FormulaR1C1 = "CENTRO NACIONAL" ActiveCell.Columns("A:A").EntireColumn.EntireColumn.AutoFit End Sub Código de la Macro TITULO modificado con la instrucción 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:
  • 20. MÓDULO II: MACROS AUTOMATIZACIÓN DE HOJAS DE CÁLCULO 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 código para que la computadora nos pida a través de la instrucción Input Box la Matricula, el Nombre, el Puesto y el Sueldo, y los coloque al final de la base de datos. El código ya modificado con el uso de la instrucción Input Box debe quedar de la forma siguiente. Instrucción MsgBox : La instrucción MsgBox muestra un mensaje en un cuadro de diálogo, espera a que el usuario haga clic en un botón y devuelve un tipo Integer correspondiente al botón elegido por el usuario. Sintaxis: Variable = Msgbox(“Mensaje”,VBYesNo) Instrucción DO: La instrucción Do repite un bloque de instrucciones cuando una condición es Verdadera o hasta que una condición se convierta en Verdadero o Falso dependiendo de la condición. Sintaxis: El código del ejercicio realizado modificado con el uso de la variable MSGBOX debe quedar de la forma siguiente: SECUENCIA DE GRABACIÓN 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 Grabación Sub CAPTURA() Application.Goto Reference:="R1C1" Selection.End(xlDown).Select ActiveCell.Offset(1, 0).Range("A1").Select MATRICULA = InputBox("Teclea la Matrícula 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
  • 21. AUTOMATIZACIÓN DE HOJAS DE CÁLCULO EN EXCEL MÓDULO 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 código 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 condición de la Instrucción Do While, MATRICULA, para almacenar la matrícula, 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 Matrícula 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 código que generó Edite la macro a la cual desea agregar mas instrucciones Ubique el cursor en la posición donde desea el código de las nuevas instrucciones Pegue el código que Copió Vuelva a la hoja de Excel y guarde su documento MÁS EJEMPLOS Y EJERCICIOS: EJERCICIO 2: En una hoja de Excel crear una macro para capturar MATRÍCULA, NOMBRE, CATEGORIA, SUELDO, NIVEL ACADEMICO Y EDO. CIVIL del trabajador en el rango de B2:B7, después copiar estos datos y colocarlos al final de una lista. EJERCICIO 3: Crear una macro para generar una factura. La macro genera el número 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 Dirección. 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.
  • 22. MÓDULO II: MACROS AUTOMATIZACIÓN DE HOJAS DE CÁLCULO 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 están bien los datos, si están mal que los vuelva a pedir, si están 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 número 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 dirección. luego nos pide comprobar si los datos del cliente son correctos, si están mal que nos vuelva a pedir los datos, si están 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)
  • 23. AUTOMATIZACIÓN DE HOJAS DE CÁLCULO EN EXCEL MÓDULO III: APLICACIÓN DE MACROS CENTRO NACIONAL DE CAPACITACION Y CALIDADIMSS-SNTSS 23 MMóódduulloo IIIIII AApplliiccaacciióónn ddee MMaaccrrooss Objetivos Especificos: Al finalizar el módulo el participante:  Creará una aplicación usando macros  Aplicará los conocimientos adquiridos en los cursos anteriores de Excel.
  • 24. MÓDULO III: APLICACIÓN DE MACROS AUTOMATIZACIÓN DE HOJAS DE CÁLCULO EN EXCEL 24 CENTRO NACIONAL DE CAPACITACION Y CALIDAD IMSS-SNTSS
  • 25. AUTOMATIZACIÓN DE HOJAS DE CÁLCULO EN EXCEL MÓDULO III: APLICACIÓN DE MACROS CENTRO NACIONAL DE CAPACITACION Y CALIDADIMSS-SNTSS 25 INTRODUCCIÓN La aplicación que se desarrollara en este módulo 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 cálculo, 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 fácilmente con las instrucciones vistas en los cursos Básico e Intermedio. Se recomienda tener a la mano los manuales respectivos, ya que se aplicarán 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, fórmulas, búsquedas etc., ponga a prueba sus conocimientos. Procedimiento para crear el menú principal: Crear un Nombre de Rango en la posición A1 de cada hoja (Por ejemplo para ventas se llamará INICIO_VENTAS, para almacén 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 posición: Herramientas > Macro > Grabar nueva macro… Teclear Nombre de la macro: (A_VENTAS). Procedimiento de Grabación:  F5 - INICIO_VENTAS  Enter  Detener la macro * Hacer lo mismo para cada hoja del libro Código Visual Basic para ésta macro: Sub A_VENTAS() Application.Goto Reference:="INICIO_VENTAS" End Sub Crear un botón para ejecutar la Macro: Mostrar la Barra de Herramientas “Formulario” Seleccionar icono Botón En la hoja de calculo trazar un botón Asignar la macro para este botón (A_VENTAS). Aceptar Clic dentro del botón Eliminar el nombre que tiene el botón Teclear nuevo titulo del botón (VENTAS) Clic fuera del botón. * Hacer lo mismo para cada hoja del libro
  • 26. MÓDULO III: APLICACIÓN DE MACROS AUTOMATIZACIÓN DE HOJAS DE CÁLCULO 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 almacén; una macro para actualizar las existencias de los productos en el almacén 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 almacén. 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 Grabación: 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. Edición > Pegado especial  Valores Transponer - 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 búsqueda 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 Grabación: 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. Edición > Buscar >Teclear CLAVE Opciones: Dentro de: Hoja Buscar: Por columnas Buscar dentro de: Valores  Coincidir con el contenido de toda la celda Buscar Siguiente – Cerrar 9.    - 10. Edición > Pegado especial  Valores -  Sumar Aceptar 11. Esc 12. F5 – A1 – Enter PROCEDIMIENTOS PARA BUSCAR PRODUCTOS EN ALMACEN NOTA: Este procedimiento permite hacer una búsqueda de un producto utilizando la clave o el nombre del mismo. La clave y nombre se deberá pedir a través de un Input Box. Colocar antes en G17, G18 Y G19 fórmulas para la búsqueda 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 Grabación: 1. F5 - A1 - Enter 2. Edición > Buscar > Teclear la clave Opciones: Dentro de: Hoja Buscar: Por columnas Buscar dentro de: Valores  Coincidir con el contenido de toda la celda Buscar siguiente, Cerrar 3. CTRL +  4. CTRL + C 5. F5 - G16 - Enter 6. Edición > Pegado Especial  Valores Aceptar 7. Esc 8. F5 - A1 – Enter
  • 27. AUTOMATIZACIÓN DE HOJAS DE CÁLCULO EN EXCEL MÓDULO III: APLICACIÓN 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 botón Ventas, la computadora nos pedirá la clave del producto a vender, la computadora, deberá de decirnos que producto es, cuantos tenemos en el almacén y el precio, por ultimo nos pedirá la cantidad a vender y al dar Enter la computadora realizará los cálculos 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 almacén. Si no es así deberá crearlo con el método siguiente. Procedimiento para crear el Nombre: Seleccionar (marcar) el rango de datos Insertar > Nombre > Definir Teclear nombre para el rango (“PRODUCTOS”) Agregar, Aceptar Crear fórmulas de búsqueda en B4, B5 y B7 para saber el nombre del producto, precio y existencia: Procedimiento para hacer la búsqueda: Colocarse en la celda donde se va a colocar el Nombre del producto. Crear las formulas de búsqueda: =BUSCARV(B3,PRODUCTOS,2,FALSO) Para Producto =BUSCARV(B3,PRODUCTOS,3,FALSO) Para Precio =BUSCARV(B3,PRODUCTOS,4,FALSO) Para Existencia Procedimiento de Grabación: 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. Edición > Buscar Teclear la CLAVE a vender Opciones: Dentro de: Hoja Buscar: Por Columnas Buscar dentro de: Valores  Coincidir con el contenido de la celda. Buscar Siguiente, Cerrar 9.    Edición - Pegado Especial  Valores  Restar Aceptar 10. Esc 11. F5 INICIO_VENTAS - Enter Modificaciones al código: Modificar el código para efectuar la venta si el cliente lo autoriza. O en su caso modificar la cantidad o cancelar la venta.
  • 28. MÓDULO III: APLICACIÓN DE MACROS AUTOMATIZACIÓN DE HOJAS DE CÁLCULO 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 botón de la macro, la macro deberá de generar el número 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 dirección, solicitar la clave del producto a vender, después de dar la clave, la computadora deberá decirnos que producto es y el precio, después nos pedirá la cantidad del producto a vender, realizará las operaciones necesarias para calcular el Subtotal, IVA y Total, y restará en la hoja almacén 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 Almacén A2:D503), ARTS_VENDIDOS (A9:G19); y CLIENTE (B4:B5) son nombres que tiene que definir anterioridad. Además deberá poner un 1 en la celda F1 para inicializar el contador del consecutivo. Procedimiento de Grabación: 1. F5 – INICIO_FACTURAS - Enter 2. F5 - F1 - Enter 3. CTRL+C 4.  - Edición > Pegado especial  Valores -  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. Edición > Copiar (ó CTRL +C) 20. F5 – INICIO_ALMACEN - Enter 21. Edición > Buscar > Teclear la Clave Opciones: Dentro de: Hoja; Buscar: Por Columnas Buscar dentro de: Valores  Coincidir con el contenido de toda la celda. Buscar siguiente > Cerrar 22.    - Edición > Pegado Especial  Valores  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. Edición > Copiar (ó CTRL + C) 32. F5 – I2 - Enter 33. Edición > Pegado Especial  Valores  Sumar Aceptar 34. Esc 35. F5 - A1 - Enter 36. Detener Grabación
  • 29. AUTOMATIZACIÓN DE HOJAS DE CÁLCULO EN EXCEL MÓDULO III: APLICACIÓN 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 botón DERECHOS, le muestre esta hoja y al hacer clic en le botón MENÚ de esta hoja lo devuelva al menú principal.
  • 30.
  • 31. AUTOMATIZACIÓN DE HOJAS DE CÁLCULO EN EXCEL MÓDULO IV: BARRAS Y MENUS PERSONALIZADOS CENTRO NACIONAL DE CAPACITACION Y CALIDADIMSS-SNTSS 31 MMóódduulloo IIVV BBaarrrraass yy MMeennúúss PPeerrssoonnaalliizzaaddooss Objetivos Específicos: Al finalizar el módulo el participante:  Conocerá y aplicará el procedimiento para crear y modificar Barras de Herramientas Personalizadas.  Conocerá y aplicará el procedimiento para crear y modificar Menús Personalizados.  Creará Barras y Menús personalizados para alojar sus macros y logrando así que sus aplicaciones sean más personalizadas.
  • 32. MÓDULO IV: BARRAS Y MENÚS PERSONALIZADOS AUTOMATIZACIÓN DE HOJAS DE CÁLCULO EN EXCEL 32 CENTRO NACIONAL DE CAPACITACION Y CALIDAD IMSS-SNTSS
  • 33. AUTOMATIZACIÓN DE HOJAS DE CÁLCULO EN EXCEL MÓDULO IV: BARRAS Y MENUS PERSONALIZADOS CENTRO NACIONAL DE CAPACITACION Y CALIDADIMSS-SNTSS 33 INTRODUCCIÓN No es necesario utilizar Visual Basic para crear Barras de Herramientas o Menús Personalizados en EXCEL. Crear y modificar Barras de Herramientas y Menús 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 colección de macros, quizá desee diseñar una Barra de Herramientas o un Menú personalizados sólo para ejecutar sus macros. Una forma profesional de trabajar Excel Para dar una mejor presentación a sus libros de trabajo, este Capítulo es el adecuado, ya que en él usted aprenderá a crear menús personalizados e incluso crear sus propios menús para una aplicación en especial, y así poder evitar que el usuario seleccione otras opciones ajenas a la aplicación. 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 diálogo 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 añadir a la barra creada botones que ejecuten macros, deberán arrastrarse los nombres de las macros desde la pestaña Comandos del cuadro de diálogo 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 sección Categorías busque y elija Macros  En el cuadro Comandos: Clic sostenido en Personalizar Botón y arrástrelo 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 Botón  Clic en Modificar Selección del cuadro Personalizar  Clic en Imagen y texto B. Cambiar texto de botones  Seleccionar Botón  Clic en Modificar Selección del cuadro Personalizar  Nombre: Teclear el nombre deseado para el Botón  Enter o clic fuera del menú. C. Cambiar imagen del botón  Seleccionar Botón  Clic en Modificar Selección del cuadro Personalizar  Cambiar imagen del Botón Seleccionar la imagen deseada.
  • 34. MÓDULO IV: BARRAS Y MENÚS PERSONALIZADOS AUTOMATIZACIÓN DE HOJAS DE CÁLCULO EN EXCEL 34 CENTRO NACIONAL DE CAPACITACION Y CALIDAD IMSS-SNTSS D. Asignar una macro a un botón  Seleccionar Botón  Clic en Modificar Selección del cuadro Personalizar  Asignar macro… En el cuadro de Diálogo que aparece Seleccionar la Macro deseada  Aceptar Nota: Después de cerrar el cuadro Personalizar podrá ejecutar cualquier macro asignada a la barra dando un clic en el botón respectivo. 4.3 CREAR UN MENU PERSONALIZADO  Clic en el menú Ver > Barras de herramientas > Personalizar ...  Seleccione la ficha Comandos  En la sección Categorías busque y elija Nuevo menú.  En la sección Comandos: Clic sostenido en Nuevo menú, y arrástrelo a la derecha del menú Ventana. Dar nombre al Nuevo Menú  Clic en el Botón Modificar selección  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 sección Categorías busque y elija Macros.  Comandos: Elija Personalizar elemento de menú.  Clic sostenido en Personalizar elemento de menú y arrástrelo hacia su menú que acaba de crear y suéltelo por debajo de él. A B C D
  • 35. AUTOMATIZACIÓN DE HOJAS DE CÁLCULO EN EXCEL MÓDULO IV: BARRAS Y MENUS PERSONALIZADOS CENTRO NACIONAL DE CAPACITACION Y CALIDADIMSS-SNTSS 35 Dar nombre al nuevo elemento de menú  Clic en el Botón: Modificar selección  Nombre : Teclee el nombre para el elemento de menú 4.5 ASIGNAR MACROS A MENÚ PERSONALIZADO  Clic en el Botón: Modificar selección  Asignar macro..: Seleccione el nombre de la macro  Aceptar, Cerrar 4.6 SUBMENÚS  Clic en el menú Ver > Barras de herramientas > Personalizar…  Seleccione la ficha Comandos  En la sección Categorías elija Nuevo menú  En la sección Comandos: Clic sostenido sobre Nuevo menú, arrástrelo hacia el menú que acaba de crear y colóquelo debajo de él.  Clic en el Botón Modificar selección  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 módulo. Eliminar menús  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 arrástrelo hacia la hoja de calculo  Cerrar Subrayar letras en menús  Menú Ver > Barras de herramientas > Personalizar ...  Elija la pestaña Comandos  Seleccione el menú al cual desea subrayarle una letra  Clic en el Botón Modificar selección  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 menús  Menú Ver > Barras de herramientas > Personalizar ...  Elija la pestaña Comandos  En la Barra de Menús seleccione el menú o submenú que desea modificar (de los que acaba de crear, luego seleccione Modificar selección)  Realice los cambios, agregue o elimine elementos  Cerrar Ejercicio Elabore sus propias macros y genere una Barra y un Menú Personalizados.
  • 36. MÓDULO V: CUADROS Y HOJAS DE DIÁLOGO AUTOMATIZACIÓN DE HOJAS DE CÁLCULO EN EXCEL 36 CENTRO NACIONAL DE CAPACITACION Y CALIDAD IMSS-SNTSS MMóódduulloo VV CCuuaaddrrooss yy HHoojjaass ddee DDiiáállooggoo Objetivos Especificos: Al finalizar el módulo el participante:  Conocerá y diseñará Cuadros y Hojas de Diálogo.  Creará aplicaciones con macros controladas desde una Hoja de Diálogo.
  • 37. AUTOMATIZACIÓN DE HOJAS DE CÁLCULO EN EXCEL MÓDULO V: CUADROS Y HOJAS DE DIÁLOGO CENTRO NACIONAL DE CAPACITACION Y CALIDADIMSS-SNTSS 37
  • 38. MÓDULO V: CUADROS Y HOJAS DE DIÁLOGO AUTOMATIZACIÓN DE HOJAS DE CÁLCULO 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 Diálogo y Hojas de Diálogo que nos ofrece Excel. Después de haber creado y elaborado una serie de Macros y Cuadros de Diálogo, usted necesitara manejar todas sus macros desde una Hoja especial de Diálogo. Esta opción nos permite ejecutar Macros que utilizan una hoja de Diálogo para una mejor presentación de sus aplicaciones en pantalla. 5.1 CUADROS DE DIÁLOGO Para crear un Cuadro de Diálogo 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 diálogo nos permite ejecutar nuestra Hoja de Diálogo, Tendrá que hacer una macro para poder ejecutar la Hoja de Diálogo en cualquier parte del libro. 5.2 APLICACIÓN Y PROGRAMACIÓN DE CONTROLES EN UN CUADRO DE DIÁLOGO: Agregar elementos a un “Cuadro Combinado”  En su libro de trabajo nombre una hoja como HOJA DE DATOS (Todos los objetos estarán 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 delegación que seleccione en el cuadro, este valor lo tendrá después que buscar usando BuscarV para saber a que delegación 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á después que buscar usando BuscarV para saber a que puesto pertenece)  Aceptar Agregar valores a un “Control de número”  Cree un control de número en las celdas F10:F12  Clic derecho sobre el control de número  Formato de control ...  Valor actual: El valor que tendrá por default el objeto (200)  Valor mínimo: El valor mínimo para este objeto (50)  Valor máximo: El valor máximo 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
  • 39. AUTOMATIZACIÓN DE HOJAS DE CÁLCULO EN EXCEL MÓDULO V: CUADROS Y HOJAS DE DIÁLOGO 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 mínimo: El valor mínimo para este objeto (10)  Valor máximo: El valor máximo 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 botón del centro (5)  Vincular con la celda: La celda donde tendremos el valor del objeto (Teclee G2)  Aceptar 5.3 APLICACIÓN DE MACROS EN UNA HOJA DE DIÁLOGO INSERTAR HOJA DE DIALGO  Clic derecho con el Mouse sobre el nombre de una Hoja en su libro de trabajo  Clic en Insertar...  Seleccione Diálogo 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 Diálogo de clic sobre el icono Ejecutar cuadro de diálogo 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 “Delegación” En A5 Teclee “Puesto” En A6 Teclee “Nivel” En A7 Teclee “Sueldo”  En la hoja de Diálogo vincule todos los objetos con la hoja Captura de datos y la Hoja de datos. Use la función de Buscarv para conocer en la hoja Captura de Datos la Delegación y el Puesto que seleccione en su Hoja de Diálogo.  Genere una macro para ejecutar su Hoja de Diálogo. Nombre de la Macro: Dialogo Colocarse en la hoja que contiene el diseño del diálogo: Nota: Esta macro es la que ejecutará la Hoja de Diálogo (no olvide el método abreviado que asignó)  Colóquese en la hoja Captura de datos y ejecute su macro SECUENCIA DE GRABACION: CÓDIGO VISUAL; 1. Clic sobre el icono ejecutar Cuadro de Diálogo, 2. Aceptar 3. Finalizar Grabación Sub DIALOGO() ' DIALOGO Macro ' Macro grabada el 09/07/2007 por CNCYC ' DialogSheets("Diálogo1").Show End Sub
  • 40. MÓDULO V: CUADROS Y HOJAS DE DIÁLOGO AUTOMATIZACIÓN DE HOJAS DE CÁLCULO EN EXCEL 40 CENTRO NACIONAL DE CAPACITACION Y CALIDAD IMSS-SNTSS Ocultar Hoja de Diseño de Diálogo Al terminar de diseñar el diálogo de Excel, y éste se encuentra funcionando a la perfección, deberá crear la macro que accede a dicho diálogo. Después de esto, la hoja en que se diseñó el diálogo de Excel no tiene mayor interés para el usuario de éste cuadro de diálogo por lo que deberá ocultarse para no permitir que otra persona pueda alterar el diseño de nuestro diálogo. Para ocultarla siga éste procedimiento:  Seleccione la pestaña que contiene el nombre de la hoja de diálogo que usted diseñó.  En la barra de menús, en el menú Formato, haga clic en el submenú Columna en la opción Ocultar.  Si desea volver a mostrar dicha hoja, haga clic en la opción Mostrar. A continuación aplicará el Dialogo diseñado 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. Edición > Pegado Especial  Valores  Transponer Aceptar 10. ESC 11. F5 - A1 - Enter 12. Finalizar Grabación 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
  • 41. AUTOMATIZACIÓN DE HOJAS DE CÁLCULO EN EXCEL ANEXOS CENTRO NACIONAL DE CAPACITACION Y CALIDADIMSS-SNTSS 41 AAnneexxooss En éste apartado se describen los procedimientos de grabación, códigos y modificaciones de código para cada uno de los ejercicios realizados durante el curso como una guía de apoyo didáctico para el participante. Le invitamos a consultarlos si le es necesario al realizar sus ejercicios.
  • 42. ANEXOS AUTOMATIZACIÓN DE HOJAS DE CÁLCULO EN EXCEL 42 CENTRO NACIONAL DE CAPACITACION Y CALIDAD IMSS-SNTSS
  • 43. AUTOMATIZACIÓN DE HOJAS DE CÁLCULO 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 grabación: 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 Grabación Código 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 código ya modificado con la instrucción 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 MATRÍCULA 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
  • 44. ANEXOS AUTOMATIZACIÓN DE HOJAS DE CÁLCULO EN EXCEL 44 CENTRO NACIONAL DE CAPACITACION Y CALIDAD IMSS-SNTSS EJERCICIO 2: Crear una macro para capturar MATRÍCULA, NOMBRE, CATEGORIA, SUELDO, NIVEL ACADEMICO Y EDO. CIVIL del trabajador en el rango de B2:B7, después 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 grabación: 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 ACADÉMICO - 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. Edición > Copiar (CTRL+C) 10. F5 - A9 - Enter 11. FIN   12. Edición > Pegado Especial  Valores  Transponer Aceptar. 13. ESC 14. F5 - A1 - Enter
  • 45. AUTOMATIZACIÓN DE HOJAS DE CÁLCULO EN EXCEL ANEXOS CENTRO NACIONAL DE CAPACITACION Y CALIDADIMSS-SNTSS 45 Código 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 Código Visual Basic modificado: El código ya modificado con la instrucción 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("TECLEANIVELACADEMICO") 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
  • 46. ANEXOS AUTOMATIZACIÓN DE HOJAS DE CÁLCULO EN EXCEL 46 CENTRO NACIONAL DE CAPACITACION Y CALIDAD IMSS-SNTSS EJERCICIO 3: Crear una macro para generar una factura. La macro genera el número 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 Dirección. 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 función =HOY() y en D2 la función =AHORA() con formato de hora.  Para generar el consecutivo de la factura colocar un número 1 en la celda F1.  Para el cálculo del total de la factura colocar en F16 la formula: =SUMA(F8:F15) SECUENCIA DE GRABACIÓN: 1. F5 - A1 - Enter 2. F5 - CLIENTE - Enter 3. SUPR 4. F5 - PRODUCTOS - Enter 5. SUPR 6. F5 - F1 - Enter 7. CTRL+C 8.  Edición > Pegado Especial  Valores  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 ARTÍCULO - 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. Edición > Pegado Especial  Valores  Sumar Aceptar 25. ESC 26. F5 - A1 – Enter 27. Detener Grabación
  • 47. AUTOMATIZACIÓN DE HOJAS DE CÁLCULO EN EXCEL ANEXOS CENTRO NACIONAL DE CAPACITACION Y CALIDADIMSS-SNTSS 47 Código 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 Código Visual Basic modificado: El código ya modificado con la instrucción 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
  • 48. ANEXOS AUTOMATIZACIÓN DE HOJAS DE CÁLCULO 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 grabación y código son similares al ejercicio 1 como a continuación 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 GRABACIÓN: 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 Grabación Código 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 Código Visual Basic modificado: El código 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 MATRÍCULA 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
  • 49. AUTOMATIZACIÓN DE HOJAS DE CÁLCULO 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 están bien los datos, si están mal que los vuelva a pedir, si están 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 grabación y código son similares al ejercicio 2 como a continuación 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 GRABACIÓN: 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 ACADÉMICO - 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. Edición > Copiar (CTRL+C) 10. F5 - A9 - Enter 11. FIN   12. Edición > Pegado Especial  Valores  Transponer Aceptar. 13. ESC 14. F5 - A1 - Enter 15. Detener Grabación Código 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
  • 50. ANEXOS AUTOMATIZACIÓN DE HOJAS DE CÁLCULO EN EXCEL 50 CENTRO NACIONAL DE CAPACITACION Y CALIDAD IMSS-SNTSS Código Visual Basic modificado El código 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
  • 51. AUTOMATIZACIÓN DE HOJAS DE CÁLCULO EN EXCEL ANEXOS CENTRO NACIONAL DE CAPACITACION Y CALIDADIMSS-SNTSS 51 EJERCICIO 6: Crear una macro para llenar esta factura. La macro genera el número 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 dirección. luego nos pide comprobar si los datos del cliente son correctos, si están mal que nos vuelva a pedir los datos, si están 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 grabación y código son similares al ejercicio 3 como a continuación 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 función =HOY() y en D2 la función =AHORA() con formato de hora. Para generar el consecutivo de la factura colocar un número 1 en la celda F1. Para el cálculo del total de la factura colocar en F16 la formula: =SUMA(F8:F15) SECUENCIA DE GRABACIÓN: 1. F5 - A1 - Enter 2. F5 - F1 - Enter 3. CTRL+C 4.  Edición > Pegado Especial  Valores  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 ARTÍCULO - 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. Edición > Pegado Especial  Valores Sumar Aceptar 25. ESC 26. F5 - A1 - Enter 27. Detener Grabación
  • 52. ANEXOS AUTOMATIZACIÓN DE HOJAS DE CÁLCULO EN EXCEL 52 CENTRO NACIONAL DE CAPACITACION Y CALIDAD IMSS-SNTSS Código 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 Código Visual Basic Modificado El código 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 MÁS 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
  • 53. AUTOMATIZACIÓN DE HOJAS DE CÁLCULO 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 deberán definirse antes de grabar cada una de las macros. Los códigos de las macros asignadas a cada botón 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
  • 54. ANEXOS AUTOMATIZACIÓN DE HOJAS DE CÁLCULO 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 almacén. 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 código de la macro que agrega nuevos productos al almacén ya modificado queda de la forma siguiente: Sub NUEVO() ' NUEVO - Macro que permite agregar nuevos productos al almacén. 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
  • 55. AUTOMATIZACIÓN DE HOJAS DE CÁLCULO 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 búsqueda 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 código ya modificado de la macro que actualiza existencias en almacén 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
  • 56. ANEXOS AUTOMATIZACIÓN DE HOJAS DE CÁLCULO 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 búsqueda de un producto utilizando la clave o el nombre del mismo. La clave y nombre se deberá pedir a través de un Input Box. Colocar antes en G17, G18 Y G19 fórmulas para la búsqueda 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 código ya modificado de la macro para búsquedas en almacén queda de la forma siguiente: Sub BUSQUEDA() ' Macro para realizar BUSQUEDAS en almacén. 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
  • 57. AUTOMATIZACIÓN DE HOJAS DE CÁLCULO 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 almacén. Si no es así deberá crearlo. B.) Crear fórmulas de búsqueda 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 búsqueda: =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 código 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