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…