Mira mi respuesta anterior, ...la edité justo antes de que pusieras tu último post.
Editado:
Leyendo tu pregunta, ...hay un aspecto, un poco complicado (o al menos, a mí me lo parecía), y es definir en lugar de una sola celda, un rango, para que si se modifica alguna celda del mismo, se ejecute la macro. Después de buscar en la red, y probar varias cosillas, al final he dado con esto (supongo que tienes delante el
Ejemplo-1.xls que he colgado en el post anterior):
En el proyecto VBA, Hoja1, pone:
Código:
Sub Worksheet_Change(ByVal Target As Range)
'Miramos si el rango B5, cambia, para llamar al macro "Copiar"
If Target.Row = 5 And Target.Column = 2 Then
Call Copiar
End If
End Sub
De esa forma, si alguien modifica la celda B5 (fila=5, columna=2), se llama a la macro "Copiar".
En tu caso, quieres que si se modifica una celda del rango comprendido entre B16 e I16, haga lo mismo. En ese caso, cambia lo anterior, por esto otro:
Código:
Sub Worksheet_Change(ByVal Target As Range)
'Miramos si el rango d B6 a I16, cambia, para llamar al macro "Copiar"
'(esto no es mío, ya que lo he sacado después de escarbar un poco en la red):
If Not Intersect(Target, Range("B16:I16")) Is Nothing Then
Call Copiar
End If
End Sub
Salu2