Presentamos una selección de ejemplos de código en VBA listo para ejecutar mediante cualquier macro o por medio de un evento de algún objeto (Excel, un libro, una hoja o un rango).
En este artículo, ofrecemos líneas de código ejecutable para realizar acciones con una hoja de Excel, siempre que se cumpla una condición. Concretamente veremos el grupo de instrucciones IF ... THEN...ELSE (Si.... entonces..... si no).
El texto en verde que a veces se puede ver entre el código, es el que debe personalizar el usuario, si procede.
IF....THEN
1) Comprobar que un número escrito en la celda activa es el requerido. Si se cumple, muestra un mensaje diciendo "El código es correcto". Si no se cumple, la macro termina y no hace nada.
If ActiveCell = "BF1234" Then
MsgBox ("El código es correcto")
End If
MsgBox ("El código es correcto")
End If
End Sub
IF....THEN...ELSE
2) Comprobar que un número escrito en una celda determinada es el requerido. Si se cumple, muestra un mensaje diciendo "El código es correcto". Si no se cumple, muestra un mensaje diciendo "El código no es correcto".
2) Comprobar que un número escrito en una celda determinada es el requerido. Si se cumple, muestra un mensaje diciendo "El código es correcto". Si no se cumple, muestra un mensaje diciendo "El código no es correcto".
Sub ComprobarCódigo()
If Range("A1") = "BF1234" Then
MsgBox("El código es correcto")
MsgBox("El código es correcto")
Else
MsgBox("El código no es correcto")
End If
End If
End Sub
Como puedes usar este codigo dos veces?...
ResponderEliminarHola, soy nuevecita en esto y necesito ayuda
ResponderEliminarCree un boton q me ejecute las siguiente macro:
Private Sub CommandButton1_Click()
Dim x As Integer
Dim capacitacion As String
Dim capacitacion2 As String
Dim capacitacion3 As String
Gestiondecalidad = Range("C5").Value
Medisyn = Range("C6").Value
Bioseguridad = Range("c7").Value
If Gestiondecalidad < 80 Then
capacitacion = "Gestión de calidad"
Else
capacitacion = "."
If Medisyn >= 80 Then
capacitacion2 = "."
Else
capacitacion2 = "Medisyn"
If Bioseguridad < 80 Then
capacitacion3 = "Bioseguridad"
Else
capacitacion3 = "."
End If
End If
End If
Range("A12").Value = capacitacion
Range("B12").Value = capacitacion2
Range("c12").Value = capacitacion3
Range("A12").Font.Bold = True
Range("B12").Font.Bold = True
End Sub
El problema es que me toma solo una de las condiciones, no si dos cumplen al misma condicion, por ejemplo <80 en gestion y medisyn, a pesar de darle ubicaciones distintas a la celda. No quiero crear un boton por cada item.
gracias
Si quieres que se cumplan dos condiciones simultáneas (o más) puedes utilizar el operador lógico "AND"en cada "IF". Por ejemplo:
EliminarIf Gestiondecalidad < 80 AND Bioseguridad <80 Then
capacitacion = "Gestión de calidad"....
......
...
Por supuesto, también podrías utilizar el operador lógico "OR" para que se cumpla una condición... u otra (pero no las dos de forma simultánea).
Saludos
Buenas tarde,
ResponderEliminarComo puedo llamar esta macro dos veces.
si lo ejecuto con Call. solo se ejecuta una vez y se detiene.
Sub generar()
Hoja3.Columns("a:v").Delete
fin = Hoja1.Range("b10").End(xlUp).Row
Hoja1.Range("b2").Select
For y = 0 To Int((fin - 1) / 2)
For k = 0 To 2
Hoja2.Range("c5").Value = "'" & Format(ActiveCell.Value, "00000000")
Hoja2.Range("a1:v33").Copy Destination:=Hoja3.Cells((33 * y) + 1, (22 * k) + 1)
ActiveCell.Offset(1, 0).Select
If ActiveCell.Value = "" Then End
Next k
Next y
End Sub
Sustituye la línea: If ActiveCell.Value = "" Then End
Eliminarpor la línea: If ActiveCell.Value = "" Then Exit Sub
Saludos
Muchísimas gracias. es lo que necesitaba, que Dios te siga Bendiciendo.
Eliminar