No del todo... Pero hagamos un intento...
De movida, la mayoria de las cosas que tengo armadas, ya las hizo alguien antes. El asunto es saber que existen y donde encontrar la forma correcta de escribirlas.
En este caso, yo saque el codigo de algun lado y lo tengo puesto en un archivo mio.
Aca: https://msdn.microsoft.com/en-us/library/office/ff839775.aspx hay varios ejemplos utiles.
Asi como existe esta, que se corre sola cuando hay un cambie en la hoja, hay otras que se corren solas cuando pasa alguna otra cosa. Por ejemplo: Al abrir, antes de guardar y asi.
Aca abajo agrego en el codigo mi pretension de explicar lo mas posible.
Private Sub Worksheet_Change(ByVal Target As Range)
'Esta macro se corre cuando hay un cambio en la hoja
'Defino KEYCELLS es una variable de tipo Rango de celdas.
Dim KeyCells As Range
'Seteo KEYCELLS como una celda en particular: F5.
'Podria ser un rango mucho mas amplio, por ejemplo F5:Z100
Set KeyCells = Range("f5")
'La clave parece estar en esta instruccion que solo uso en aqui.
'No tengo mas experiencia en el tema, pero parece que toma valores de dos vectores y los compara (Keycells, con el que acabas de tocas?)
If Not Application.Intersect(KeyCells, Range(Target.Address)) Is Nothing Then
'Si la interseccion da NADA, entonces no hace nada. (TERMINA)
'Si la interseccion da ALGO (NO DA VACIO, fijate que hay doble negacion Not y Nothing, entonces hace lo que siguiente:
'Llama a la macro que vos querias
Call ActualizarPaciente
End If
End Sub