Automatización de hoja de cálculo con VBA
Published:
1. Realice la programación en Visual Basic que automatice la ejecución de una hoja de cálculo en la se encontrará la siguiente matriz:
| | A | B | C | D | E | F |
|---|---|---|---|---|---|---|
| 1 | ESTUDIANTE | CALIFICACION | SITUACION | | | |
| 2 | Patricio | 3 | DEFICIENTE | | | BORRAR SITUACION |
| 3 | Juan | 7 | MUY BUENO | | | |
| 4 | Andrés | 10 | EXCELENTE | | | |
| 5 | Canela | 7 | MUY BUENO | | | |
| 6 | Daniela | 5,6 | ACEPTABLE | | <4 | DEFICIENTE |
| 7 | Sofía | 3,8 | DEFICIENTE | | <7 | ACEPTABLE |
| 8 | María | 9 | EXCELENTE | | <8 | MUY BUENO |
| 9 | Roberto | 5 | ACEPTABLE | | <=10 | EXCELENTE |
La implementación se realizará a base de la estructura definida (repositorios/módulos) con la utilización de eventos y módulos (procedimientos parametrizados y funciones parametrizadas) SE ENCUENTRA PROHIBIDO LA UTILIZACION DE ACCESO A CELDAS DIRECTA DESDE LOS MODULOS.
PROCESO:
1. Crear una función parametrizada que genere una situación académica del alumno. (2 puntos)
2. Crear un procedimiento parametrizado que realice el análisis visual de la situación académica del alumno. (2 puntos)
3. Crear un evento automático que llame a la función del punto 1 para insertar la situación académica por alumno una vez que se ingrese la calificación y al procedimiento del punto 2 para que analice visualmente la situación. (2 puntos)
4. Generar un procedimiento parametrizado que borre la situación académica del alumno y análisis visual. (1 punto)
5. Generar un evento manual que realice el borrado la situación académica del alumno y análisis visual mediante el procedimiento del punto 4. (1 punto)
This question includes visual content: La imagen muestra una tabla de datos de Excel con tres columnas: 'ESTUDIANTE' (A), 'CALIFICACION' (B) y 'SITUACION' (C). Hay nombres de estudiantes y sus calificaciones. A la derecha, hay una pequeña tabla de referencia para la situación académica: <4 (DEFICIENTE, color rojo), <7 (ACEPTABLE, color verde), <8 (MUY BUENO, color azul), <=10 (EXCELENTE, color amarillo). También hay un botón o etiqueta con el texto 'BORRAR SITUACION'. Debajo, se detallan 5 tareas de programación en VB.
Animated Video Solution
The first half plays free, the full solution is in the app.
Step by Step Written Solution
Hola AxelJose, vamos a resolver este ejercicio de automatización en Excel con Visual Basic paso a paso.
Automatización en Visual Basic para Excel
Analizaremos la matriz de calificaciones y definiremos módulos para calcular la situación de cada estudiante.
La regla fundamental de este problema es que no debemos acceder de forma directa a las celdas desde los módulos principales. Esto significa que las funciones y subrutinas deben ser parametrizadas, recibiendo valores o rangos como argumentos.
Regla Clave:
* Prohibido: Acceso directo a celdas como Range o Cells dentro de los módulos de cálculo.
* Solución: Pasar parámetros como por ejemplo nota o celda.
Comencemos con el Punto uno: crear una función parametrizada que determine la situación académica en función de la calificación.
1. Función Parametrizada de Situación
Esta función recibirá la calificación como parámetro y devolverá el texto correspondiente.
La lógica de la función evaluará los límites definidos en la tabla: menor que cuatro es Deficiente, menor que siete es Aceptable, menor que ocho es Muy Bueno, y hasta diez es Excelente.
```vba
Public Function GenerarSituacion(ByVal nota As Double) As String
If nota < 4 Then
GenerarSituacion = "DEFICIENTE"
ElseIf nota < 7 Then
GenerarSituacion = "ACEPTABLE"
ElseIf nota < 8 Then
GenerarSituacion = "MUY BUENO"
ElseIf nota <= 10 Then
GenerarSituacion = "EXCELENTE"
Else
GenerarSituacion = "N/A"
End If
End Function
```
Esta función es totalmente independiente de la hoja de cálculo, lo que cumple perfectamente la regla de no acceder a celdas directamente desde el módulo.
Pasemos al Punto dos: crear un procedimiento parametrizado para aplicar el formato visual correspondiente.
2. Procedimiento Parametrizado para Formato Visual
Recibe la celda a formatear y la situación académica.
Usaremos una estructura select case para aplicar el color de fondo adecuado según la situación obtenida.
```vba
Public Sub AnalisisVisual(ByVal celda As Range, ByVal situacion As String)
Select Case situacion
Case "DEFICIENTE"
celda.Interior.Color = RGB(224, 49, 49) ' Rojo
celda.Font.Color = RGB(255, 255, 255)
Case "ACEPTABLE"
celda.Interior.Color = RGB(146, 208, 80) ' Verde
celda.Font.Color = RGB(0, 0, 0)
Case "MUY BUENO"
celda.Interior.Color = RGB(142, 180, 219) ' Azul
celda.Font.Color = RGB(0, 0, 0)
Case "EXCELENTE"
celda.Interior.Color = RGB(255, 255, 0) ' Amarillo
celda.Font.Color = RGB(0, 0, 0)
Case Else
celda.Interior.ColorIndex = xlNone
celda.Font.Color = RGB(0, 0, 0)
End Select
End Sub
```
Note que el procedimiento recibe el objeto celda como un parámetro de tipo Range, evitando cualquier llamada directa a coordenadas fijas en la hoja.
Ahora abordemos el Punto tres: programar el evento automático en la hoja para reaccionar ante los cambios de calificación.
3. Evento Automático Worksheet_Change
Este evento se activa automáticamente al editar una celda de la hoja.
The rest of this solution is on Solvi
9 more steps are locked. Watch the full animated, narrated solution for free.
Snap a photo, solve any question like this.
Watch the Rest for FreeFree to download · First solutions are on us