Excel Avanzado

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

Excel Avanzado

Ejemplo de uso de IF then else (VBA)

| 7 comentarios

La instrucción If Then Else es una estructura condicional que nos permite ejecutar acciones en función de si se cumple una condición . Generalizando tenemos tenemos: If cumple condición Then ejecutar acción 1 Else ejecutar acción 2.

Dentro de esta estructura puede haber otra estructura condicional y dentro de esta otra, y así sucesivamente. A esto se le conoce como  una Estructura If anidada. A continuación veremos un ejemplo de una estructura If Then Else:

En VBA de MS.Excel escribimos el siguiente procedimiento para determinar que porcentaje de descuento se le realiza a una compra dependiendo del monto de compra; y de esta manera obtener el monto final a pagar. Si el monto de compras es mayor a s/. 10,000.00 entonces se le aplica un descuento de 10%, caso contrario se le aplica un descuento de 5%:

Sub COBRANZA()
MONTO = Worksheets("HOJA1").Range("B1").Value

If MONTO > 10000 Then
DESCUENTO = 0.1 * MONTO
Else
DESCUENTO = 0.05 * MONTO
End If

MONTO_F = MONTO - DESCUENTO
Worksheets("HOJA1").Range("B2").Value = DESCUENTO
Worksheets("HOJA1").Range("B3").Value = MONTO_F

End Sub

EXCEL 300x135 Ejemplo de uso de IF then else (VBA)

Elaborado por: Juan Carlos Castillo

7 comentarios

  1. Muy bueno sus tutoriales
    son de gran importancia

  2. Hola, Tengo una pregunta si yo quiero elegir toda la columnan b y no solo la celda b1 como podria corregir el codigo.
    Gracias.

    • el comodin para seleccionar toda una columna es (columna:columa)

      por ejemplo si quieres toda la columna b seria: Range(B:B).Select

  3. quiero sacar el promedio mas alto de una lista de alumnos

    por ejemplo el promedio esta en la columna f2 hasta f10 o un sin fin de numeros
    usando if
    que compare el primer numero con el que sigue, si el que sigue es mayor se mueve a ese numero mayor y sigue comparando con el resto hasta que quede con el numero mayor.

  4. Espero puedan ayudarme.
    Gracias.
    Tengo esta expresión y no se redactarla.
    La expresión es:
    Si mi ( hoja 1) mi celda (a1) igual a 2018 y
    Si en mi hoja 1 la celda (" c1") es mayor a 1 y menor que tres utiliza el siguiente programa.

  5. Hola,
    Alguno me puede apoyar tengo el presente código

    Sub BUSCAR()
    Dim FILAS, BUSCAR As Variant

    Do
    BUSCAR = InputBox("No de Plaquita", "BUSCAR")
    If BUSCAR = "" Or Not IsNumeric(BUSCAR) Then
    MsgBox "DATO INCORRECTO", 16, "BUSCAR"
    Exit Sub
    End If

    Cells.Find(What:=BUSCAR, After:=ActiveCell).Activate

    BUSCAR = Val(BUSCAR)

    For FILAS = 2 To 50000
    If Hoja2.Cells(FILAS, 1) = Val(BUSCAR) Then
    Hoja2.Cells(FILAS, 1).Interior.Color = QBColor(10)
    End If

    Next FILAS

    Loop

    End Sub

    pero a la hora de realizar la busqueda y no encontrar el número en las celdas visibles (menciono visibles porque utilizo filtros y me interesa encontrar las que no oculta el filtro) y me aparece la ventana de Finalizar, Depurar y Ayuda.

    Me gustaria saber como agregarle la sentencia que si no encuntra el valor me indiqlue Valor no encontrado y me de la opción de volver a intentar.

    Gracias por la ayuda.

  6. buenas ,,favor como insetar la funcion suma(rangoceldas),dentro de la macro,pero que el rango de celdas lo da application.inputbox... , es decir que sume cada vez que cambie el rango de celdas con inpuboxt,, muchas gracias

Deja una respuesta

Los campos requeridos estan marcados con *.