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

La sintaxis es como sigue:

If condición Then
[Instrucciones a ejecutar]
[ ElseIf condición2 Then ]
[Instrucciones a ejecutar]]
[ Else
[Instrucciones a ejecutar]]
End If

O también

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

En esta estructura “condición” representa el caso que debe cumplirse para que se ejecute la primera parte de la condición, 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.

En los siguientes ejemplos se puede encontrar una gran variedad de usos de if en vba.

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

8 Comments

  1. Hola
    Mi problema es que quiero que al introducir un valor menor a 650000 empiece de nuevo el ciclo hasta que el usuario ingrese un valor correcto y no se grave el valor incorrecto

    Seria de gran ayuda si me ayudaras 🙂

    es un formulario

    If vseguro >= 650000 Then
    lstvs.AddItem vseguro
    Else
    MsgBox (“El Valor dìgitado” & ” ” & vseguro & ” ” & “No es correcto.”)
    End If

    todo el codigo

    Private Sub chkpa_Click()
    If chkpa = True Then
    lblpa.Caption = Round(lbltsv.Caption) * 150000

    Else
    lblpa.Caption = “No Tiene Puntos”

    End If

    End Sub

    Private Sub cmdcalcular_Click()

    Dim nom, i, tseguro As String
    Dim vseguro, tsv, pa As Double

    acum = 0
    i = “s”

    While (i = “s” Or i = “S”)

    nom = InputBox(“Digite El Nombre Asesor”)
    txtna.Text = nom
    ‘nombre asesor – txtna

    tseguro = InputBox(“Digite El Tipo Seguro”)
    ‘nombre asesor – lst
    lstts.AddItem tseguro

    vseguro = InputBox(“Digite El Valor Seguro”)

    If (vseguro >= 650000) Then
    lstvs.AddItem vseguro
    Else
    MsgBox (“El Valor dìgitado” & ” ” & vseguro & ” ” & “No es correcto.”)
    End If

    ‘Tipo seguro debe ser mayor a 650000
    i = InputBox(“Desea continuar s/n”)

    acum = acum + vseguro
    Wend
    lbltsv.Caption = acum
    MsgBox (“Registro Realizado Con Exito”)

    End Sub

    Private Sub cmdinforme_Click()
    MsgBox (” El Asesor ” & nom & ” Obtuvo un total de seguros vendidos de ” & lbltsv.Caption & ” Y Una Comision De : ” & lblc.Caption & ” Obtuvo Puntos ? ” & lblpa.Caption)

    End Sub

    Private Sub cmdlimpiar_Click()
    txtna.Text = Clear
    lstts.Clear
    lstvs.Clear
    lbltsv.Caption = Clear
    lblpa.Caption = Clear

    End Sub

    Private Sub CommandButton1_Click()
    Unload Me
    End Sub

    Private Sub lstvs_Click()

    End Sub

    Private Sub optc12_Click()
    If optc12 = True Then
    lblc.Caption = lbltsv.Caption * 12 / 100
    End If

    End Sub

    Private Sub optc5_Click()
    If optc5 = True Then
    lblc.Caption = lbltsv.Caption * 5 / 100
    End If

    End Sub

    Private Sub UserForm_Click()

    End Sub

  2. El If en VBA es muy importante porque te permite identificar en que ocasiones realizaras diversas actividades. Además te permite poner una condicionante, como if y se coloca alguna acción, then if y la condicional. Muchas páginas las usan como por ejemplo considero que Cineplanet lo emplea, ya que selecciona el lugar de residencia en donde se encuentra, el cine que se encuentra en dicho lugar y luego se procede a seleccionar la pelicula que se encuentra disponible en dicho cine. If es una función muy util para muchas empresas.

  3. Estructura IF
    Para programar: Tres columnas, primera Trabajador, segunda Sueldo y tercera Categoria –
    Si el sueldo estas entre 1000 y 3000 categoria A , caso contrario debe decir Categoria B.

    Estructura IF
    Similar agragando una columna a su derecha: Si el sueldo es mayor a 1000 y su categoria es A, su bonificacion es del 15% del sueldo, caso contrario su bonificacion es del 5% del sueldo.

  4. If- Then- Else.

    Cuando se encuentra una instrucción If…Then…Else, se prueba una condición. Si la condición es “verdadera”, se ejecutan las instrucciones que están a continuación de Then. Si la condición es Falsa, cada instrucción Else-If (si hay alguna) se evalúa en orden. Cuando se encuentra una else-if-condition que sea verdadera, se ejecutan las instrucciones que siguen inmediatamente a la instrucción Else-If asociada. Si else-if-condition se evalúa como verdadera, o si no hay ninguna instrucción Else-If, se ejecutan las instrucciones situadas después de Else. Después de la ejecución de las instrucciones que siguen a Then, ElseIf o Else, la ejecución continúa con la instrucción que sigue a End If.
    Las cláusulas Else-If y Else son opcionales. Puede tener tantas cláusulas Else-If como desee en una instrucción If…Then…Else, pero no puede aparecer ninguna cláusula Else-If después de una cláusula Else. If …Then…Else las instrucciones se pueden anidar una dentro de otra.
    Con la sintaxis de varias líneas, la instrucción If debe ser la única instrucción incluida en la primera línea. Las instrucciones ElseIf, Else y End If pueden ir precedidas solamente por una etiqueta de línea. El bloque If…Then…Else debe terminar con una instrucción End If.

  5. Hola, buen día.
    Espero me puedan ayudar en la siguiente situación, realice la siguiente programación. Copiar datos de la “Hoja1” y pegarlos en la “Hoja2”
    Sub()
    Sheets(“Hoja1”).Select
    Cells(2,1).Select
    PrimerValor=ActiveCell
    Range(“A1”).Select
    ActivarValor=ActiveCell
    Sheets(ActivarValor).Select
    Cells(1,1).Select
    Cells(1,1)=PrimerValor

    Sheets(“Hoja1”).Select
    Cells(3,1).Select
    PrimerValor=ActiveCell
    Range(“A1”).Select
    ActivarValor=ActiveCell
    Sheets(ActivarValor).Select
    Cells(1,2).Select
    Cells(1,2)=PrimerValor

    Sheets(“Hoja1”).Select
    Cells(4,1).Select
    PrimerValor=ActiveCell
    Range(“A1”).Select
    ActivarValor=ActiveCell
    Sheets(ActivarValor).Select
    Cells(1,3).Select
    Cells(1,3)=PrimerValor
    End

    Y así sucesivamente hasta repetir la acción 11 veces. De acuerdo a esto, notaran que los únicos valores que van cambiando(aumentando), son el número de fila de la “hoja1” y el número de columna de la “Hoja2”

    Espero me puedan ayudar en ver la manera de resumir y agilizar esta programación, tengo una vaga idea de que pueda ser con la “If y GoTo” pero no logro realizarlo, O de alguna otra manera que se pueda.

    De antemano, gracias por su apoyo y atención a todos.

    Saludos

  6. Buenas noches . necesito saber como referenciar una celda con macro. Ejemplo.

    Valor= Range(“A1”). Value
    If valor>= (“B10”) then**aqui me da error.
    RGB= interior.color(255,0,0)
    Else
    RGB= interior.color(0,0,0)

    End if
    Next

    • hola andres prueba de esta manera!

      Valor= Range(“A1”). Value
      If valor>= range(“B10”) then.
      RGB= interior.color(255,0,0)
      Else
      RGB= interior.color(0,0,0)
      End if
      Nex

      saludos..

  7. Buenos dias mi nombre es Maurizio y mi problema es el siguiente: mediante la inserción de un UseForm me gustaría crear un reloj analógico, que vio en Internet usted encontrará poco o nada.
    Pero como que ya había creado los años que se encontraban en VB6, ahora costumbre crear usando sólo VBA que me da problemas, no sería tan clase a darle una mirada y realice los cambios necesarios para que también puede trabajar con un UserForm gracias de antemano por la ayuda te me dan sobre saludos desde a. Maurice. (PS) A mí sólo me haría demasiado ver cómo operar una mano luego puedo tratar conmigo.

Deja un comentario

Required fields are marked *.


Excel Avanzado located at , Lima, Perú . Reviewed by usuarios rated: 4.7 / 5