Está en la página 1de 37

Análisis de Datos

Unidad III
SEMANA 5
Generación de reportes automáticos

www.iplacex.cl
SEMANA 5

Introducción

Hemos llegado a la tercera unidad del curso de Análisis de Datos. En


unidades anteriores hemos visto “Recopilación de datos” y “Presentación de los datos”
como temas separados, pero es ineludible plantearse la inquietud de unificar estos
procesos y más aún, llevarlos a un proceso único totalmente automatizado.

Ya vimos que Excel nos proporciona muchas funcionalidades tanto para la


recopilación y presentación de los datos, en esta oportunidad nos enfocaremos en una
funcionalidad que ofrecen tanto Excel como Access para la automatización o
programación de tareas.

Aprenderemos Macros en Excel y Macros en Access que es una herramienta


con funcionalidades que nos permitirán programar o escribir código de programación
para tareas repetitivas y complejas, tanto como para la obtención de datos como para
su presentación o para ambos casos simultáneamente.

Comencemos con el curso.

2 www.iplacex.cl
Ideas Fuerza

1. La información en el momento preciso: Contar con la información en el


momento preciso marca la diferencia en la toma de buenas decisiones
estratégicas.

2. Flujos de información: Mantener los datos actualizados en un proceso continuo


de flujo de información es relevante a la hora de generar un reporte ejecutivo
eficiente. Los reportes deben generar información actualizada y de calidad.

3. Reportes automatizados. Contar con reportes en cualquier momento es el óptimo


para un usuario de información. El desafío para este requerimiento es automatizar
el proceso eliminando los márgenes de error humano por la generación manual de
estos.

3 www.iplacex.cl
Generación de reportes automáticos

Para la generación de reportes automáticos utilizamos las Macros de Excel y las


Macros de Access. Estas herramientas nos otorgaran gran flexibilidad para la
automatización de tareas de lectura y presentación de datos.

Macros de Excel

Todas las tareas que se realicen de manera reiterada en Excel se pueden


automatizar. Excel nos ofrece una excelente funcionalidad para esta tarea, estas son
las macros de Excel.

Las macros de Excel son un conjunto de instrucciones que se ejecutan de


manera secuencial por medio de una orden de ejecución. Una macro puede invocar o
ejecutar otra macro, logrando de esta manera automatizar operaciones muy complejas.
Para abordar con mayor detalle sobre las macros, te invitamos a consultar el
material de ayuda que complementa esta unidad.

¿Qué ventajas tiene el uso de macros?

4 www.iplacex.cl
• Recopilación de datos con Macros de Excel

• Recopilación de datos con una interfaz gráfica

Para este punto vamos a hacer el ejercicio de ingresar datos por pantalla y
almacenarlos en una tabla dentro de un mismo libro Excel.

En primer lugar, abrimos un libro de Excel y lo guardamos como un libro de


Excel habilitado para macros. Por ejemplo “Ejercicio Ingreso de Datos.xlsm”. Dentro de
este libro creamos dos hojas que llamaremos ¨Datos¨ y “Base”

Luego, dibujamos un formulario en la hoja “Datos”

En la hoja “Base” escribimos el encabezado en la primera fila con el nombre de los


campos.

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)”.

Seleccionamos el rango donde queremos el “Botón” y le damos un nombre a la


macro, por ejemplo “Grabar”

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”

Editamos el Botón 2 con “Registros”

8 www.iplacex.cl
En la hoja “Base” creamos otro “Botón” y asignamos “Datos” al nombre de la macro

Editamos el botón con clic derecho. Asignamos “Datos”

A continuación, crearemos una macro que nos cambie de la hoja “Base” a la


hoja “Datos”.

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).

Nos cambiamos a la pestaña “Datos” específicamente a la celda “D7” y


seleccionamos la opción “Detener grabación”.

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.

Nos cambiamos a la hoja “Base” y hacemos clic en “Detener grabación”

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

A continuación, asignamos la macro creada. En la hoja “Datos” Hacemos clic


con el botón derecho y seleccionamos “Asignar macro”

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”.

Para revisar si grabó correctamente usamos el botón “Registros”

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”

Ejecutamos la macro haciendo clic en el botón “Lee Libro Externo” y recuperamos la


data del archivo “curso.xlsx”

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:

Public Sub LeeTablaAccess()

Dim conexion As Object


Dim recordset As Object
Dim consulta As String
Dim cadenaConexion As String
Dim contador As Integer

Set conexion = CreateObject("ADODB.Connection")


cadenaConexion = "Provider=Microsoft.ACE.OLEDB.12.0;Data
Source=C:\Analisis_Datos\Datos.accdb"
consulta = "SELECT * FROM ALUMNOS;"
conexion.Open cadenaConexion

Set recordset = conexion.Execute(consulta)


contador = 0
Do Until recordset.EOF = True
Sheets("Hoja1").Cells(contador + 1, 1) = recordset.Fields(0).Value
Sheets("Hoja1").Cells(contador + 1, 2) = recordset.Fields(1).Value
Sheets("Hoja1").Cells(contador + 1, 3) = recordset.Fields(2).Value
contador = contador + 1
recordset.MoveNext
Loop

recordset.Close
Set recordset = Nothing

23 www.iplacex.cl
conexion.Close
Set conexion = Nothing
End Sub

Asignamos la macro al botón “Lee Tabla Access”

24 www.iplacex.cl
Ejecutamos la macro asignada al botón “Leer Tabla Access” y obtenemos los
registros de la tabla.

III.1.2.- Presentación de datos con Macros de Excel

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.

En la hoja “Resultados” crearemos un cuadro combinado

25 www.iplacex.cl
En cuadro combinado creado hacemos clic con el botón derecho y
seleccionamos la opción “Formato de control…”

En la ventana emergente completamos la información solicitada

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.

¿Cuáles son las ventajas de usar VBA?

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

Como ya lo hemos hecha antes, crearemos un botón que llamaremos “Crear


PDF” y le asignaremos la macro descrita más arriba.

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?

III.1.2.2.- Presentación de los datos en formato PowerPoint con objetos


vinculados

Creamos una presentación PowerPoint con una diapositiva en blanco.

32 www.iplacex.cl
Seleccionamos la pestaña “Insertar” y la opción “Insertar objeto”

En la ventana emergente completamos con la información necesaria:

El objeto creado no está en el formato que deseamos así que lo borramos y


crearemos manualmente. Abrimos el Libro Excel que contiene los datos que queremos
presentar en PowerPoint seleccionamos el rango de lo que queremos mostrar y
copiamos.

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”

De esta forma cualquier cambio que hagamos en el libro Excel se reflejara en la


presentación PowerPoint,

34 www.iplacex.cl
¿Existen más alternativas para presentar datos de Excel?

La verdad es que Microsoft Office ofrece mucha conectividad entre sus


aplicaciones. Por ejemplo, podríamos presentar también datos de Excel en un
documento Word.

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.

En esta semana, abordamos ejemplos de aplicación de macros en algunas


tareas específicas. Obviamente, el ámbito de acción de las macros es inmenso y solo
dependerá de tu ingenio y habilidad para encontrar y desarrollar soluciones a cualquier
problema que se te presente.

Esperamos que con el contenido de esta semana logremos el objetivo de que


aprendas respecto de la automatización de tareas de Excel con macros. También
esperamos haber despertado la inquietud por aprender más sobre el lenguaje de
programación Visual Basic.

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

También podría gustarte