Curso Excel VBA y Macros – Cap. 17 – Instrucción If…Then…Else para la toma de decisiones

<<CURSO COMPLETO EN YOUTUBE>>

En este capítulo vamos a trabajar con una de las instrucciones más usadas en VBA, y de hecho en cualquier lenguaje de programación; la instrucción IF…THEN..ELSE. Todo el tiempo las aplicaciones están tomando decisiones en base a condiciones e interactuando con sus propios flujos de ejecución.

Veremos los siguientes temas:

  • Estructuras de control.
  • Instrucción If-Then de una sola línea.
  • Instrucción If-Then de una condición.
  • Instrucción If-Then de varias condiciones.

Ver video Capítulo 17 Excel VBA & Macros

Suscríbete al canal de EXCELeINFO en YouTube para aprender más de Excel y macros.

Estructuras de control

Las estructuras de control, hablando del mundo de la programación, nos permite cambiar el flujo de ejecución de las instrucciones de un programa. Desde toma de decisiones usando condicionales If-Then, hasta manejo de colecciones con otras instrucciones como For each Next.

Instrucción If-Then-Else

Esta instrucción básicamente nos ayudará a ejecutar instrucciones o bloques de instrucciones en base a ciertas condiciones. Si una condición se cumple o devuelve True, entonces ejecutamos unas instrucciones; si no se cumple, evaluamos otra condición hasta dar una que devuelva True. En todo caso, si no se cumple ninguna condición, tendremos una serie de instrucciones por default.

Sintaxis If… Then… Else

La sintaxis básica de esta instrucción es:

IF condición THEN instrucciones ELSE otras instrucciones

Donde:

  • IF: Es la instrucción.
  • Condición: Es una expresión que será evaluada.
  • Instrucciones: De manera opcional podemos ejecutar acciones en caso de que la condición se cumpla.
  • ELSE: Se usa para definir que, si ninguna condición se cumple, haremos lo siguiente.
  • Otras instrucciones. Si ninguna condición se cumple, ejecutamos estas instrucciones por default.

Condicional If de una sola condición

La instrucción anterior también se puede representar en bloques:

If condición Then

[instrucciones]

Else

[Sino… instrucciones]

End if

Donde:

  • IF: Es la instrucción.
  • Condición: Es una expresión que será evaluada.
  • Then: Entonces.
  • Instrucciones: De manera opcional podemos ejecutar acciones en caso de que la condición se cumpla.
  • ELSE: Se usa para definir que, si ninguna condición se cumple, haremos lo siguiente.
  • Otras instrucciones. Si ninguna condición se cumple, ejecutamos estas instrucciones por default.

Condicional If de varias condiciones

Si tenemos varias condicione a evaluar, entonces usamos la siguiente estructura:

If condición Then

[instrucciones]

Elseif otra_condición Then

[en caso de… instrucciones]

Else

[Sino… instrucciones]

End If

Donde:

  • IF: Es la instrucción.
  • Condición: Es una expresión que será evaluada.
  • Then: Entonces.
  • Instrucciones: De manera opcional podemos ejecutar acciones en caso de que la condición se cumpla.
  • Elseif: Evaluamos otra condición.
  • ELSE: Se usa para definir que, si ninguna condición se cumple, haremos lo siguiente.
  • END IF: Cerramos el bloque de instrucciones IF.
  • ELSE: Se usa para definir que, si ninguna condición se cumple, haremos lo siguiente.

Ejemplos usando If… Then… Else

En este primer ejemplo mostramos un mensaje si un valor es mayor que 10

Option Explicit
'EXCELeINFO
'MVP Sergio Alejandro Campos
'http://www.exceleinfo.com
'https://www.youtube.com/user/sergioacamposh
'http://blogs.itpro.es/exceleinfo

Sub InstruccionIF()

Dim Número1 As Byte

Número1 = Application.Sheets("If then else").Range("B6").Value

If Número1 > 10 Then Debug.Print "Mayor que 10"

End Sub

En este ejemplo vamos a cambiarle el color al fondo de una celda dependiendo el valor de una variable.

Sub CambiarColor()

Dim Número1 As Byte

Número1 = Application.Sheets("If then else").Range("B6").Value

If Número1 >= 10 Then
    Range("B6").Interior.Color = VBA.vbGreen
Else
    Range("B6").Interior.Color = VBA.vbRed
End If

End Sub

En este último ejemplo evaluamos dos condiciones para asignar el descuento en base a una cantidad. Si ninguna de las condiciones se cumple, entonces asignamos cero a la variable Descuento.

Sub Comisiones()

Dim Cantidad As Byte
Dim Descuento As Double

Cantidad = Range("A17").Value

If Cantidad < 10 Then
    Descuento = 0
ElseIf Cantidad < 20 Then
    Descuento = 0.1
Else
    Descuento = 0.2
End If

Range("C17").Value = Descuento

End Sub

Descarga el archivo de ejemplo

017 – IF Then Else – Estructura de control.zip

<<CURSO COMPLETO EN YOUTUBE>>

Si te gustó este tutorial por favor regístrate en nuestra Lista de correo y Suscríbete a nuestro canal de YouTube para que estés siempre enterado de lo nuevo que publicamos.

You may also like...