Estructura de Selección Múltiple ElseIf en VBA

Evaluación de múltiples alternativas encadenadas en hojas de cálculo de Excel.

💡 ¿Qué es y para qué sirve la estructura ElseIf?

En programación, a menudo nos enfrentamos a situaciones donde existen más de dos caminos posibles. Si bien la estructura If...Else nos permite elegir entre dos opciones (Verdadero o Falso), la cláusula ElseIf nos permite evaluar múltiples condiciones en secuencia hasta encontrar una que se cumpla.

Usar ElseIf mantiene el código ordenado, legible y eficiente, evitando el uso excesivo de bloques If anidados dentro de otros.

1. Sintaxis y Orden de Evaluación

VBA evalúa las condiciones de arriba hacia abajo. En el momento en que encuentra una condición verdadera, ejecuta únicamente el bloque de código asociado a ella y **omite todas las demás**. Si ninguna de las condiciones If o ElseIf es verdadera, se ejecutará el bloque opcional Else.

If condicion_1 Then
    ' Código si la condicion_1 es Verdadera
ElseIf condicion_2 Then
    ' Código si la condicion_2 es Verdadera
ElseIf condicion_3 Then
    ' Código si la condicion_3 es Verdadera
Else
    ' Código si NINGUNA de las anteriores fue verdadera
End If

Ejemplo Práctico: Categorización de Notas

Sub EvaluarCalificacion()
    Dim nota As Double
    nota = Range("A2").Value
    
    If nota >= 90 Then
        Range("B2").Value = "Excelente"
    ElseIf nota >= 70 Then
        Range("B2").Value = "Bueno"
    ElseIf nota >= 60 Then
        Range("B2").Value = "Regular"
    Else
        Range("B2").Value = "Reprobado"
    End If
End Sub

2. Módulo de Ejercicios Prácticos en Clase

Todos los ejercicios están organizados dentro de una misma hoja de cálculo. Ocupan rangos consecutivos de filas (de a 3 filas por ejercicio), dejando una fila intermedia vacía de separación entre cada uno:

ElseIf Ejercicio 1: Clasificación de Desempeño Académico (Filas 1-3)

Evalúa la nota en A2 y asigna en B2: Si es >= 90: "Sobresaliente", si es >= 80: "Notable", si es >= 60: "Aprobado", de lo contrario: "Insuficiente".

A B
1 Nota Estudiante Resultado VBA
2 85 [ Resultado B2 ]
3 52 [ Resultado B3 ]
ElseIf Ejercicio 2: Etapas de Crecimiento Humano (Filas 5-7 | Fila 4 libre)

Lee la edad en A6 y escribe en B6: Si es < 12: "Niño", si es < 18: "Adolescente", si es < 65: "Adulto", de lo contrario: "Adulto Mayor".

A B
5 Edad Etapa de Vida
6 15 [ Resultado B6 ]
7 70 [ Resultado B7 ]
ElseIf Ejercicio 3: Descuento Escalonado por Ventas (Filas 9-11 | Fila 8 libre)

Evalúa el monto en A10 y coloca el % de descuento en B10: Si es >= 1000: "20%", si es >= 500: "10%", si es >= 200: "5%", de lo contrario: "0%".

A B
9 Monto Compra ($) % Descuento
10 650 [ Resultado B10 ]
11 150 [ Resultado B11 ]
ElseIf Ejercicio 4: Categorización de Temperatura (Filas 13-15 | Fila 12 libre)

Evalúa la temperatura en °C en A14 y registra en B14: Si es <= 0: "Congelante", si es <= 15: "Frío", si es <= 28: "Templado", de lo contrario: "Caluroso".

A B
13 Temperatura (°C) Estado Térmico
14 -3 [ Resultado B14 ]
15 22 [ Resultado B15 ]
ElseIf Ejercicio 5: Nivel de Sueldo por Categoria de Empleado (Filas 17-19 | Fila 16 libre)

Lee el código de categoría en A18 y asigna el sueldo base en B18: Si es "A": 3000, si es "B": 2200, si es "C": 1500, de lo contrario: 1000.

A B
17 Categoría Sueldo Base ($)
18 B [ Resultado B18 ]
19 D [ Resultado B19 ]
ElseIf Ejercicio 6: Evaluación del IMC - Índice de Masa Corporal (Filas 21-23 | Fila 20 libre)

Según el valor de IMC en A22, asigna en B22: Si es < 18.5: "Bajo Peso", si es < 25: "Normal", si es < 30: "Sobrepeso", de lo contrario: "Obesidad".

A B
21 Valor IMC Diagnóstico IMC
22 23.5 [ Resultado B22 ]
23 31.2 [ Resultado B23 ]
ElseIf Ejercicio 7: Control de Velocidad Vehicular (Filas 25-27 | Fila 24 libre)

Evalúa la velocidad en km/h en A26 y escribe en B26: Si es <= 30: "Zona Escolar / Lento", si es <= 80: "Velocidad Normal", si es <= 120: "Exceso Moderado", de lo contrario: "Exceso Peligroso".

A B
25 Velocidad (km/h) Estatus Tránsito
26 95 [ Resultado B26 ]
27 25 [ Resultado B27 ]
ElseIf Ejercicio 8: Determinación del Turno Laboral (Filas 29-31 | Fila 28 libre)

Toma la hora (formato 0 a 23) de A30 y asigna en B30: Si es < 6: "Madrugada", si es < 12: "Mañana", si es < 18: "Tarde", de lo contrario: "Noche".

A B
29 Hora (0-23) Turno Asignado
30 14 [ Resultado B30 ]
31 4 [ Resultado B31 ]
ElseIf Ejercicio 9: Puntos de Membresía por Nivel (Filas 33-35 | Fila 32 libre)

Segun la membresía en A34, asigna puntos en B34: Si es "Platino": 5000 puntos, si es "Oro": 3000 puntos, si es "Plata": 1500 puntos, de lo contrario: 500 puntos.

A B
33 Nivel Membresía Puntos Acumulados
34 Oro [ Resultado B34 ]
35 Bronce [ Resultado B35 ]
ElseIf Ejercicio 10: Recomendación según el Clima (Filas 37-39 | Fila 36 libre)

Escribe una recomendación en B38 según la condición en A38: Si es "Lluvia": "Llevar Paraguas", si es "Nieve": "Usar Abrigo Pesado", si es "Sol": "Usar Bloqueador", de lo contrario: "Día Normal".

A B
37 Estado del Clima Recomendación
38 Lluvia [ Resultado B38 ]
39 Sol [ Resultado B39 ]