Avaro 1911!
Pues eso qu ete propuse es lo que he hecho, eso creo.
Estas son las macros
Private Sub btnAnadir_Click()
Dim FilaLibre As Integer
With Sheets("Base de Datos")
FilaLibre = .Range("A65536").End(xlUp).Row + 1
.Cells(FilaLibre, 1) = [C1]
.Cells(FilaLibre, 2) = [C2]
.Cells(FilaLibre, 3) = [C3]
.Cells(FilaLibre, 4) = [C4]
End With
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rango As Range
If Not Application.Intersect(Target, Range("C1")) Is Nothing Then
Application.EnableEvents = False
If [C1] = "" Then
Range("C2:C4") = ""
Else
Set Rango = Sheets("Base de Datos").Range("cedula").Find(Target, Lookat:=xlWhole)
If Not Rango Is Nothing Then
Range("C2") = Sheets("Base de datos").Cells(Rango.Row, "B")
Range("C3") = Sheets("Base de datos").Cells(Rango.Row, "C")
Range("C4") = Sheets("Base de datos").Cells(Rango.Row, "D")
Sheets("Base de Datos").Rows(Rango.Row).Delete Shift:=xlUp
Else
MsgBox ("No se encuentra la cédula: " & Target)
Range("C2:C4") = ""
End If
End If
Application.EnableEvents = True
End If
End Sub
Aunque como ya te dije me parecía mejor el método de sustituir los datos en la misma fila que estaban. La macro funciona sobre la columna C, en la B está lo que tenías desde el principio.
Ahora mismo te mando el fichero si logro acordarme de tu correo.