📱

Get Our Mobile App

Take your business learning on the go!

Download on the App StoreGet it on Google Play

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

Sergio Alejandro Campos - EXCELeINFO19:04

Transcription

Es importante saber y entender que cuando desarrollamos aplicaciones en Excel con BBVA, estamos tomando todo el tiempo decisiones. Si un valor es de tal rango, se ejecuta esta acción; si una hoja se llama de tal manera, ejecutamos esta acción. Y para tener un mejor flujo en la toma de decisiones al momento de desarrollar aplicaciones, vamos a hacer uso de las estructuras de control.

En este video vamos a ver la instrucción IF de Excel o la estructura "If...Then...Else", que nos va a ayudar a tomar diferentes caminos o a tomar decisiones en base a lo que devuelva una condición. Este es el capítulo 17 del curso Excel BBVA y Macros. Te recomiendo que no te pierdas este genial capítulo.

Estructuras de control If...Then...Else. Las estructuras de control nos permitirán cambiar el flujo de una aplicación. Y esto cómo es: cuando estamos desarrollando una aplicación, generalmente vamos a tomar diferentes caminos o a tomar diferentes decisiones conforme corre el flujo de una aplicación. Entonces, las estructuras de control nos van a permitir precisamente eso, tomar diferentes caminos. Y la estructura "If...Then...Else" como estructura de toma de decisiones nos va a ayudar a tomar cierto camino en base a lo que devuelva una condición. Y así vamos a evaluar diferentes condiciones hasta dar con una que se cumpla.

Vamos a ver la sintaxis básica de la estructura de control o de la instrucción "If...Then...Else". Aquí básicamente le estamos diciendo "If" o "Si". Esta sintaxis es muy similar a la sintaxis de la función SI utilizada en Excel, solamente que aquí vamos a hacerlo en lenguaje de programación. Y recordemos que los lenguajes de programación son en inglés. Entonces, aquí el "If" es como un "Sí". Si la condición se cumple, "Then" o "Entonces" realizamos una instrucción o un bloque de instrucciones. Y en caso de que no se cumpla, hacemos otra cosa, hacemos otras instrucciones. Si esto lo traducimos al lenguaje común, aquí básicamente decimos: si se cumple una condición, entonces hacemos esto; si no, hacemos esto otro.

"If...Then...Else" y el pseudo código. Aquí está la estructura básica con la que podemos trabajar con la instrucción "If". En la línea uno dice: "If condición Then", es decir, si la condición se cumple, "Then" o entonces realizamos las instrucciones. "ElseIf" o "Si se cumple esta otra condición", entonces ejecutamos otras instrucciones. En caso de que se cumpla la otra condición, "Else" o "Si no", realizamos otras instrucciones. Decimos: si se cumple la condición, hacemos esto; si no se cumple, brinca a la siguiente línea que sería el "ElseIf". Si esta línea o esta condición tampoco se cumple, entonces por descarte o en el "Else", realizamos otra instrucción. Pero aquí podemos tener N cantidad de instrucciones "ElseIf" o de condiciones. El "ElseIf" vamos a poder evaluar diferentes condiciones. Si una no se cumple, brinca a la siguiente; si no se cumple, brinca a la siguiente y así hasta encontrar con una que se cumpla.

Cuando estudiamos programación en la escuela, vemos que el pseudo código es una interpretación en palabras llanas o palabras que entendamos de un código de programación. A la izquierda tenemos el código de programación y a la derecha tenemos el pseudo código. Vamos a trabajar sobre este archivo. Me voy aquí a la hoja que se llama "If...Then...Else" y aquí vamos a trabajar con varios ejemplos. El ejemplo inicial con el que vamos a trabajar es colorear verde, es decir, el fondo verde a esta celda si la cantidad es mayor o igual que 10, colorear en rojo el fondo rojo si es menor que 10. Vamos a ver cómo hacemos esto con lenguaje de programación. Me voy a la ficha Programador, Visual Basic, y aquí en la parte izquierda ya tengo un módulo que se llama "If Estructura de Control". Vamos a reducir el tamaño de esta sección, cambiamos el tamaño de la ventana, la copiamos con la ventana de Excel y vamos a modificar el tamaño de las ventanas. En la parte derecha vamos a trabajar con el código.

Bien, inicialmente vamos a crear una macro que le vamos a llamar "Instruccion". Y como hemos visto en videos anteriores, lo que se recomienda inicialmente es declarar unas variables. Yo voy a declarar la variable "numero1", que esta variable me va a guardar lo que tenemos en la celda B6 aquí en la parte izquierda. Entonces, recordemos, para declarar variables le decimos "Dim numero1 As Byte", ya que va a ser un número pequeño. Y a la variable "numero1" le vamos a guardar lo que tengamos en "Application" (que sería la aplicación de Excel), "Sheets" (la hoja que se llama "If...Then...Else"), punto "Rango" (Range) el rango es el rango B6, punto "Value" (el valor del rango B6) se va a guardar en la variable "numero1".

