Vamos a actualizar nuestra Política de privacidad próximamente. Te recomendamos consultar el avance.

Excel 2016 VBA esencial

If... Then... Else en VBA

¡Prueba gratis durante 10 días

nuestros 1290 cursos !

Prueba gratis Mostrar modalidades de suscripción
La estructura condicional If... Then... Else es la homónima de la función SI en Excel. Es tan fácil de aprender como frecuente es su utilización. Es casi imposible que haya un desarrollo de macros sin esta estructura.

Transcripción

Vamos a estudiar este video una de las estructuras de código más estudiadas en Visual Basic. Se trata dela estructura "IfThenElse". Supongamos que es necesario comprobar si algo que ocurre en Excel es verdadero y si lo fuera entonces quisiéramos que VBA haga cualquier acción. Pues esto pero traducido a código sería el contenido de la siguiente línea: Si el nombre de la hoja activa es igual al texto "MiHoja55" entonces que en la celda A1 el valor que haya sea el texto "Hola". Si ahora volvemos a Excel podemos comprobar como el nombre de la hoja sí que cumple con esa condición, por lo tanto en el rango o celda A1 si ejecutamos la macro tenemos que introducir el valor "Hola". Para comprobarlo ponemos las pantallas de forma paralela, nos situamos dentro de la macro y ahora ejecutamos con F5. Y vemos como efectivamente en la celda A1 se coloca el valor "Hola". Pues con esta explicación queda prácticamente claro para que sirve la estructura "IfThenElse". Lo único que hay alguna que otra variante que necesitamos conocer. Acabamos de practicar con una de las variantes de esta estructura en la que todo el código aparece a lo largo de una línea. También hay otra variante que se utiliza mucho, incluso diría que se utiliza todavía más que la que hemos visto, que es comenzar con "If" después poner la prueba lógica y después "Then". A continuación todas las líneas de código que se tienen que ejecutar y cuando ya hemos acabado de ejecutar todo el código terminamos con un protocolo de salida que es "End If". Esta segunda forma de la estructura condicional "IfThenElse" se utiliza cuando hay más de una línea de código para ejecutar. Cuando sólo haya una línea de código podemos utilizar la primera. También tenemos que comentar que si bien estamos catalogando esta estructura como "IfThenElse", aún no ha aparecido la instrucción "Else" por ningún lado. En este ejemplo sí la vamos a ver. Si nos fijamos ya en el código terminado, podemos ver que comenzamos por una prueba lógica que sería si el nombre de la hoja activa es un determinado nombre entonces que en la celda A2 el valor sea la palabra "Hola". Y también en la celda A3 el valor sea "Adiós". Y ahora mediante la instrucción "Else" lo que podemos conseguir es que en el caso de que no sea cierta la comprobación primera, entonces la estructura condicional sea capaz de ejecutar un código distinto. Si nos damos cuenta en lo que hemos visto anteriormente, si la condición no se cumplía, no ocurría nada. Aquí si la condición no se cumple también puede ocurrir algo que es justamente lo que se coloca entre "Else" y "End If". Y una vez explicado todo vamos a la práctica. Concretamente con la segunda de las macros. La primera ya la comprobamos así que vamos con esta segunda. Vamos a ejecutarla, nos situamos dentro de la macro y presionamos F5. Y comprobamos que es cierto, es decir, si el nombre de la hoja activa es "MiHoja55" entonces que en A2 y en A3 aparezcan los valores "Hola" y "Adiós", respectivamente, Y eso es justo lo que ha ocurrido. Y ahora recapacitemos sobre lo que ocurriría con la tercera macro. Si el nombre de la hoja es este de aquí, que por cierto no coincide con el real, entonces en los rangos A2 y A3 aparecerán los valores "Hola" y "Adiós", respectivamente. Si esto no es cierto entonces en A4 tiene que aparecer el valor, "El nombre no coincide". Evidentemente es fácil saber qué es lo que va a ocurrir. Y por último comentar que también podemos combinar con la estructura condicional "ifThenElse" los operadores lógicos "Or" y "And". Vamos a poner un pequeño ejemplo. Si el nombre de la hoja activa es "MiHoja55" "and range ("C1").value" es igual a 222 entonces que ocurra lo que este código está representando, y si no evidentemente no ocurrirá nada. Ahora si ejecutamos la macro presionando F5 vemos como no ocurre nada y es porque acabamos de agregar un operador lógico que es como el operador "y" en las funciones de Excel y lo que está agregando es otra condición a la primera. Es decir, si el nombre de la hoja es "MiHoja55", "y" además también en el rango C1 hay un valor igual a 222 entonces que ocurra esto. Evidentemente como en C1 no está ese valor, no va a ocurrir nada y no se va a ejecutar el código. Como decíamos también es posible combinar la estructura condicional "IfThenElse" con otro operador que sería "Or", que para los curiosos en este caso - vamos a borrar todo - sí que se ejecutaría el código. Vamos a comprobarlo presionando F5. Y ahí tenemos resultados.

Excel 2016 VBA esencial

Aprende desde cero el lenguaje VBA con el que podrás automatizar, acelerar muchas tareas cotidianas en Excel y escribir rutinas de código aplicables a tu trabajo cotidiano.

2:26 horas (42 Videos)
Actualmente no hay comentarios.
 

Este curso video2brain está disponible como descarga y para ser visualizado online. ¡Pero no hace falta que decidas entre las dos opciones! Al comprar el curso, disfrutarás de ambas posibilidades.

La descarga te permite ver las lecciones sin estar conectado/a a internet y supone una navegación fácil y ágil entre capítulo y capítulo. Si vas a trabajar en diferentes ordenadores o si no quieres descargarte el curso completo, entra en la web con tus datos de acceso y disfruta directamente de tus vídeos online. Te deseamos que disfrutes de este curso y te resulte de mucha utilidad.

Estamos a tu disposición si tienes cualquier tipo de duda o pregunta.