VBA Hallar registro coincidente y modificar
Tengo una plantilla que se rellena con datos y por otro lado, una base de datos (otra hoja Excel) donde se almacenan. Cuando el usuario va a cerrar la plantilla ya rellenada, con un BeforeClose, se guardan los datos en la hoja que almacena los registros.
Lo que necesitaría es que si hay algún error en la hoja rellenada por el usuario, después de abrirla y corregir los datos, al cerrarla esos datos no se guardaran como otro registro distinto al que ya había en la hoja de registros, si no, que encontrara el anterior y sobreescribiera los datos con los corregidos.
He pensado en dar a cada registro (los datos que el usuario meta en la plantilla) un num de Referencia o ID para tener registros únicos. Y que el cerrar la hoja modificada, VB busque en la columna de ID en la hoja de datos almacenados, para que coincide con el de la hoja modificada, situe el cursor en esa línea y sobreescriba la información sin crear otro registro nuevo.
La instrucción debería ser algo como:
1º comprueba si la ID de la plantilla modificada coincide con alguna ID almacenada (se me ocurre algo tipo CountIf(Rango_ID_BaseDatos;Celda_ID_PlantillaModificada)>0
2º si coincide (o sea, el CountIf = 1), sitúa el cursor en esa celda ID y copia los datos en esa línea (en lugar de buscar el último registro y pegarlo debajo). La idea es no almacenar registros duplicados si no poder corregir directamente los existentes