Ejecutar macro si alguna celda en el rango cambia
Tengo un rango con fórmulas y quisiera que se ejecute una macro al cambiar algún valor del mismo.
Fórmula matricial del rango {SI.ERROR(INDICE($B$1:$B$104;K.ESIMO.MENOR(SI(C$2=$A$1:$A$104;FILA($B$1:$B$104)-MIN(FILA($A$1:$A$104))+1;"");FILA()-1));)}
'Está macro funciona si los cambios en las celdas no son fórmulas Private Sub Worksheet_Change(ByVal Target As Range) Dim KeyCells As Range ' The variable KeyCells contains the cells that will ' cause an alert when they are changed. Set KeyCells = Range("C2:N10") If Not Application.Intersect(KeyCells, Range(Target.Address)) _ Is Nothing Then ' Display a message when one of the designated cells has been ' changed. ' Place your code here. MsgBox "Cell " & Target.Address & " has changed." Call Actualizar_columna End If End Sub
2 Respuestas
Respuesta de Dante Amor
1
Respuesta de Abraham Valencia
[hola. Quítale el NOT a mi respuesta y te darás cuenta que todo bien y no olvides que si los rangos de los que dependen las fórmulas, pues son extraídos de otra hoja, pues no funciona el evento Change, por ende, es incorrecto afirmar eso que dices de "Lo más preciso sería utilizar las celdas que no tienen fórmulas y que modifican a la fórmula del usuario" ¿Por qué? Porque cada situación depende de una problemática probada que nosotros no tenemos/sabemos; obvio tampoco sabemos si esas celdas dependen de otras hojas como yo asumí, obvio, pero me dio al impresión de eso porque el amigo pedía detectar los cambios en las fórmulas. Nos vemos!!! - Abraham Valencia
En mis pruebas, tengo 2 fórmulas, la primera fórmula en la celda C3 =A3+B3, la segunda fórmula en la celda H3 =E3+F3, si actualizo el valor de la celda E3, el evento Calculate se activa, con el NOT entra al MSG, sin el NOT no entra al MSG, lo mismo sucede si modifico el valor de la celda A3. Me gustaría que probaras mi escenario y me comentas. En la fórmula del amigo no hay referencia a otras hojas, por eso asumí que los valores están en la misma hoja. Pero indiscutiblemente no sabemos si hay celdas que hagan referencias a otras hojas; por eso mi comentario al final: "Lo anterior funciona, siempre y cuando las celdas... sean valores que se actualizan manualmente." Nos vemos! - Dante Amor