Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Me 5
Me 5
Unidad III
SEMANA 5
Generación de reportes automáticos
www.iplacex.cl
SEMANA 5
Introducción
2 www.iplacex.cl
Ideas Fuerza
3 www.iplacex.cl
Generación de reportes automáticos
Macros de Excel
4 www.iplacex.cl
• Recopilación de datos con Macros de Excel
Para este punto vamos a hacer el ejercicio de ingresar datos por pantalla y
almacenarlos en una tabla dentro de un mismo libro Excel.
5 www.iplacex.cl
Volvemos a la hoja “Datos”. Seleccionamos la pestaña “Programador”, la opción
“Insertar” e elegimos el “Botón (control de formulario)”.
6 www.iplacex.cl
Renombramos el Botón 1 haciendo clic con el botón derecho del mouse y
seleccionando “Editar texto” y editamos “Grabar”. También podemos dar formato a la
edición, por ejemplo, colocando el texto en negritas.
7 www.iplacex.cl
Repetimos el mismo procedimiento para crear un segundo botón. En nombre de
la macro indicamos “Registros”
8 www.iplacex.cl
En la hoja “Base” creamos otro “Botón” y asignamos “Datos” al nombre de la macro
9 www.iplacex.cl
Seleccionamos la pestaña “Programador” y la opción “Grabar macro”. La macro
que crearemos la llamaremos “datos”. Hacemos clic en “Aceptar” (comienza la
grabación de la macro).
10 www.iplacex.cl
Volvemos a la hoja “Base” hacemos clic derecho en el botón “Datos” y
seleccionamos “Asignar macro”.
11 www.iplacex.cl
Seleccionamos la macro “datos”
12 www.iplacex.cl
Nos cambiamos a la pestaña “Datos”. Seleccionamos la pestaña “Programador” y la
opción “Grabar macro”. Llamaremos a la macro “registros”. Hacemos clic en “Aceptar” y
comienza la grabación de la macro.
Volvemos a la hoja “Datos” y hacemos clic con botón derecho en el botón “Registros”.
Seleccionamos “Asignar macro”
13 www.iplacex.cl
Asignamos la macro “registros”
Lo que hemos hecho hasta aquí es construir dos macros que sirven para
cambiarse de hojas que nos serán de ayuda para la segunda parte del ejercicio que es
crear la macro que grabe los registros de antecedentes de alumnos. Si queremos ver el
código almacenado de estas macros debemos ir al editor de Visual Basic.
14 www.iplacex.cl
La macro para grabar los datos ingresados en la hoja “Datos” a la hoja “Base” la
haremos con el editor de Visual Basic. Para esto crearemos un nuevo módulo.
15 www.iplacex.cl
En el módulo creado escribimos el siguiente código
Sub Guardar()
'lee los datos del registro
idInterno = Worksheets("Datos").Range("D7")
nombre = Worksheets("Datos").Range("D9")
apellido = Worksheets("Datos").Range("D11")
correo = Worksheets("Datos").Range("D13")
region = Worksheets("Datos").Range("D15")
'cuenta los registros de la hoja "Base"
numero_registros = Worksheets("Base").Range("A" & Rows.Count).End(xlUp).Row + 1
'graba los registros en la hoja "Base"
Worksheets("Base").Range("A" & numero_registros) = idInterno
Worksheets("Base").Range("B" & numero_registros) = nombre
Worksheets("Base").Range("C" & numero_registros) = apellido
Worksheets("Base").Range("D" & numero_registros) = correo
Worksheets("Base").Range("E" & numero_registros) = region
'borra los datos del formulario
16 www.iplacex.cl
Worksheets("Datos").Range("D7:D15").Select
Selection.ClearContents
'posiciona el cursor para el primer registro del formulario
Worksheets("Datos").Range("D7").Select
End Sub
17 www.iplacex.cl
Solo queda probar la macro, ingresamos los registros de un alumno, por
ejemplo, lo de a continuación y hacemos clic en el botón “Grabar”.
Efectivamente, grabó los registros. Para volver a la hoja “Datos” hacemos clic en
el botón “Datos”.
18 www.iplacex.cl
III.1.1.2.- Recopilación de datos desde otro libro Excel
Para aprender a recopilar datos desde otro libro Excel, hagamos el siguiente
ejercicio.
Tenemos el archivo “curso.xlsx” con los siguientes datos:
Tenemos también un libro habilitado para macros “Ejercicio Lee Libro Externo.xlsm”. El
objetivo es recopilar los datos que están en el libro “curso.xlsx” por intermedio de una
macro de Excel
19 www.iplacex.cl
En el editor de Visual Basic crearemos un módulo con el siguiente código
Sub LeeLibroExterno()
Dim LibroOrigen As Workbook
Dim HojaOrigen As Worksheet
Dim LibroDestino As Workbook
Dim HojaDestino As Worksheet
Dim Ruta As String
Ruta = "c:\Analisis_Datos\curso.xlsx"
'Datos destino libro "Ejercicio Lee Libro Externo"
Set LibroDestino = Workbooks(ThisWorkbook.Name)
Set HojaDestino = LibroDestino.Worksheets("Datos")
'Datos origen libro "curso.xlsx"
Set LibroOrigen = Workbooks.Open(Ruta)
Set HojaOrigen = LibroOrigen.Worksheets("Hoja1")
ultima_fila = HojaOrigen.Cells(Rows.Count, 1).End(xlUp).Row
'copia el rango de datos desde el origen hasta el destino
HojaOrigen.Range("A1:D" & ultima_fila).Copy Destination:=HojaDestino.Range("A1")
Workbooks(LibroOrigen.Name).Close Savechanges:=False
End Sub
20 www.iplacex.cl
El botón “Lee Libro Externo” lo asignamos a la macro creada “LeeLibroExterno”
21 www.iplacex.cl
III.1.1.3.- Recopilación de datos desde una base de datos Access
Para recopilar datos desde una base de datos Access con macros de Excel
tomemos el siguiente ejercicio:
Tenemos una base de datos llamada “Datos.accdb” y la tabla “ALUMNOS”. Se
requiere obtener los datos de esta tabla con macros de Excel.
En primer lugar, creamos un libro de Excel habilitado para macros. En este libro
creamos un botón que llamaremos “Lee Tabla Access”
22 www.iplacex.cl
Vamos al editor de Visual Basic y creamos un módulo para escribir el siguiente código
VBA:
recordset.Close
Set recordset = Nothing
23 www.iplacex.cl
conexion.Close
Set conexion = Nothing
End Sub
24 www.iplacex.cl
Ejecutamos la macro asignada al botón “Leer Tabla Access” y obtenemos los
registros de la tabla.
En la unidad anterior vimos como recopilar datos de diferentes fuentes por lo que
ahora veremos cómo automatizar la presentación de los datos con macros de Excel.
Veamos el siguiente ejemplo. Tenemos una tabla que contiene las ventas de
varios años de una empresa y se requiere graficar la evolución de ventas de último año
con la opción de revisar la venta de años anteriores.
25 www.iplacex.cl
En cuadro combinado creado hacemos clic con el botón derecho y
seleccionamos la opción “Formato de control…”
26 www.iplacex.cl
Con el editor de Visual Basic crearemos las siguientes macros
Sub MuestraVentas()
opcion = Worksheets("Resultados").Range("C2")
If opcion = 1 Then
MsgBox "Debe seleccionar Año"
Exit Sub
End If
27 www.iplacex.cl
Select Case opcion
Case 2
rango = "B2:M2": copiaDatos (rango)
Case 3
rango = "B4:M4": copiaDatos (rango)
Case 4
rango = "B4:M4": copiaDatos (rango)
Case 5
rango = "B5:M5": copiaDatos (rango)
End Select
End Sub
Sub copiaDatos(rango)
Sheets("Base").Select
Range(rango).Select
Selection.Copy
Sheets("Resultados").Select
Range("C5").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=True
Range("C5").Select
End Sub
28 www.iplacex.cl
Las macros creadas las asignaremos al cuadro combinado.
29 www.iplacex.cl
Con el selector creado con el cuadro combinado podemos cambiar el año y la
macro se encargará de actualizar los registros.
Ahora crearemos un gráfico sencillo con la data que se muestra en la hoja
“Resultados”.
Hasta aquí tenemos una manera automatizada de mostrar datos. Para mostrar
esta información también tenemos alunas opciones, por ejemplo, con el siguiente
código podríamos generar una salida en un archivo PDF.
30 www.iplacex.cl
III.1.2.1.- Presentación de los datos en formato PDF
Sub crearPDF()
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=ThisWorkbook.Path & "\Resultados.pdf", Quality:=xlQualityStandard,
OpenAfterPublish:=True
End Sub
Si hacemos clic en el botón “Crear PDF” generamos archivo con extensión PDF.
31 www.iplacex.cl
¿Cuáles son las ventajas de usar archivos PDF?
32 www.iplacex.cl
Seleccionamos la pestaña “Insertar” y la opción “Insertar objeto”
33 www.iplacex.cl
Volvemos a la presentación PowerPoint, seleccionamos la pestaña inicio y la
opción “Pegar” y “Pegado especial”. En la ventana emergente marcamos “Pegar
vinculo”
34 www.iplacex.cl
¿Existen más alternativas para presentar datos de Excel?
35 www.iplacex.cl
Conclusión
Hemos comprobado una vez más, las excelentes funcionalidades que nos ofrece
Excel para la recopilación y presentación de datos. Las macros de Excel nos permiten
automatizar cualquier tarea incluso las más complejas.
36 www.iplacex.cl
Bibliografía
Reflexiones sobre ingeniería de requisitos y pruebas de software | Echeverri, Jaime | E-LIBRO
Aplicación de un oráculo de prueba automatizado a la evaluación de salidas de programas basados en
XML | Kim-Park, Dae S.; Riva, Claudio de la | E-LIBRO
37 www.iplacex.cl