Uso del condicional If en VBA (if, elseif, else, end if)

A partir de este tutorial, empezaremos a explorar las bondades de programar, siendo una de ellas la capacidad de hacer que el computador “tome decisiones” a través de los condicionales.

¿Qué es un Condicional?

Un condicional es una evaluación que se realiza en el flujo de la información (una o más variables) y permite discernir si se cumple o no con una condición establecida. Según la respuesta, se tomarán diferentes acciones.

¿Cómo Escribir un Condicional en VBA?

Para escribir un condicional (If en VBA), debemos evaluar una variable y dar instrucciones sobre qué hacer si se cumple la condición. Esta evaluación se realiza utilizando el comando If.

Ejemplo de Condicional If en VBA: Entradas al Cine

Imaginemos que estamos creando un sistema para vender entradas de cine, donde el precio de la entrada depende de la edad del espectador. En este caso, definimos las siguientes reglas:

  • Los niños de 12 años o menos recibirán una entrada «Preferencial».
  • Los adultos mayores de 12 años recibirán una entrada «Regular».

Para implementar estas reglas en VBA, utilizaremos una estructura condicional If que evaluará la edad ingresada en la celda B2. Si la edad es menor o igual a 12, se asignará «Preferencial» a la celda C2. De lo contrario, se asignará «Regular». Aquí tienes el código correspondiente:


Sub AsignarEntrada()
    Dim edad As Integer
    ' Leer la edad de la celda B2
    edad = Range("B2").Value

    ' Evaluar la condición
    If edad <= 12 Then
        Range("C2") = "Preferencial" ' Entrada para niños
    Else
        Range("C2") = "Regular" ' Entrada para adultos
    End If
End Sub

En este ejemplo, si el usuario ingresa un valor en la celda B2 (por ejemplo, 10), el sistema evaluará la condición:

  • Si 10 <= 12 es verdadero, la celda C2 mostrará «Preferencial».
  • Si el usuario ingresa 15, el sistema evaluará 15 <= 12, lo que es falso, y la celda C2 mostrará «Regular».

Condicionales If Anidados en VBA

A veces, es necesario evaluar una segunda condición después de la primera evaluación. Esto se denomina «Condicional Anidado». La estructura será similar a la siguiente:

Ejemplo de Condicional If Anidado en VBA

Continuando con el ejemplo de la entrada al cine, podríamos agregar una evaluación adicional. Supongamos que queremos ofrecer entradas «Preferenciales» también a personas de tercera edad (mayores de 59 años). El código podría verse así:


Sub AsignarEntradaCompleta()
    Dim edad As Integer
    edad = Range("B2").Value

    If edad <= 12 Then
        Range("C2") = "Preferencial" ' Entrada para niños
    ElseIf edad > 59 Then
        Range("C2") = "Preferencial" ' Entrada para tercera edad
    Else
        Range("C2") = "Regular" ' Entrada para adultos
    End If
End Sub

Uso de Or y And (Operadores Lógicos) en Condicionales VBA

También es posible evaluar múltiples condiciones en un mismo condicional usando los operadores lógicos And y Or.

Ejemplos de Uso de Or y And en Condicionales de VBA

Si queremos considerar un rango de edad para las entradas «Regular», podemos usar el operador And:


Sub AsignarEntradaConOperadores()
    Dim edad As Integer
    edad = Range("B2").Value

    If edad > 12 And edad < 60 Then
        Range("C2") = "Regular"
    Else
        Range("C2") = "Preferencial"
    End If
End Sub

De manera similar, usando el operador Or podemos evaluar si una entrada es «Preferencial» si la edad es menor a 13 o mayor a 59:


Sub AsignarEntradaConOr()
    Dim edad As Integer
    edad = Range("B2").Value

    If edad < 13 Or edad > 59 Then
        Range("C2") = "Preferencial"
    Else
        Range("C2") = "Regular"
    End If
End Sub

Conclusiones

Como has visto, hay diferentes formas de programar instrucciones de decisión en VBA, y cada método tiene sus ventajas. Con la práctica, mejorarás en la escritura de código más compacto y libre de errores.

¿Quieres saber más? Contáctanos…

Uso del condicional If en VBA (if, elseif, else, end if)

También te puede interesar

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *