Como hacer que una macro se ejecute al coincidir el valor de dos celdas

Necesitaría saber si es posible que una macro se ejecute automáticamente una sola vez cuando el valor de dos celdas ubicadas en hojas distintas coincida.

1 Respuesta

Respuesta
1

Para que una macro se ejecute en automático debe ocurrir un evento, en este caso, si las celdas son modificadas, entonces el evento es cuando se modifica la hoja. Pero si el valor de la celda es el resultado de una fórmula, entonces el evento es cuando se calcula esa fórmula.

Probemos con la primera opción y me dices si es el resultado que esperas.

Pon la siguiente macro en los eventos de workbook.

Cambia en la macro Hoja1 y Hoja2 por los nombres de tus hojas

Cambia en la macro "B5" por la celda de la primera hoja a comparar

Cambia en la macro "C6" por la celda de la segunda hoja a comparar

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
'Por.Dante Amor
    h1 = "Hoja1"
    h2 = "Hoja2"
    '
    Select Case Sh.Name
        Case h1
            If Not Intersect(Target, Range("B5")) Is Nothing Then
                If Sheets(h1).Range("B5") = Sheets(h2).Range("C6") Then
                    Call EjecutarMacro
                End If
            End If
        Case h2
            If Not Intersect(Target, Range("C6")) Is Nothing Then
                If Sheets(h1).Range("B5") = Sheets(h2).Range("C6") Then
                    Call EjecutarMacro
                End If
            End If
        End Select
End Sub
'
Sub EjecutarMacro()
'Por.Dante Amor
    MsgBox "La macro se va a ejecutar"
End Sub

Instrucciones para poner la macro en los eventos ThisWorkbook

  1. Abre tu libro de excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. Del lado izquierdo dice: VBAProject, abajo dale doble click a ThisWorkbook
  4. Del lado derecho copia la macro

Entonces si modificas la celda "B5" o "C6" y el resultado de comparar "B5" y "C6" es igual, entonces se ejecuta la macro. Falta que pongas qué es lo que quieres que haga la macro. En el ejemplo que te estoy enviando la macro solamente pone un mensaje en pantalla.

Si tienes dudas avísame.

Muchas gracias Dante, y perdona que no haya sida más concreto en la primera pregunta, la cuestión es la siguiente:

Yo tengo una hoja excel con una consulta externa a una base de datos la cual se encuentra filtrada por el valor de una celda (hoja 1 celda A1), cada vez que se modifica el valor de esa celda ( que es un número de lote de un material) se me actualiza la consulta que se encuentra en otra hoja del libro (hoja 2). Al mismo tiempo al actualizar la celda hoja 1 celda A1, se me arranca una macro que realiza operaciones con los datos de la consulta. El problema que tengo es que la consulta trada un tiempo en actualizarse, por lo que la macro se ejecuta más rápido, antes de que la consulta este actualizada, y por lo tanto con unos datos erróneos.

Ese es el motivo de mi consulta inicial, necesitaria que la macro no se ejecutase al modificar el valor de la celda hoja 1 celda A1, sino cuando dicha delda fuese igual al valor de la celda Hoja 2 celda A2, celda de la consulta en la que figura el número de lote.

Muchas gracias

Creo que ahora entendí menos, podrías enviarme tu archivo y me explicas con ejemplos lo que sucede con tu macro y lo que quieras que suceda.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas