Macro que busque los números faltantes de una columna

Tengo en una columna números de 1000 a 9999 necesito que en otra columna busque los números faltantes de esta y ojala los diera ordenados

1 respuesta

Respuesta
1

.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:

La columna de números la tengo en la hoja 14 ejecute la macro pero no salio nada

08/09/16

Buenas, Jhon

La rutina funciona en la hoja activa, independientemente de cómo se llame.

Sí es importante que coloques las direcciones correctas de celda en las variables que te dejé dentro del código:

Al principio dice:

'JHON, modifica aqui las variables para adaptarlo a tu caso:
CeldaIni = "A3"
CeldaDest = "C3"
LimInf = 1000
LimSup = 9999

Asegúrate de modificar esos valores para que funcione, indicándole la celda donde empieza el listado de números y la celda donde quieres que se listen los faltantes.

Pruébalo y dime si eso era el problema.

Saludos

Fernando

.

La macro funciona muy bien lo que pasa es que la respuesta la da en la siguiente columna pero al final de los números anteriores

.

Perfecto, Jhon

La columna donde quieres los números la decides tu colocando la dirección de la primera celda en la variable CeldaDest.

Y sí, acumula número a número debajo del último que encuentra en esa columna.

Como la rutina funciona en el intervalo que le indiques, puedes borrar lo que haya en esa columna para que reconsidere los faltantes de acuerdo a la lista de números que haya desde la celda indicada en CeldaIni.

Me parece que era lo que habías solicitado, pero dime si estoy confundido.

Abrazo

Fernando

.

¡Gracias! 

.

Un placer

Noto que no te gustó tanto la rutina (por la calificación).

¿Quedó pendiente algo? Me interesa que la solución haga lo que necesitabas.

Saludos

Fernando

.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas