.06/09/16
Buenas, Jhon
Aquí te comparto una rutina que te armé para lograr ese objetivo.
Como verás te dejé cuatro variables para que le indiques en qué celda empieza tu listado y donde quieres que escriba los faltantes (ambas asumiendo que le pondrás un título.
Las otras dos variables te permiten manejar cualquier rango de números.
Accede al Editor de VBA (Atajo: Alt + F11), inserta un módulo - si no tuvieras uno ya- y pega el siguiente código:
Sub NumFalta()
'JHON, modifica aqui las variables para adaptarlo a tu caso:
CeldaIni = "A3"
CeldaDest = "C3"
LimInf = 1000
LimSup = 9999
Cont = 0
dasda = Range(CeldaDest).CurrentRegion.Rows.Count
Set RangBusq = Range(CeldaIni, Range(CeldaIni).Offset(Range(CeldaIni).CurrentRegion.Rows.Count).Address)
For Numero = LimInf To LimSup
Set Encontrado = RangBusq.Find(Numero, , xlValues, xlWhole, xlByRows, xlNext, MatchCase:=False)
If Encontrado Is Nothing Then
Range(CeldaDest).Offset(Range(CeldaDest).CurrentRegion.Rows.Count).Value = Numero
Cont = Cont + 1
End If
Next
ElMensaje = IIf(Cont = 0, "NO SE ENCONTRÓ NUMERO PARA AGREGAR", "Cantidad de números agregados " & Cont & " número" & IIf(Cont > 1, "s", ""))
ElTitulo = "TERMINADO!"
MsgBox ElMensaje, vbInformation, ElTitulo
Set RangBusq = Nothing
Set Encontrado = Nothing
End Sub
Debería quedarte algo así como esto: