Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Prac 2 Excel Macros y VBA - 2

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 6

Macros y Programación

con VBA Curso de Microsoft Excel Nivel Avanzado

SEGUNDA 1.
PRÁCTICA
2.
✓ 3. a gráficos
Crear macros aplicables
✓ 4.macros
Aplicar subtotales con
OBJETIVOS
✓ Crear macros para filtros avanzados.

EJERCICIO 1. MACRO QUE PERMITE CAMBIAR A TRES TIPOS DE GRÁFICOS


Basado en un libro de macros llamado: Gráficos.xlsm, proceda a crear una macro que permita elegir o modificar
entre tres tipos de gráficos: Columna agrupada, Líneas y Columna 3D.
Para la ejecución de la macro debe insertar controles de formularios: 1 cuadro de grupo y 3 botones de opción y
poner estos últimos dentro del cuadro de grupo.
PRIMERO. REVISANDO LOS DATOS DEL LIBRO
1. Abrir el libro Gráficos.xlsm (Solicitarlo a su profesor).
2. Ir a la hoja Consulta.
3. Seleccionar un mes, por ejemplo: Abril y Nro. de medidor: IND-3536.
4. La hoja debe visualizar los siguientes datos:

SEGUNDO. CREANDO MACRO PARA MODIFICAR A UN GRÁFICO DE LINEAS (macro de ámbito local)
(Antes practique los pasos como modificar el gráfico a un gráfico de línea, a partir del el gráfico existente)
1. Ficha Programador, grupo Código, Grabar macro.
2. Nombre de la macro: Líneas.
3. Guardar macro en: Este libro.
4. Aceptar. (Empieza la grabación)
4.1. Seleccione el gráfico creado
4.2. Ficha Diseño, grupo Tipo, Cambiar tipo de gráfico.
4.3. De la lista de gráficos, clic en Línea y clic en el modelo Líneas.
Aceptar.
4.4. Seleccionar celda B20 y Detener grabación.
Ejecución de la macro
a. Cambie en forma normal a gráfico de columna agrupada.
b. ALT + F8, seleccione la macro: Líneas y Ejecutar.
c. ¿Se realizó el cambio de gráfico? ……….Debe quedar igual a la imagen anterior.
TAREA
1. Crear una macro que permita cambiar el tipo de gráfico a Columna agrupada. El nombre de la macro se debe
llamar: Columnas.
2. Crear otra macro que permita cambiar el tipo de gráfico a Columnas 3D. El nombre de la macro se debe
llamar: Columnas3D.

Instituto de Informática y Telecomunicaciones Pág. ~ 1 ~ Lic. Manuel Mendoza M.


Telf. 52 - 583000
Macros y Programación
con VBA Curso de Microsoft Excel Nivel Avanzado

TERCERO. ASOCIANDO MACROS A CONTROLES


I. Ficha Programador, grupo Controles, Clic en el botón Insertar, elija:
Cuadro de grupo.
II. Inserte tres botones de opción dentro del cuadro de grupo.
III. Cambiar el nombre de cada botón, tal como se aprecia a
continuación

IV. Debe asociar cada macro a los botones de acuerdo a los nombres de cada botón
Ejecución de los botones de opción
Cuando haga clic en cada uno de los gbotones Columnas, luego en Líneas y luego en Columna 3D, las
imágenes deben similares tal como se aprecia a continuación.

Guarde el libro.

EJERCICIO 2. MACROS QUE PERMITEN APLICAR DIVERSOS SUBTOTALES.


Basado en un libro llamado: Documentación.xlsm, proceda a crear tres macros que permita calcular subtotales
por continente, por país y por trámite; y una macro que permita quitar subtotales o restablecer la tabla.
Antes debe recordar los pasos para crear subtotales considerando que primero debe realizar una ordenación de
acuerdo al campo a subtotalizar.
MACRO PARA SUBTOTALES POR CONTINENTE (macro de ámbito local)
1. Abra el libro Documentación.xlsm. Solicítelo a su profesor
2. Ficha Programador, grupo Código, Grabar macro.
3. Nombre de la macro: PorContinente.
4. Guardar macro en: Este libro.
5. Aceptar. (empieza la grabación)
5.1. Clic en cualquier celda de la columna
Continente.
5.2. Ordene en forma ascendente dicha
columna
5.3. Ficha Datos, grupo Esquema, clic en Subtotal.
5.4. Configure la ventana similar a la imagen de la izquierda. Aceptar.
5.5. Del nivel de esquema pulse el nivel 2.
5.6. Clic en Detener grabación.
PROBANDO LA MACRO
1. Clic dentro del cuadro del sub total obtenido
2. Debe restablecer la tabla haciendo clic en Quitar todos.
3. Clic en cualquier parte de la columna o campo Item.

4. Clic en el botón Ordenar,


active la casilla Mis datos
tienen encabezados,
ordenar por Item y de menor a mayor.
5. Pulsar ALT + F8. Seleccione la macro: PorContinente. ¿Se ejecutó correctamente la macro? ………………………

Instituto de Informática y Telecomunicaciones Pág. ~ 2 ~ Lic. Manuel Mendoza M.


Telf. 52- 583000
Macros y Programación
con VBA Curso de Microsoft Excel Nivel Avanzado

MACRO PARA QUITAR SUB TOTALES (macro de ámbito local)


Para evitar realizar los pasos para quitar los subtotales cada vez que
desee ejecutar las macros de subtotales y restablecer la tabla tal como
estaba originalmente, proceda a crear una macro llamada:
QuitarSubTotal.
1. Asegúrese de estar ubicada en la celda A9 (campo Item) para
trabajar con la tabla.
2. Ficha Programador, grupo Código, Grabar macro.
3. Nombre de la macro: QuitarSubTotal. En Este libro. Aceptar.
4. Ficha Datos, grupo Esquema, Subtotal y clic en Quitar todos.
5. Clic en el botón Ordenar (obligatorio)
6. Active la casilla: Mis datos tienen encabezados, en el cuadro
Ordenar elija Item y en criterio de ordenación sea: De menor a mayor. Aceptar.
7. Detener grabación.

TAREA
1. Quite primero los subtotales y crear una macro de ámbito local que permita obtener subtotales por País.
Nombre de la macro: PorPais.
2. Quite nuevamente los subtotales y crear una macro de ámbito local que permita obtener subtotales por
Trámite. Nombre de la macro: PorTramite.

ASOCIAR LAS MACROS A CONTROLES


Debe asociar las cuatro macros a controles de formulario.
1. Inserte un control de formulario llamado: Cuadro de grupo, e inserte cuatro controles de formulario
llamados: Botón de opción.:
2. Cambie los nombres de los controles, debiendo quedar similar a imagen siguiente:

3. Ahora debe asociar cada botón con las respectivas macros creadas.
4. Pruebe cada uno de los botones:
4.1. Clic en botón Continente. Funcionó el botón?...............
4.2. Clic en Quitar todos…, Funcionó correctamente?.........
4.3. Clic en botón País. Funcionó?............
4.4. Aplique Quitar todos….
4.5. Clic en el botón Trámite.

MEJORANDO LAS TRES PRIMERAS MACROS


Cada vez que desea obtener subtotales, primero debe aplicar Quitar todos. Este paso se puede obviar
modificando cada macro y escribiendo en cada una de ellas, una instrucción que llame a la macro:
QuitarSubTotal.
1. Pulse ALT + F11, para ingresar al editor de VBA.
2. En el Explorador de proyectos, despliegue el contener Módulos y
doble clic en Módulo1
3. Ubique la macro Sub PorContinente() y debajo de ésta línea,
escriba la siguiente instrucción:
Call QuitarSubTotal
4. Repita el paso 3 pero para las macros PorPais y PorTramite, escribiendo la misma instrucción justo debajo
del nombre de cada macro.
Comprobando las macros
Simplemente haga clic en botón Continente, luego en País y clic en Trámite.

Instituto de Informática y Telecomunicaciones Pág. ~ 3 ~ Lic. Manuel Mendoza M.


Telf. 52- 583000
Macros y Programación
con VBA Curso de Microsoft Excel Nivel Avanzado

MEJORAR EL RENDIMIENTO DE LA MACRO QUITAR TOTALES


Como puede apreciar, cada vez que ejecuta los botones por continente, por país y por trámite, existe un
molestoso parpadeo o refresco de la pantalla mientras se ejecutan las macros. Para evitar dicho refresco de
pantalla se debe escribir una instrucción especial justo debajo del nombre de la macro QuitarSubTotal.
1. En el Editor de VBA, ubique la macro QuitarSubTotal.
2. Escriba justo debajo del nombre de la macro, la siguiente
instrucción o código:
Application.ScreenUpdating = False
3. Pruebe nuevamente los botones de las macros. ¿Se
visualiza el parpadeo o refresco de la pantalla? ………………
Guarde los cambios y cierre libro o salga de Excel.

EJERCICIO 3. MACROS APLICABLES A FILTROS AVANZADOS.


Se desea automatizar una aplicación de filtros avanzados a través de tres macros con criterios variados donde
debe aplicar criterios Y, O, o una combinación de ellos.
FILTRO1
REVISANDO EL LIBRO DE MACROS
1. Proceda a abrir el libro: Filtros Avanzados.xlsm (Solicitar el archivo al profesor).
2. La hoja llamada General, muestra la siguiente apariencia

CONTANDO DATOS Y SUMANDO EL MONTO


1. En la hoja General y en la celda B4, escriba: =SUBTOTALES(3,A10:A5008)
2. En la celda B5, escriba: =SUBTOTALES(9,I10:I5008)
ESTABLECIENDO UN FILA DE CRITERIOS
1. Seleccione la celda: F3:I4.
2. Dar a dicho rango el nombre de: Criterios1. (Escriba los datos para el criterio arriba indicados)
CREANDO LA MACRO (macro de ámbito local)
Se desea crear una macro que aplique filtros avanzados de acuerdo a una
fila de criterios
1. Ficha Programador, grupo Código, Grabar macro.
2. Nombre de la macro: FiltroAvanz1
3. Aceptar. (Empieza la grabación)
3.1. Clic en la celda A9.
3.2. Ficha Datos, grupo Ordenar y filtrar,
clic en Avanzadas.
3.3. En el cuadro Rango de criterios,
escriba: Criterios1.
3.4. Aceptar.
3.5. Detener grabación.
EJECUTANDO LA MACRO
1. De Criterio1, borre el texto America y en País escriba: Argentina.
2. Ejecute la macro pulsando ALT + F8
3. Seleccione la macro creada y Ejecutar. Funcionó la macro? …………….

TAREA
CREANDO NUEVAS MACROS
1. Antes de crear las macros, proceda a nombrar dos nuevos criterios a los siguientes rangos:
a. F3:I5, poner como nombre de rango: Criterios2. (Este criterio debe tener dos filas de criterios)
b. F3:I6, poner como nombre de rango: Criterios3. (Este criterio debe tener tres filas de criterios)

Instituto de Informática y Telecomunicaciones Pág. ~ 4 ~ Lic. Manuel Mendoza M.


Telf. 52- 583000
Macros y Programación
con VBA Curso de Microsoft Excel Nivel Avanzado

2. Crear una macro que aplique dos filas de criterios. El nombre de la macro será: FiltroAvanz2. Debe aplicar
el rango: Criterios2.
3. Crear una macro que aplique tres filas de criterios. El nombre de la macro será: FiltroAvanz3. Debe aplicar
el rango: Criterios3.
4. Crear una macro que permita borrar los filtros. Nombre de la macro: BorrarFiltro.

ASOCIANDO MACRO A CONTROLES DE FORMULARIO


Ahora, deberá asociar las macros creadas a botones de opción.
1. Diseñe los controles por encima de los criterios, tal como se muestra a continuación:

2. Asocie las macros a cada botón de opción.


3. Ejecute los botones realizando lo siguiente:
3.1. En el rango de criterios, modifique:

3.2. Clic en el botón Una fila de criterios. Anote los resultados:


Nro de Tramites: ……………………………
Monto total : …………………………………
3.3. En el rango de criterios, modifique:

3.4. Clic en el botón Dos filas de criterios. Anote los resultados:


Nro de Trámites: ………………………..…
Monto Total: ………………………………...
3.5. Clic en el botón Borrar.
4. Guarde el libro.

COPIANDO DATOS FILTRADOS A OTRA HOJA


Se desea crear una macro que permita copiar los datos filtrados a la hoja
llamada Listas.
1. Estableciendo nombres de rango.
1.1. En la hoja Listas, seleccione el rango F2:I3 y poner como nombre
de rango: CriterioCopia.
1.2. Seleccione el rango A6:I6 y poner como nombre de rango:
Destino.
2. Creando la macro
2.1. Ficha Programador, grupo Código, Grabar macro.
2.2. Nombre de macro: CopiarFiltro
2.3. Guardar en: Este libro.
2.4. Aceptar. (Empieza la grabación)
• Seleccione la celda A7 de la hoja Lista.
• Ficha Datos, clic en Avanzadas
• Escriba los datos de la imagen de la derecha.
• Aceptar.
• Detener grabación.

Instituto de Informática y Telecomunicaciones Pág. ~ 5 ~ Lic. Manuel Mendoza M.


Telf. 52- 583000
Macros y Programación
con VBA Curso de Microsoft Excel Nivel Avanzado

3. Asociar la macro a un control llamado Botón. El diseño del botón debe ser así:

4. Ejecutando la macro CopiarFiltro.


4.1. Modifique los datos en el criterio:

4.2. Ejecute el botón Copiar datos.


4.3. Modifique los datos en el criterio:

4.4. Ejecute el botón Copiar datos.


5. Guarde todos los cambios y cerrar el libro.

TAREA
Debajo del botón Copiar Datos, realice el conteo de los datos y el monto total de los registros extraídos.
Este conteo y monto debe ser automático, cada vez que modifique los criterios y aplique el filtro al pulsar el
botón Copiar datos.
Recuerde que en estos casos no puede fijar los rangos de los datos que se extraen, ya que la cantidad de registros
varían según se modifique el criterio. Debe buscar la forma de cómo solucionarlo.

FIN SEGUNDA PRÁCTICA

Instituto de Informática y Telecomunicaciones Pág. ~ 6 ~ Lic. Manuel Mendoza M.


Telf. 52- 583000

También podría gustarte