Ahora vamos a decirles lo siguiente: "If numero1 > 10 Then". Y aquí vamos a trabajar con esto. Le voy a poner "Debug.Print". Esto me va a servir para imprimir un mensaje en la ventana de inmediato. Enseguida le vamos a mostrar y aquí le decimos "Mayor que 10". Aquí la instrucción "If" la dejamos en una sola línea porque simplemente queremos evaluar una condición. Si se cumple, se hace algo; en este caso, se muestra un mensaje. Si no se cumple, no hacemos nada. Esta es la manera más básica de utilizar el "If". Me voy al menú Ver, Ventana Inmediato, ya que utilizando "Debug.Print" vamos a imprimir aquí este texto solamente si "numero1" es mayor que 10.

"Numero1" le vamos a poner un valor de 9 aquí en la parte izquierda, corro la macro, y no sucede nada porque el número no es mayor que 10. Entonces, como no es mayor que 10, no llega a esta parte. Le vamos a poner aquí el 11. No voy a la macro, la corro, y ahora aquí en la parte inferior, en la ventana inmediato, ya me muestra el mensaje "Mayor que 10".

Vamos a ver ahora otro ejemplo. Voy a crear una macro que se va a llamar "CambiarColor". Esta macro la vamos a utilizar para cambiarle el color a esta celda. Como lo mencionamos al inicio, vamos a declarar otra vez la variable "numero1" como "Byte" o tipo "Byte", y vamos a copiar esta misma línea. La copio y pego acá. Ahora vamos a utilizar la otra estructura de la instrucción, pero ahora por filas. Le decimos: "If numero1 >= 10 Then". O "Si numero1 es mayor o igual que 10", "Then" o "Entonces". Voy a presionar la tecla Tabulación y le digo "Rango B6.Interior.Property" y posteriormente la propiedad "Color" igual a, voy a utilizar la biblioteca de VBA y le digo "VBA.Green", es decir, el color verde. "Else" o "Si no", "Rango" (Range) B6.Interior.Color igual a biblioteca VBA.VBA.Red. Y aquí cerramos el bloque "If" con un "End If". Aquí en la parte superior, como fue en una sola línea, no necesitamos cerrar el "If" con el "End If". Cuando utilizamos esta estructura en varias filas, es obligatorio que cerremos el "If". Aquí lo iniciamos, aquí lo cerramos.

Vamos a correr esta macro paso por paso. Me voy al menú Depuración, Paso a Paso por (esta opción es F8). Presiono F8. Bien, ahí estamos definiendo el valor del rango B6 a la variable "numero1". Si "numero1" es mayor o igual a 10, entonces voy a presionar F8 y vamos a ver a qué sección se va la macro. Presiono F8, y si se fijan, siguió a esta parte porque esta condición sí se cumplió. Como sí se cumplió, vamos a hacer esto. Presiono F8, se puso verde, y si se fijan, no pasó por aquí. Al cumplirse esta condición, obviamente ya no llega a esto porque en cuanto se cumple una condición, hace las instrucciones y sale de la macro, o más bien, llega al final del bloque y continúa con la ejecución de la macro. Presiono F8, F8.

Ahora le vamos a poner 9 y otra vez corremos la macro con F8, F8, F8, F8. Si "numero1" es mayor o igual a 10, entonces, presiono F8, como "numero1" no fue mayor que 10, se brincó a la siguiente condición. "ElseIf" o "Si no", "numero1" es menor que 20. Entonces, presiono F8, como la cantidad no fue menor que 20, entonces por descarte se brinca al "Else", es decir, "Si no". Presiono F8, "descuento es igual a 0.2", o 20%. Presiono F8, y ahora si me pongo sobre la variable "descuento", vemos que dice 0.2. Presiono F8, y ahí vamos a asignar ese valor a la celda D17. Presiono F8 y presiono F8. Aquí me da 20% porque yo previamente le di formato de porcentaje a esta celda, es por eso que me pone el 20% como el valor fue 0.2 y 0.2 en porcentaje es el 20%.

Vimos en este video la estructura de control o la instrucción "If...Then...Else", que nos va a ayudar a tomar caminos o a tomar decisiones en base a las condiciones. Si una condición devuelve verdadero o si se cumple, hacemos una instrucción. Si no, evaluamos otra condición y así podemos evaluar varias condiciones. Si tenemos muchas condiciones, más adelante vamos a ver otra estructura de control que es más eficiente que el "If", sobre todo cuando hay muchas condiciones.

Si te gustó, por favor regálame un like, comparte este video con personas que sepas que quieran aprender macros en Excel, suscríbete a este canal si no lo has hecho, activa la campanita si quieres que YouTube te avise cuando publique un video nuevo. Recuerda seguirme en las demás redes sociales como Instagram, YouTube o Facebook como Sergio A Campos H o Excel e Info. Ahí también podemos interactuar. Mi nombre es Sergio. ¡Hasta la próxima!