Automatización de hoja de cálculo con VBA

Computer ScienceVisual Basic for Applications (VBA)Hard

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

1
Step 1

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.

2
Step 2

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.

3
Step 3

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.

4
Step 4

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

```

5
Step 5

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.

6
Step 6

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.

7
Step 7

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

```

8
Step 8

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.

9
Step 9

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.

Download on the App Store Get it on Google Play

Free to download · First solutions are on us

100K+Questions solved daily
50K+Students learning
4.8 ★App Store rating

About This Question

Subject
Computer Science
Topic
Visual Basic for Applications (VBA)
Difficulty
Hard
Question Type
Open Ended

Solve any question in seconds

Snap a photo and AI explains it step by step with voice and animation.

Download on the App Store Get it on Google Play
Solvi
The full solution is in the appFree to download · First solutions are on us
Get