Cómo usar If Then Else en VBA – Paso a paso

¿Deseas estudiar a emplear el Afirmaciones If Then Else en VBA? ¡Entonces esta guía es para ti!

Si está empezando a estudiar VBA o algún otro lenguaje de programación, terminantemente debería estudiar a emplear el término de If Then y Else.

Estas normas le dejan hacer código para contrastar una condición y efectuar una cierta acción. ¡Contrastar!

¿Dónde emplear If Then Else en VBA?

Hay distintas causas para utilizar afirmaciones If Then Else en VBA, como observaremos en los ejemplos durante este producto.
No obstante, solo como un ejemplo, imagine que tiene una enorme lista de puntuaciones de los alumnos en Excel y quiere destacar a todos y cada uno de los alumnos que consiguieron un 10.
Puede llevarlo a cabo de forma manual, o sea, contrastar nivel por nivel y destacar los grados que cumplen con los criterios.

Exactamente la misma lógica se puede llevar a cabo en VBA empleando las afirmaciones If Then y Else.

En esta guía, le exponemos por medio de ejemplos prácticos, distintas opciones a fin de que use If Then Else en VBA.

Sintaxis IF Entonces Else

El paso inicial a fin de que domines la utilización de IF Then Else en VBA es sencillamente comprender la sintaxis, o sea, de qué manera se asigna cada elemento en VBA. En un caso así puedes usar 2 opciones:

SI condición Después código_verdadero [Else código_falso]

Otra alternativa es:

SI condición Después
código_verdadero
Mucho más
código_falso
SI Fin

Tenga presente que la parte Else de la primera sintaxis está entre corchetes y es opcional. Además de esto, ya que es una sintaxis fácil de solo una línea, no requiere declarar End IF.

Por otro, en el momento en que la instrucción IF Then Else se distribuye en múltiples líneasentonces es requisito mencionarle a VBA dónde se encuentra el SI Entonces. De manera frecuente se habitúa dividir una declaración IF Then Else en el momento en que el código que precisa realizar es largo y se disminuye a múltiples líneas.

Si no emplea End If en el momento en que sea preciso, VBA mostrará el próximo mensaje:

si bloque sin final Si error de compilación de VBA

Ejemplos de empleo de IF Then Else en VBA

A fin de que logre empezar a entender el término de IF Then Else en VBA, empleemos ciertos ejemplos sencillos y prácticos.

Entonces, suponga que tiene la calificación de un estudiante en la celda A2 y quiere contrastar por medio de un código VBA si ese estudiante tiene que aprobar o no. (Para este caso de ejemplo, la calificación mínima para aprobar es 75).

Para eso, puedes emplear el próximo código:

Sub Verificar_Nota()
si Rango(«A2»).Valor >= 75 Después MsgBox «¡Estudiante aprobado!»
Terminar sub

Tenga presente que el código previo tiene solo una línea que corrobora el valor contenido en la celda A2. Si el valor contenido en la celda A2 es mayor o igual a 75, se mostrará el mensaje «¡Estudiante aprobado!».

De lo contrario, esto es, si la nota es inferior a 75, no va a pasar nada.

No obstante, si quiere enseñar un mensaje para el otro caso (así sea aprobado o fallido), puede emplear el próximo código:

Sub Verificar_Nota()
si Rango(«A2»).Valor >= 75 Después
MsgBox «¡Estudiante aprobado!»
Mucho más
MsgBox «¡Estudiante reprobado!»
Terminara si
Terminar sub

Vea en el código previo que nos encontramos utilizando IF y Else para contrastar 2 condiciones distintas. Esto es, en el momento en que la calificación del alumno sea mayor o igual a 75, la condición SI es VERDADERA y se ejecutará el próximo código.
Por otra parte, si la condición IF es FALSA, entonces el código pasa a la parte Else y ejecuta el bloque contenido en ella.

Al final, merece la pena rememorar que en el momento en que utilizamos el código en solo una línea, no hay necesidad de emplear End IF. No obstante, en el momento en que el código se distribuye en múltiples líneas, es requisito emplear End IF finalmente la instrucción IF.

SI Entonces anidado en VBA

En el ejemplo mencionado previamente, utilizamos una sola condición IF Then. No obstante, en muchas ocasiones posiblemente deba contrastar múltiples condiciones. Para esta situación, puede usar

  • Múltiples sentencias IF Then
  • Declaración IF Then Else
  • IF Entonces Else If Else Declaración

Observemos todas estas opciones por medio de ejemplos prácticos.

Múltiples sentencias IF Then

Utilizando exactamente el mismo ejemplo de la calificación de un estudiante, si el estudiante consigue una calificación inferior a 75, VBA debería enseñar el mensaje «
No obstante, si la calificación es mayor o igual a 75, debe enseñar el mensaje

Para esto tenemos la posibilidad de usar el próximo código:

Sub Verificar_Nota()
si Rango(«A2»).Valor >= 75 Después MsgBox «¡Estudiante aprobado!»
si Rango («A2»). Valor <75 Después MsgBox «¡Estudiante reprobado!»
Terminar sub

Tenga presente que puede emplear múltiples afirmaciones IF Then como se expone arriba. Pero pese a ser servible, esto está lejos de ser un excelente ejemplo de codificación, en tanto que si tiene 100 condiciones, entonces debe emplear 100 IF Entonces para cada una.
Además de esto, todas y cada una de las afirmaciones IF Then se valoran y aquellas donde la condición es verídica, se ejecuta el código.

Entonces, aun si la primera declaración IF Then es adecuada, la segunda y otras aún van a ser evaluadas.

Declaración IF Then Else

En este momento suponga que en vez de sencillamente enseñar el mensaje «¡Estudiante aprobado!» / “¡Estudiante reprobado!”, tengamos una condición mucho más.

O sea, si el estudiante tiene una calificación inferior a 75, el mensaje va a ser “¡Estudiante reprobado!”, si la calificación es mayor o igual a 75, el mensaje habrá de ser “¡Estudiante aprobado!”. y, si la nota es mayor a 85, el mensaje ha de ser “Felicidades”.

En un caso así, tenemos la posibilidad de utilizar el próximo código:

Sub Verificar_Nota()
si Rango («A2»). Valor <75 Después
MsgBox «¡Estudiante reprobado!»
Mucho más
si Rango («A2»). Valor < 85 Después
MsgBox «¡Estudiante aprobado!»
Mucho más
MsgBox «¡Felicidades!»
Terminara si
Terminara si
Terminar sub

Vea en el código previo que nos encontramos utilizando múltiples afirmaciones IF (IF entonces anidadas) con el apoyo de Else. Este género de anidamiento le deja contrastar múltiples condiciones y realizar el bloque de código importante.

IF Entonces Else If Else Declaración

El ejemplo mencionado previamente (utilizando IF Then Else) se puede mejorar aún mucho más empleando la instrucción ElseIf.

En un caso así, tenemos la posibilidad de utilizar el próximo código:

Sub Verificar_Nota()
si Rango («A2»). Valor <75 Después
MsgBox «¡Estudiante falló!»
ElseIf Rango («A2»). Valor < 85 Después
MsgBox «¡Estudiante aprobado!»
Mucho más
MsgBox «¡Felicidades!»
Terminara si
Terminar sub

Tenga presente que con la utilización de ElseIf, pudimos sostener todas y cada una de las condiciones en una sola instrucción IF Then, lo que logró que el código fuera mucho más pequeño y mucho más mejorado.

IF Then Else con AND y OR

Hasta la actualidad, ha aprendido a contrastar únicamente una condición al unísono utilizando If Then Else en VBA.
No obstante, si tiene múltiples condiciones dependientes, puede utilizar afirmaciones AND u OR adjuntado con condiciones IF.

Compruebe ahora la sintaxis para utilizar AND u OR adjuntado con IF Entonces

si condición_1 Y condición_2 Después
Código_verdadero
Mucho más
Código_falso
Terminara si

En el código que se expone arriba, solo en el momento en que se cumplen condition_1 y condition_2 se ejecuta code_True. O sea, aun si entre las condiciones es falsa, VBA ejecutará false_code.

Por otra parte, con OR, aun si entre las condiciones es verídica, ejecutará true_code. Esto es, solo en el momento en que todas y cada una de las condiciones son falsas, ejecuta false_code.

En este momento observemos un caso de muestra práctico de de qué manera utilizar las afirmaciones AND y OR adjuntado con IF Then Else en VBA.

Suponga que en este momento tiene las puntuaciones de 2 materias de un estudiante y quiere contrastar las próximas condiciones:

  • Estudiante reprobado: Esta leyenda debe verse en el momento en que la nota es menos de 75 en alguno de las disciplinas.
  • Alumno aprobado: Esta leyenda debe verse en el momento en que la nota mayor que 75, pero menos de 85 en las dos materias.
  • Felicitaciones: Esta leyenda debe verse en el momento en que la nota es mayor de 85 en las dos materias o en solo una materia.

En un caso así, tenemos la posibilidad de utilizar el próximo código:

Sub Verificar_Nota()
si Rango («A2»). Valor <75 O Rango («B2»). Valor <75 Después
MsgBox «¡Estudiante falló!»
ElseIf Rango («A2»). Valor < 85 y Rango(«B2»).Valor < 85 Después
MsgBox «¡Estudiante aprobado!»
Mucho más
MsgBox «¡Felicidades!»
Terminara si
Terminar sub

Empleando Diferente <> con IF Entonces

En los ejemplos vistos previamente, utilizamos condiciones para contrastar si un valor es igual a cierto valor o no.
No obstante, puede utilizar códigos afines para contrastar cuándo el valor es diferente de un cierto valor.
Exactamente la misma en las funcionalidades de Excel, en VBA representamos distintas por el signo <>.

Vea ciertos ejemplos prácticos ahora.

Empleo de If Then Else con bucles en VBA

En este momento que sabe de qué manera marchan las afirmaciones If Then Else en VBA, merece la pena estudiar a utilizarlas en ejemplos útiles que lo asistirán a hacer de manera automática su trabajo períodico.

Ejemplo 1: Almacenar y cerrar todos y cada uno de los libros de trabajo (salvo el libro de trabajo activo)

Suponga que tiene bastantes libros de trabajo libres y quiere cerrarlos todos de manera rápida salvo el libro de trabajo activo. Para eso, puedes emplear el próximo código:

Sub SaveEFCloseFolders()
Dim carpeta como libro de trabajo
Para cada En la carpeta Libros de trabajo
En el caso de fallo Reanudar siguiente
si carpeta.Nombre <> ActiveWorkbook.Nombre Después
carpeta.almacenar
carpeta.Cerrar
Terminara si
próximo Carpeta
Terminar sub

Tenga presente que el código previo almacena y cierra todos y cada uno de los libros de trabajo (salvo la carpeta activa).

En un caso así, nos encontramos usando el bucle For Next para recorrer la compilación de todos y cada uno de los libros libres y contrastar el nombre empleando la condición If.

Si el nombre no es exactamente el mismo que el libro de trabajo activo, se guardará y va a cerrar.

Esencial: Si hay código VBA en ciertos libros de trabajo y no lo ha guardado como .xls o .xlsm, va a ver una observación (en tanto que los códigos vba se pierden en el momento en que lo almacena en formato .xlsx).

Ejemplo 2: destacar celdas negativas

Otro ejemplo atrayente es la oportunidad de destacar celdas con valores negativos. Imaginemos que tiene una columna con múltiples números y quiere destacar en colorado todas y cada una de las celdas que poseen valores negativos. Esto se puede llevar a cabo utilizando el próximo código:

Sub Highlight_Negatives()
Dim celda como rango
Para cada En la celda de selección
si celda.Valor < 0 Después
cella.Interior.Color = vbRed
celda.Fuente.Color = vbBlanco
Terminara si
próximo célula
Terminar sub

Tenga presente que el código que se expone arriba emplea el período For Each y corrobora cada celda que eligió. Si la celda tiene un valor negativo, se resaltará en colorado con el tono de fuente blanco.

Ejemplo 3: Obtener números de secuencia alfanuméricos

Suponga que tiene una cadena alfanumérica en múltiples celdas y quiere obtener los números en otra celda.

En un caso así, puedes llevarlo a cabo utilizando el próximo código:

Función Extract_Numbers (CellRef como cadena)
Dim longitud como entero
Longitud = Longitud (CellRef)
por i = 1 a longitud
si EsNumérico(Mid(CellRef, i, 1)) Después Resultado = Resultado & Mid(CellRef, i, 1)
Siguiente yo
Extract_Numbers = Resultado
función final

Vea en el código previo que nos encontramos creando una función adaptada en Excel llamada Extract_Numbers. Esta función se puede emplear en Excel como una función regular. Vea el ejemplo ahora:

Extraer números de secuencia alfanuméricos: si, entonces, en VBA

¿Dónde poner el código VBA?

Si eres nuevo en la programación de VBA y aún no tienes idea dónde insertar los códigos nombrados en este tutorial, ¡deja de preocuparte! Mira el pasito a pasito ahora:

1. entrar a la guía Creador (Si su pestañita Creador de Excel no está habilitada, consulte aquí de qué forma habilitarla).

Vista de la guía para desarrolladores de Excel

2. realice click en la opción básico visual. Esto va a abrir el editor de VB.

3. En el panel Explorador de proyectos en el Editor de VB, lleve a cabo click con el botón derecho en realice click con el botón derecho en cualquier objeto del libro de trabajo en el que quiera insertar el código. Si no ve Project Explorer, vaya a la pestañita Monitor y lleve a cabo click Explorador de proyectos.

4. entrar a la guía Insertar y realice click Módulo. Esto insertará un elemento de módulo en su libro de trabajo.

5. Copie y pegue el código en la ventana del Módulo.

Esencial: Si va a almacenar sus hojas de cálculo con códigos VBA para utilizarlas en otro instante, entonces el papel de cálculo debe guardarse en formato XLSM (Libro de Excel habilitado para macros).

Consulte asimismo los próximos consejos de Excel y VBA:

Entonces, ¿qué le pareció la guía para emplear afirmaciones If Then Else en VBA? ¿Tienes alguna pregunta o tienes alguna sugerencia? ¡Deja tu comentario abajo!

Tommy Banks
Estaremos encantados de escuchar lo que piensas

Deje una respuesta

TecnoBreak | Ofertas y Reviews
Logo
Enable registration in settings - general
Shopping cart