Contestado por correo.
Adjunto la respuesta por si le puede interesar a alguien
El problema del Excel es que no hay un evento que se ejecute al salir de una celda sin modificar el contenido por eso hay que usar el ingenio y utilizar las herramientas que tenemos.
Me ha costado hacerlo. He estado todo el día pensando. bueno en realidad no tenía ni idea y he dejado de pensar para que las ideas fluyeran y al final ha salido.
Te cuento como funciona: tengo una variable Celda_Anterior que cuando entras en la hoja esta vacía y el cursor se coloca en la celda B2.
Cuando cambias de posición al entrar en una celda siempre ejecuta el evento Worksheet_SelectionChange. Si la variable Celda_Anterior está vacía mira si la nueva celda es D2 o F2 y lo guarda en la variable.
Cuando vuelve a cambiar de celda después de pasar por una de las obligatorias vuelve a ella hasta que tenga datos.
Cuando ya tiene datos vacía la variable y vuelve a verificar el destino, por si salta de la D2 a la F2 o viceversa.
Saludos..
\\//_