Ejecutar una macro al cambiar un valor de una celd

Hola expertos, soy nuevo aquí, y tengo una pregunta y oajlá me puedan ayudar.
Necesito hacer una macro que despliegue un msg box con un mensaje. Lo que tengo es lo siguiente
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Address = "$A$1" And Target.Value < 10 Then
MsgBox "Caja menor a 10"
End If
End Sub
Hasta ahí ningún problema, el punto es que me toma la celda A1 de la hoja1, mi pregunta es : ¿Cómo puedo hacer para que en lugar de que me tome la celda A1 de la hoja 1 tome la celda A1 de la hoja 2 o de alguna otra hoja?
De antemano muchas gracias

1 respuesta

Respuesta
1
Eso pasa por que estas programando sobre el evento change de "una hoja es especifico", por lo tanto el ámbito de esa macro se limita a ese espacio.
Utiliza el evento change del libro y así amplias el ámbito
El siguiente ejemplo ilustra lo que te digo
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If ActiveSheet.Name = "Hoja2" Then MsgBox "S"
End Sub
En este caso si el cambio ocurre en la hoja activa de nombre "Hoja2" pasa a ejecutar el mensaje de otra forma no lo hace.
Eso tomando en cuenta de que deseas filtrar por nombre de hoja... ¿pero qué pasa si alguien le cambia el nombre a tu hoja?.
Para ello mejor utiliza el indice de la hoja, eso no lo pueden cambiar
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If ActiveSheet.Index = 2 Then MsgBox "S"
End Sub
Bye
Muchas Gracias por tu respuesta estimado experto, agradezco mucho tu comentario. A pesar de ser muy aclarador sigo teniendo una duda, en ese código que se menciona, se puede seleccionar la hoja en la cual quiero que se ejecute la macro, pero como puedo indicarle la celda A1 de la hoja 2, por ejemplo, en otras palabras, ¿Cómo le indico la celda? De antemano muchas gracias
Un saludo
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If ActiveSheet.Name = "Hoja2" And Target.Address = "$A$1" Then MsgBox "S"
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas