Universidad de Guayaquil
Ingeniería Industrial
Tarea
Proyecto en Excel con macros
Estudiante
Dhamary Elizabeth Alvarado Buele
Herramientas digitales III
Grupo 11
Docente
Ing. Janeo Jose Cerezo Piedrahita
21 de mayo de 2025
Proyecto en Excel con macros
Objetivo
Desarrollar una hoja de cálculo avanzada en Excel para gestionar y procesar registros de
ventas mensuales de una pequeña empresa. Se incluirán macros para automatizar tareas
repetitivas como:
• Organización de datos.
• Limpieza de datos.
• Generación de reportes automáticos.
• Ordenamiento y filtrado rápido de ventas por criterio.
Descripción del Proyecto
Se crea un archivo Excel con varias hojas:
Hoja1: RegistroVentas
Contiene las ventas diarias
Hoja2: ReporteMensual
Recibe un resumen automático de ventas por categoría.
Hoja3: Configuración
Parámetros como categorías válidas, precios de referencia, etc.
Macros
Macro 1: Organización
Función: organiza, modifica formato de título establece ganancia y le da formato de dinero
Código:
Sub correcionarchivo()
'
' correcionarchivo Macro
' este macro corrigr un archivo con el formato correcto
'
'
[Link] Down:=-60
Rows("1:1").Select
With [Link]
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent5
.TintAndShade = 0
.PatternTintAndShade = 0
End With
With [Link]
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorLight1
.TintAndShade = 0
.PatternTintAndShade = 0
End With
With [Link]
.ThemeColor = xlThemeColorDark1
.TintAndShade = 0
End With
Columns("G:G").Select
[Link] Shift:=xlToLeft
Range("D:D,G:G").Select
Range("G1").Activate
[Link] = "[$-x-sysdate]dddd, mmmm dd, yyyy"
[Link] = 747.75
[Link] = 751.5
[Link] = 2
[Link] = 3
[Link] = 4
[Link] = 5
Range("M1").Select
ActiveCell.FormulaR1C1 = "Ganacia"
Range("M2").Select
ActiveCell.FormulaR1C1 = "=+RC[-1]"
Range("M2").Select
ActiveCell.FormulaR1C1 = "=+RC[-1]*0.2"
Range("M2").Select
[Link] Destination:=Range("M2:M120"), Type:=xlFillDefault
Range("M2:M120").Select
[Link] Down:=-114
Columns("M:M").Select
[Link] = "Currency"
[Link] = _
"_-[$$-es-AR] * #,##0.00_-;-[$$-es-AR] * #,##0.00_-;_-[$$-es-AR] * ""-""??_-;_-@_-"
[Link] = xlNormal
End Sub
Aplicación de macro
Macro 2: Limpiar Datos
Función: Elimina filas vacías o incompletas en la hoja de registro de ventas.
Código:
Sub LimpiarDatos()
Dim ultimaFila As Long
Dim i As Long
ultimaFila = Sheets("RegistroVentas").Cells([Link],
1).End(xlUp).Row
For i = ultimaFila To 2 Step -1
If Sheets("RegistroVentas").Cells(i, 1) = "" Or
Sheets("RegistroVentas").Cells(i, 2) = "" Then
Sheets("RegistroVentas").Rows(i).Delete
End If
Next i
MsgBox "Datos limpiados correctamente."
End Sub
Aplicación de Macro
Macro 3: Generar Reporte Mensual
Función: Suma las ventas por categoría y genera un resumen en la hoja ReporteMensual.
Código:
Sub GenerarReporteMensual()
Dim hojaOrigen As Worksheet
Dim hojaDestino As Worksheet
Dim ultimaFila As Long
Dim categoria As String
Dim totalVenta As Double
Dim i As Long
Set hojaOrigen = Sheets("RegistroVentas")
Set hojaDestino = Sheets("ReporteMensual")
[Link]("A2:B100").ClearContents
ultimaFila = [Link]([Link], 1).End(xlUp).Row
For i = 2 To ultimaFila
categoria = [Link](i, 3)
totalVenta = [Link](i, 6)
With hojaDestino
If [Link](.Range("A:A"), categoria) = 0 Then
.Cells(.Cells([Link], 1).End(xlUp).Row + 1, 1) = categoria
.Cells(.Cells([Link], 1).End(xlUp).Row, 2) = totalVenta
Else
.Cells([Link](categoria, .Range("A:A"), 0), 2) = _
.Cells([Link](categoria, .Range("A:A"), 0), 2) + totalVenta
End If
End With
Next i
Macro 4:MsgBox "Reporte
Ordenar generado
Ventas correctamente."
Descendentemente
End Sub
Función: Ordena el registro de ventas por Total en orden descendente.
Código:
Sub OrdenarPorTotal()
Dim hoja As Worksheet
Set hoja = Sheets("RegistroVentas")
[Link]("A1:F1").Select
[Link](Selection, [Link](xlDown)).Sort _
Key1:=[Link]("F2"), Order1:=xlDescending,
Header:=xlYes
MsgBox "Ventas ordenadas por Total de mayor a menor."
End Sub
Aplicación de macro
Resultados Obtenidos
Con estas macros:
-Se eliminaron automáticamente las filas incompletas, asegurando integridad en los datos.
-Se generó un reporte mensual en segundos, agrupando las ventas por categoría y sumando
los totales.
-Se ordenó rápidamente el listado de ventas por el total generado, facilitando la visualización
de los productos más vendidos.
Beneficios:
-Reducción de errores manuales.
-Optimización del tiempo de análisis.
-Reportes consistentes y automáticos.
-Facilidad de uso mediante botones asignados a cada macro.
Conclusión
Este proyecto demuestra cómo una hoja de cálculo avanzada en Excel, potenciada con
macros, puede simplificar significativamente el procesamiento de datos en entornos
empresariales. Las macros permiten automatizar tareas cotidianas, reduciendo la carga
operativa y mejorando la precisión de los resultados.