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
Elaborado por: Juan Carlos Castillo
15/06/2015 a las 10:49 am
Muy bueno sus tutoriales
son de gran importancia
18/04/2016 a las 10:31 am
Hola, Tengo una pregunta si yo quiero elegir toda la columnan b y no solo la celda b1 como podria corregir el codigo.
Gracias.
18/01/2017 a las 12:05 pm
el comodin para seleccionar toda una columna es (columna:columa)
por ejemplo si quieres toda la columna b seria: Range(B:B).Select
21/10/2017 a las 9:52 pm
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.
17/04/2018 a las 2:34 am
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.
25/05/2019 a las 10:01 pm
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.
04/08/2020 a las 4:55 pm
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