Professional Documents
Culture Documents
de
Informática
Automatización
de Hojas de
Cálculo en Excel
Manual del
Participante
AUTOMATIZACIÓN DE HOJAS DE CÁLCULO EN EXCEL PRESENTACION
Índice:
Presentación ..................................................................................................................................... 5
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
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
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
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
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
Comentarios .................................................................................................................................... 61
Presentación
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.
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.
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.
Módulo I
Funciones
de
Usuario
Objetivo Específico:
Al finalizar el módulo el participante:
Para crear una función de usuario necesita insertar una Colocarse en el Editor de Visual Basic
hoja de Módulo de Visual Basic en su libro de trabajo. (Herramientas > Macro > Editor de Visual Basic)
Para hacerlo proceda como se le indica a continuación: donde se encuentra la función
Marcar código de la función
Insertar Módulo de Visual Basic: Eliminarlo
Clic en el menú Herramientas > Macro > Editor
de Visual Basic 1.5 PROGRAMACION ESTRUCTURADA.
Clic en el menú Insertar > Módulo La programación estructurada en sus inicios fue desa
rrollada por Edgar W. Dijkstra y se basa en el teorema de
Teclear código de la función
la estructura desarrollado en 1966 por Böhm y Jacopini.
Volver a la hoja de calculo Éste teorema establece que un programa propio puede
ser escrito utilizando sólo las siguientes estructuras
Nota: Todas las funciones se generan con código de lógicas de control: Secuenciales, Selectivas y
Excel Visual Basic Repetitivas. Un programa se define como propio
cuando cumple con los siguientes requerimientos:
1.2 SINTAXIS DE UNA FUNCIÓN.
Tiene exactamente una entrada y una salida para
La creación de cualquier función de usuario en Excel control del programa.
siempre deberá obedecer los lineamientos que marca
la siguiente:
Existen caminos a seguir desde la entrada hasta la
salida que conducen por cada parte del programa,
Sintaxis: es decir, no existen lazos infinitos ni instrucciones
que no se ejecutan.
Function Nombre_de_funcion(Arg1,-Arg 2, ...Arg N)
La Programación Estructurada permite codificar un
Cuerpo de la función programa en común acuerdo con las reglas siguientes:
End Function
El programa parte de un diseño modular.
Los módulos son diseñados de forma descendente.
1.3 COMO EJECUTAR UNA FUNCION Cada módulo integra en su código las tres
estructuras de control básicas. Secuenciales,
De forma predeterminada, una función definida por el
Selectivas y Repetitivas.
usuario se limita en ámbito al libro en el que reside la
La ventaja de utilizar éste tipo de programación radica en según sea el resultado de dicha condición. Cuando sólo
que las instrucciones son fáciles de leer, comprender y se requiere de la ejecución de acciones al cumplirse la
codificar permitiendo aprovechar al máximo los recursos condición especificada (alternativa simple), la sentencia
de la computadora IF tiene la siguiente sintaxis.
Ejemplo 3:
IF condición Then
Instrucción 1 „ FUNCIÓN PARA ASIGNAR CALIFICATIVOS
Instrucción 2
Function CALIFICATIVO(CALIFICACION)
Instrucción n
If CALIFICACION < 6 Then
ElseIf condición Then CALIFICATIVO = "SOBORNA AL MAESTRO"
Instrucción 1 ElseIf CALIFICACION >= 6 And CALIFICACION <= 6.5 Then
Instrucción 2 CALIFICATIVO = "APENITAS"
Instrucción n ElseIf CALIFICACION > 6.5 And CALIFICACION <= 7.5 Then
ElseIf condición Then CALIFICATIVO = "REGULAR"
Instrucción 1 ElseIf CALIFICACION > 7.5 And CALIFICACION <= 8.5 Then
Instrucción 2 CALIFICATIVO = "BIEN"
Instrucción n ElseIf CALIFICACION > 8.5 And CALIFICACION <= 9.5 Then
Else condición Then CALIFICATIVO = "MUY BIEN"
Instrucción 1 ElseIf CALIFICACION > 9.5 And CALIFICACION <= 10 Then
Instrucción 2 CALIFICATIVO = "GENIO"
Instrucción n Else
End If CALIFICATIVO = "NO TE PASES"
End If
Ejemplo 1: End Function
Módulo II
Macros
Objetivo Especifico:
Al finalizar el módulo el participante:
Utilizando macros, automatizar las tareas que son repetitivas en sus hojas de
cálculo.
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.
Para crear una macro, active simplemente el En los dos nuevos iconos que aparecen, Clic en
registrador de macros; ejecute la secuencia de tareas Referencia Relativa
que desea registrar, y luego desactive el registrador de (Note como este icono se ACTIVA Y SE DESACTIVA,
macros. Cuando registre la macro, las órdenes son esto nos indica si la macro va a ser Relativa o
traducidas automáticamente al lenguaje Visual Basic y Absoluta, para que sea relativa el icono debe de estar
almacenadas en una hoja de módulo separada de su ACTIVADO (oprimido))
libro de trabajo. Detener la macro (Clic en Detener grabación, ó
Menú Herramientas, Macro, Detener grabación)
Registro de Macros
Antes de registrar una macro, necesita planificar
Ejemplos
exactamente lo que desea que haga la macro, y en qué Ejemplo 1
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
Crear una macro para un Título
pensar en un nombre y una descripción para la macro Colocarse en la celda para el título
que identifique exactamente lo que ésta hace.
y asignar la macro al botón. De esta forma, puede 2.6 MODIFICAR UNA MACRO
pulsar el botón para ejecutar la macro, en lugar de
utilizar una orden de menú. Incluso puede acceder a la Editar la macro
macro a través del menú que debería necesitar. Realizar los cambios adecuados
Pasar a la hoja de trabajo
Colocar un botón a una macro
Deben de existir macros Para modificar sus macros usaremos código de
Excel Visual Basic
Mostrar la familia de iconos de la barra de
herramientas Formularios
2.7 INSTRUCCIONES VISUAL BASIC
Seleccione el icono Botón
PARA MODIFICACION DE MACROS
Trace un botón en su
hoja de calculo del Instrucción InputBox:
tamaño de una celda
Muestra un mensaje en un cuadro de diálogo, espera
Al soltar el botón del que el usuario escriba un texto o haga clic en un botón y
Mouse aparece su lista devuelve un tipo String con el contenido del cuadro de
de macros texto.
Seleccione la macro que
quiere para su botón Sintaxis: Variable=Inputbox(“Mensaje”)
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
Sub TITULO( )
Modificar su botón ActiveCell.FormulaR1C1 = "CENTRO NACIONAL"
Clic derecho con su Mouse sobre el botón ActiveCell.Columns("A:A").EntireColumn.EntireColumn.AutoFit
Realice los cambios necesarios. End Sub
2.5 ASIGNAR MACRO A UN OBJETO GRAFICO Código de la Macro TITULO modificado con la instrucción
INPUTBOX y una variable llamada NOMBRE
Tener el gráfico en la hoja (Clic en el menú Insertar >
Imagen > Imágenes prediseñadas, Sub TITULO()
Seleccione una Imagen e Insértela, modifique el NOMBRE = InputBox("TECLEA EL NOMBRE QUE DESEAS")
tamaño si la imagen es muy grande)
ActiveCell.FormulaR1C1 = NOMBRE
Clic derecho sobre el gráfico > Asignar macro ...
ActiveCell.Columns("A:A").EntireColumn.EntireColumn.AutoFit
Seleccionar nombre de la macro : TITULO End Sub
Aceptar
En pantalla aparecerá el siguiente cuadro:
EJERCICIO 1
Genere una macro para capturar MATRICULA, NOMBRE,
PUESTO Y SUELDO en una Base de Datos como se
muestra en el siguiente Ejemplo.
Sub CAPTURA()
NOMBRE DE LA MACRO: CAPTURA
Application.Goto Reference:="R1C1"
TIPO: RELATIVA Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Range("A1").Select
1.- F5 – A1 – Enter
MATRICULA = InputBox("Teclea la Matrícula del Trabajador")
Sintaxis: Sintaxis:
Variable = Msgbox(“Mensaje”,VBYesNo)
DO WHILE
Instrucciones
LOOP
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
EJERCICIO 3:
ActiveCell.Offset(0, 1).Range("A1").Select Crear una macro para generar una factura. La macro
genera el número consecutivo de la factura; limpia los
NOMBRE = InputBox("Teclea el nombre del Trabajador")
datos del cliente anterior y todos los productos que se
ActiveCell.FormulaR1C1 = NOMBRE llevó; luego, pide el Nombre del Cliente, así como su
ActiveCell.Offset(0, 1).Range("A1").Select Dirección. Enseguida ingresa el nombre del producto,
PUESTO = InputBox("Teclea el Puesto del Trabajador") el precio, la cantidad, y realiza operaciones para calcular
el subtotal, el IVA y Total, y los suma al total a pagar. Al
ActiveCell.FormulaR1C1 = PUESTO final este total a pagar lo acumula en un total global.
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
EJERCICIO 5: EJERCICIO 6:
Crear una macro que nos pida MATRICULA, NOMBRE, Crear una macro para llenar esta factura. La macro
genera el número consecutivo de la factura; limpia los
CATEGORIA, SUELDO, NIVEL ACADEMICO y datos del cliente anterior y todos los productos que se
ESTADO CIVIL del trabajador y los coloque en el llevó; luego, pide el nombre del cliente, así como su
rango B2:B7, luego que nos pida comprobar si están dirección. luego nos pide comprobar si los datos del
cliente son correctos, si están mal que nos vuelva a
bien los datos, si están mal que los vuelva a pedir, si
pedir los datos, si están bien que avance para ingresar
están bien que los copie y los coloque al final de la el nombre del Producto, el Precio, la Cantidad, y realiza
lista, y al terminar nos pregunte si deseamos seguir operaciones para calcular el Subtotal, el IVA y Total, al
llegar al total individual nos pregunte si deseamos mas
capturando mas datos, si contestamos que si, que nos
productos para este cliente, si contestamos que si, que
pida nuevamente los datos para capturar, pero si nos vuelva a pedir producto, precio y cantidad, si
contestamos que no, que termine la macro. 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 2)
(Figura igual al Ejercicio 3)
Módulo III
Aplicación
de Macros
Objetivos Especificos:
Al finalizar el módulo el participante:
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
En esta hoja el participante realizará una macro para 11. Teclear NOMBRE del cliente - Enter
facturar los productos que está vendiendo, al hacer clic 12. - Teclear DIRECCION del cliente- Enter
en el botón de la macro, la macro deberá de generar el 13. - F5 - A7- Enter
número consecutivo de la factura, borrar los datos del
14. FIN
cliente y los productos vendidos en la factura anterior,
pedir el nombre del nuevo cliente, pedir la dirección, 15. Teclear CLAVE – Enter
solicitar la clave del producto a vender, después de dar 16. = BUSCARV(,PRODUCTOS,2,FALSO)
la clave, la computadora deberá decirnos que producto - Enter
es y el precio, después nos pedirá la cantidad del 17. =BUSCARV(,PRODUCTOS,3,FALSO)
producto a vender, realizará las operaciones -Enter
necesarias para calcular el Subtotal, IVA y Total, y 18. Teclear CANTIDAD a vender- Enter
restará en la hoja almacén la cantidad vendida de este 19. Edición > Copiar (ó CTRL +C)
producto. Enseguida preguntará si deseamos agregar
20. F5 – INICIO_ALMACEN - Enter
mas productos, si contestamos que si repetirá el
mismo proceso (a partir de la clave del producto ya que 21. Edición > Buscar > Teclear la Clave
es el mismo cliente), en caso contrario, sumará al gran Opciones: Dentro de: Hoja;
total el total de esta factura para tener un total general. Buscar: Por Columnas
Buscar dentro de: Valores
Procedimiento para generar las facturas: Coincidir con el contenido de toda la celda.
Los nombres de rango: PRODUCTOS (Hoja Almacén Buscar siguiente > Cerrar
A2:D503), ARTS_VENDIDOS (A9:G19); y CLIENTE (B4:B5) 22. - Edición > Pegado Especial
son nombres que tiene que definir anterioridad. Valores Restar Aceptar
Además deberá poner un 1 en la celda F1 para 23. Esc
inicializar el contador del consecutivo. 24. F5 - INICIO_FACTURAS - Enter
Procedimiento de Grabación: 25. F5 - A7 Enter
26. FIN -
1. F5 – INICIO_FACTURAS - Enter
27. = * Enter
2. F5 - F1 - Enter
28. = * 15% Enter
3. CTRL+C
29. = + Enter
4. - Edición > Pegado especial
Valores - Sumar - Aceptar 30. F5 - G20 - Enter
5. Esc 31. Edición > Copiar (ó CTRL + C)
6. F5 - ARTS_VENDIDOS (Nombre de rango que 32. F5 – I2 - Enter
debió haber sido creado previamente) – Enter 33. Edición > Pegado Especial
7. Supr Valores Sumar Aceptar
8. F5 - CLIENTE (Nombre de rango que debió haber 34. Esc
sido creado previamente) – Enter 35. F5 - A1 - Enter
9. Supr 36. Detener Grabación
10. F5 - B4 - Enter
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.
Módulo IV
Barras y Menús
Personalizados
Objetivos Específicos:
Al finalizar el módulo el participante:
Creará Barras y Menús personalizados para alojar sus macros y logrando así que sus
aplicaciones sean más personalizadas.
D. Asignar una macro a un botón En la sección Categorías busque y elija Nuevo menú.
Dar nombre al nuevo elemento de menú Clic sostenido sobre el elemento que desea quitar
y arrástrelo hacia la hoja de calculo
Clic en el Botón: Modificar selección
Cerrar
Nombre : Teclee el nombre para el elemento de menú
Subrayar letras en menús
4.5 ASIGNAR MACROS A
Menú Ver > Barras de herramientas >
MENÚ PERSONALIZADO Personalizar ...
Clic en el Botón: Modificar selección Elija la pestaña Comandos
Asignar macro..: Seleccione el nombre de la Seleccione el menú al cual desea subrayarle una
macro letra
Aceptar, Cerrar Clic en el Botón Modificar selección
Nombre: Clic en el nombre del menú que aquí
4.6 SUBMENÚS aparece, coloque el cursor a la izquierda de la letra
que desea subrayar y coloque un ampersand (&)
Clic en el menú Ver > Barras de herramientas >
Personalizar… Enter, Cerrar
Seleccione la ficha Comandos
Modificar menús
En la sección Categorías elija Nuevo menú
En la sección Comandos: Clic sostenido sobre Menú Ver > Barras de herramientas >
Nuevo menú, arrástrelo hacia el menú que acaba Personalizar ...
de crear y colóquelo debajo de él. Elija la pestaña Comandos
Clic en el Botón Modificar selección En la Barra de Menús seleccione el menú o
Nombre: Teclear el nombre para el submenú submenú que desea modificar (de los que acaba
de crear, luego seleccione Modificar selección)
Enter
Realice los cambios, agregue o elimine elementos
Nota: Para agregar elementos de menú al submenú Cerrar
creado y asignarle Macros utilizar los procedimientos
mencionados antes en éste mismo módulo. Ejercicio
Eliminar menús Elabore sus propias macros y genere una Barra y un
Menú Personalizados.
Clic en el menú Ver > Barras de herramientas >
Personalizar ...
Comandos
Clic en el menú que desea eliminar
Módulo V
Cuadros y
Hojas de Diálogo
Objetivos Especificos:
Al finalizar el módulo el participante:
INTRODUCCION
Una forma distinta de manejar las macros en sus libros Rango de Entrada: Teclee las coordenadas del
del trabajo es utilizando las opciones de Cuadros de rango donde se encuentran las delegaciones que
Diálogo y Hojas de Diálogo que nos ofrece Excel. tecleo.
Vincular con la celda: Teclee B2
Después de haber creado y elaborado una serie de
Macros y Cuadros de Diálogo, usted necesitara (En esta celda el objeto nos devolverá un valor de
manejar todas sus macros desde una Hoja especial de la delegación que seleccione en el cuadro, este
Diálogo. Esta opción nos permite ejecutar Macros que valor lo tendrá después que buscar usando
utilizan una hoja de Diálogo para una mejor BuscarV para saber a que delegación pertenece)
presentación de sus aplicaciones en pantalla. Aceptar
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
Sub DIALOGO()
' DIALOGO Macro
1. Clic sobre el icono ejecutar Cuadro de Diálogo,
' Macro grabada el 09/07/2007 por CNCYC
2. Aceptar '
3. Finalizar Grabación DialogSheets("Diálogo1").Show
End Sub
Nota: Esta macro es la que ejecutará la Hoja de Diálogo (no olvide el método abreviado que asignó)
Anexos
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
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:
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
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"
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.
SECUENCIA DE GRABACIÓN:
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.
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"
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"
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
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"
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:
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
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
=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
=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
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:
HOJA FACTURAS:
PROCEDIMIENTO:
PRODUCTOS (Hoja Almacén A2:D503), ARTS_VENDIDOS (A9:G19); y CLIENTE (B4:B5) son nombres de rango
que tiene que definir con anterioridad. Además deberá poner un 1 en la celda F1 para inicializar el contador del
consecutivo. El código Visual ya modificado de la macro FACTURAR queda de la forma siguiente:
Sub FACTURAR()
' Macro para llenar una FACTURA
Application.Goto Reference:="INICIO_FACTURAS"
Application.Goto Reference:="R1C6"
Selection.Copy
ActiveCell.Offset(1, 0).Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlAdd, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Application.Goto Reference:="ARTS_VENDIDOS"
Selection.ClearContents
CORRECTO = vbNo
Do While CORRECTO = vbNo
Application.Goto Reference:="CLIENTE"
Selection.ClearContents
Application.Goto Reference:="R4C2"
NOMBRE = InputBox("INTRODUCE NOMBRE DEL CLIENTE")
ActiveCell.FormulaR1C1 = NOMBRE
ActiveCell.Offset(1, 0).Range("A1").Select
DIRECCION = InputBox("INTRODUCE DIRECCION DEL CLIENTE")
ActiveCell.FormulaR1C1 = DIRECCION
CORRECTO = MsgBox("LOS DATOS DEL CLIENTE ¿SON CORRECTOS?", vbYesNo)
Loop
RESPUESTA = vbYes
Do While RESPUESTA = vbYes
Application.Goto Reference:="R7C1"
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Range("A1").Select
CLAVE = InputBox("INTRODUCE LA CLAVE DEL PRODUCTO A VENDER")
ActiveCell.FormulaR1C1 = CLAVE
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-1],PRODUCTOS,2,FALSE)"
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-2],PRODUCTOS,3,FALSE)"
ActiveCell.Offset(0, 1).Range("A1").Select
CANTIDAD = InputBox("INTRODUCE LA CANTIDAD A VENDER")
ActiveCell.FormulaR1C1 = CANTIDAD
Selection.Copy
Application.Goto Reference:="INICIO_ALMACEN"
Cells.Find(What:=CLAVE, After:=ActiveCell, LookIn:=xlValues, LookAt:= _
xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Activate
ActiveCell.Offset(0, 3).Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlSubtract, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Application.Goto Reference:="INICIO_FACTURAS"
Application.Goto Reference:="R7C1"
Selection.End(xlDown).Select
ActiveCell.Offset(0, 4).Range("A1").Select
ActiveCell.FormulaR1C1 = "=RC[-2]*RC[-1]"
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = "=RC[-1]*15%"
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = "=RC[-2]+RC[-1]"
RESPUESTA = MsgBox("¿DESEAS AGREGAR OTRO PRODUCTO?", vbYesNo)
Loop
Application.Goto Reference:="R20C7"
Selection.Copy
Application.Goto Reference:="R2C9"
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlAdd, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Application.Goto Reference:="R1C1"
End Sub
Comentarios
Deseamos que el presente material de apoyo le haya facilitado el aprendizaje de los temas que componen cada
módulo de este evento y que le sea útil para futuras consultas.
Le felicitamos por haber concluido este curso de capacitación, continúe practicando; recuerde que su habilidad
dependerá del manejo cotidiano de esta paquetería.
Le invitamos a tomar el curso de Excel 2003 Intermedio, en el cual conocerá el uso de las Tablas Dinámicas,
Escenarios, Esquemas, Funciones de Bases de Datos, Solver, Buscar Objetivos, etc., dichas herramientas le
ayudarán a realizar mejor sus funciones laborales y personales, con Excel 2003 Avanzado, aprenderás a crear y
aplicar las macros de Excel, con esta herramienta podrás automatizar todos tus procesos de una manera eficaz,
atrévete a entrar al mundo maravilloso de la aplicación de las matemáticas en una hoja de cálculo.
¡Capacítate!
Bibliografía: