Macro que se ejecute si se cumplen 2 condiciones

Condición 1: en la hoja2 se encuentre la información de la celda A1 de la hoja1

Condición 2:en la hoja 1 se encuentre la palabra costo en la columna Q

Si ambas condiciones se cumple que se ejecute otra macroX

2 Respuestas

Respuesta
1

En la condición 1, r el contenido de la hoja1, celda A1, lo quieres buscar en la hoja2, ¿pero en cuál columna?

Te pongo un ejemplo y ya me comentas

Sub Marco1()
    If Sheets("Hoja2").Range("A1").Value = Sheets("Hoja1").Range("A1") Then
        Set b = Sheets("Hoja1").Columns("Q").Find("costo", lookat:=xlWhole)
        If Not b Is Nothing Then
            Call macro2
        End If
    End If
End Sub

sal u dos

Hola Dante Muchas gracias... en toda la hoja...

De paso quisiera preguntar que quiere decir el código

If Not b Is Nothing Then

En la macro te pongo unos comentarios

Sub Marco1()
    'busca el dato de la celda A1 de la hoja1
    dato = Sheets("Hoja1").Range("A1")
    'establece en el objeto b el resultado de buscar
 'en todas las celdas (cells) de la hoja2
    Set b = Sheets("Hoja2").Cells.Find(dato, lookat:=xlWhole)
    '
    'si b no está vacío, significa que encontró el dato
    If Not b Is Nothing Then
        'ahora se busca la palabra "costo" en la hoja 1 en la columna Q
        Set b = Sheets("Hoja1").Columns("Q").Find("costo", lookat:=xlWhole)
        'si b no está vacío, significa que encontró "costo"
        If Not b Is Nothing Then
            Call macro2
        End If
    '
    Else
        'significa que b está vacío
        MsgBox "El dato de la hoja1 no existe en la hoja2"
    End If
End Sub

.

.

Respuesta
1

Esteban Lagos,

Adjunto código de la solución de tu consulta para su revisión.

Sub CondicionEjecutarMacro()
On Error Resume Next
Busca1 = Worksheets("Hoja2").Cells.Find(What:=Worksheets("Hoja1").Range("A1"), LookIn:=xlValues, MatchCase:=True)
Busca2 = Worksheets("Hoja1").Range("Q:Q").Find(What:="Costo", LookIn:=xlValues, MatchCase:=True)
If (IsEmpty(Busca1) = False) And (Busca2 = "Costo") Then
    Call NombreMacro ' Digitar el nombre de la macro a ejecutar
Else
MsgBox "No cumplen las dos condiciones"
End If
End Sub

Espero que te sirva de ayuda y este acorde a tus necesidades. Cualquier consulta estaré atento.

Por favor no olvidar de valorar las respuestas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas