ElseIf en VBAEvaluación de múltiples alternativas encadenadas en hojas de cálculo de Excel.
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.
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
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
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:
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 ] |
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 ] |
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 ] |
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 ] |
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 ] |
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 ] |
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 ] |
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 ] |
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 ] |
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 ] |