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.
- Sorteo en Excel con Macros
- Doble condicional en VBA
- Encontrar palabras usando If then else
- If ... Then - Cálculo de Contribución Tributaria Mensual bajo Régimen RUS
- If then else aplicado al cálculo de precio y descuento de producto.
- Buscador personalizado de stock - If then Else
- IF THEN ELSE para mostrar: APROBADO o DESAPROBADO
- Ejemplo Programa de Educación Financiera
- Estimación de la cantidad de cajeros corresponsales a instalar
- Aprobación de Tarjeta mediante Estructura if then else
- IF then - Incremento de producción condicional
- Ejemplo de If then Else - Aplicado al cálculo de beneficios para el personal
- Ejemplo If then else: Evaluación de Proyectos
- Ejemplo If then Else con el Scoring
- Clasificación del Grupo Etáreo del MINSA
- Uso de DO LOOP para el ejercicio del nivel estudiantil (con IF THEN )
- Ejemplo de If then Else aplicado al Cálculo del Promedio Final de un Curso
- Ejemplo de Select Case y If ... Then aplicado a la conversión de Tipo de cambio
- If Plan Postpago - Prepago Celular
- Ejemplo de If then Else aplicado a descuento por tardanzas
- Ejemplo de If..Else aplicado a la valuación de opciones "Call" y "Put"
- Ejemplo de If then Else aplicado a la aprobación de un préstamo
- Ejemplo de if then else aplicado al craest
- Userform: Ejemplo de If Then and Else aplicado a la toma de Pagares
- Ejemplo de If then else aplicado al Cálculo de Descuentos por Volumen de Compra
- Ejemplo de IF THEN ELSE para el cambio de un numero en base menor a 10
- Ejemplo de If Then Else aplicado a verificación de fechas
- Aplicación de IF THEN ELSE a Put Options
- Estructura IF THEN ELSE aplicado a gratificaciones
- Ejemplo de uso de IF then else (VBA)
- Ejemplo de uso de IF then else (desde formulario)
14/10/2021 a las 10:00 pm
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.
20/12/2021 a las 3:38 am
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