Excel Avanzado

Macros, Vba en Excel y muchos ejemplos de nuestro Curso de Excel Avanzado

Excel Avanzado

Ejemplos de If en VBA

La instrucción If Then else en VBA es necesaria para tomar decisiones dentro del código en VBA.

Esta estructura tiene un comportamiento similar a Función SI en Excel, y también es conocida como bucle IF

Sintaxis de IF THEN ELSE

La sintaxis completa es como sigue:

If condición Then

[Instrucciones a ejecutar]

[ ElseIf condición2 Then 

[Instrucciones a ejecutar]]

[ Else

[Instrucciones a ejecutar]]

End If

La parte correspondiente al ELSEIF  como al ELSE son opcionales, por lo que la estructura podría quedar de las siguientes formas: 

IF ELSEIF

En esta alternativa pueden quedar situaciones en las que no cumplan ni el primer ni el segundo conjunto de instrucciones.

If condición Then

[Instrucciones a ejecutar]

[ ElseIf condición2 Then 

[Instrucciones a ejecutar]]

End If

IF THEN ELSE END IF

En esta segunda alternativa siempre si la "condición" no se cumple, se ejecutarán las instrucciones correspondientes al ELSE, es decir siempre se ejecutará una de las dos instrucciones.

If condición Then

[Instrucciones a ejecutar]

[ Else

[Instrucciones a ejecutar]]

End If

IF THEN 

Tomando en cuenta que tanto el ELSEIF como el IF son opcionales, el código podría quedar de la siguiente forma, en la que solo si se cumple la "Condición" se ejecutarán las instrucciones que se encuentran dentro del IF.

If condición Then

[Instrucciones a ejecutar]

End If

IF THEN ELSE

Si se escribe todo en una sola línea, se debe prescindir del end if. 

If condition Then [Instrucciones a ejecutar]  [ Else [ Instrucciones a ejecutar] ]

 

Parte de la sintaxis de IF THEN ELSE

¿Qué es IF?,  es el inicio de del bucle IF THEN ELSE.

En esta estructura "condición" representa el caso que debe cumplirse para que se ejecute la primera parte de la condición, si se quieren usar varias condiciones será necesario usar los operadores lógicos en VBA.

Elseif es una parte opcional que se ejecutaría solo si la parte anterior no se cumple y se requiere añadir alguna otra condición

Mientras que "else" hace que todos los casos en los que no se haya cumplido ninguno de los casos previos se pueda ejecutar las instrucciones siguientes, así tendríamos por ejemplo:

Sub EjemploIfThenElse()

a = 12

If a = 8 Then

MsgBox "1"

ElseIf a = 12

Then MsgBox "2"

Else

MsgBox "3"

End If

End Sub

Si "a" vale 8 entonces se ejecutaría el primer mensaje, si "a" en cambio valiese 12 se ejecutaría el segundo mensaje, en todos los demás valores posibles de "a" se ejecutaría el tercer mensaje.

IF THEN ELSE Ejercicios

En los siguientes ejemplos se puede encontrar una gran variedad de usos de if en vba, desde ejemplos, sencillos de IF THEN ELSE, hasta ejemplos anidados, y aplicados en la resolución de diversos problemas. 

  1. Sorteo en Excel con Macros
  2. Doble condicional en VBA
  3. Encontrar palabras usando If then else
  4. If ... Then - Cálculo de Contribución Tributaria Mensual bajo Régimen RUS
  5. If then else aplicado al cálculo de precio y descuento de producto.
  6. Buscador personalizado de stock - If then Else
  7. IF THEN ELSE para mostrar: APROBADO o DESAPROBADO
  8. Ejemplo Programa de Educación Financiera
  9. Estimación de la cantidad de cajeros corresponsales a instalar
  10. Aprobación de Tarjeta mediante Estructura if then else
  11. IF then - Incremento de producción condicional
  12. Ejemplo de If then Else - Aplicado al cálculo de beneficios para el personal
  13. Ejemplo If then else: Evaluación de Proyectos
  14. Ejemplo If then Else con el Scoring
  15. Clasificación del Grupo Etáreo del MINSA
  16. Uso de DO LOOP para el ejercicio del nivel estudiantil (con IF THEN )
  17. Ejemplo de If then Else aplicado al Cálculo del Promedio Final de un Curso
  18. Ejemplo de Select Case y If ... Then aplicado a la conversión de Tipo de cambio
  19. If Plan Postpago - Prepago Celular
  20. Ejemplo de If then Else aplicado a descuento por tardanzas
  21. Ejemplo de If..Else aplicado a la valuación de opciones "Call" y "Put"
  22. Ejemplo de If then Else aplicado a la aprobación de un préstamo
  23. Ejemplo de if then else aplicado al craest
  24. Userform: Ejemplo de If Then and Else aplicado a la toma de Pagares
  25. Ejemplo de If then else aplicado al Cálculo de Descuentos por Volumen de Compra
  26. Ejemplo de IF THEN ELSE para el cambio de un numero en base menor a 10
  27. Ejemplo de If Then Else aplicado a verificación de fechas
  28. Aplicación de IF THEN ELSE a Put Options
  29. Estructura IF THEN ELSE aplicado a gratificaciones
  30. Ejemplo de uso de IF then else (VBA)
  31. Ejemplo de uso de IF then else (desde formulario)

24 comentarios

  1. Hola!
    he revisado casi todos sus tutoriales y me han servido muchísimo, estoy trabajando con un proyecto pero quede parada con un código que no logro hacer funciona y la verdad no se siquiera si será posible (soy medianamente entendida en excel)

    tengo: dos hojas excel una se llama " solicitud tc" y otra " encuesta"
    tengo varias condicionantes en BeforePrinte (llenado de datos obligatorios")
    necesito saber si la impresión se ambas hojas se puede condicionar a que este o no seleccionado un CheckBox ( es mi caso especialmente se llama CheckBox6)

    necesito que al estar seleccionado el CheckBox6 se activen ambas hojas para imprimirlas,(si es que están cumplidas todas las condiciones que definí), de lo contrario si no esta seleccionado el checkbox6 solo se imprima la hoja 1 "solicitud"; Ya tengo creado el commandButton para imprimir la primera Hoja, pero no logro llega al código para condicionar la impresión

    este es el código que he estado probando sin mucho éxito:
    Private Sub CommandButton1_click()
    '
    ' macro2 Macro
    '

    '
    If CheckBox6_value = True Then
    Sheets(Array("SOLICITUD TC", "ENCUESTA")).Select
    ThisWorkbook("SOLICITUD TC", "ENCUESTA").Activate
    ActiveSheets.SelectedSheets.PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False
    Else: CheckBox6_value = False
    Sheets("SOLICITUD TC").Select
    Sheets("SOLICITUD TC").Activate
    ActiveSheets.SelectedSheets.PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False
    Sheets("SOLICITUD TC").Select
    End If
    End Sub

    * me da error en linea Sheets("SOLICITUD TC").Select

    agradecería que me pudieran ayudar.

  2. Buenos dias, necesito hacer un boton con una macro que me devuelva las cuentas de clientes iguales que hay en dos columnas pero que tienen importe diferente para buscar descuadres, y queria saber si teneis alguna macro sencillita en vba o si me podeis ayudar. Muchas gracias

Página de comentarios 2 de 2
1 2

Deja una respuesta

Los campos requeridos estan marcados con *.