Detectar numeraciones faltantes y listarlas en otra hoja

Solo consultas sobre macros y código VBA Excel.
Reglas del Foro
1. Antes de hacer tu pregunta intenta con el buscador de este foro (muchas preguntas ya fueron respondidas antes!)
2. Si haces una nueva pregunta, es muy recomendable que adjuntes el ejemplo Excel para poder comprenderla mejor!
3. Realiza tu pregunta de forma clara, explicando bien cada paso de lo que haces y tendrás más probabilidad de respuesta!
Responder
Paco_py
Miembro Frecuente
Miembro Frecuente
Mensajes: 42
Registrado: 31 May 2019 09:57

Detectar numeraciones faltantes y listarlas en otra hoja

Mensaje por Paco_py » 16 Ene 2020 10:36

Buenos días estimados expertos

Gusto en saludarlos nuevamente

Quisiera valerme de sus conocimientos para que me ayuden a crear una macro que recorra un rango en donde tengo un listado de facturas ordenadas de menor a mayor, detecte las numeraciones que faltan y las liste en otra hoja.
Doy un ejemplo para quede más claro
4050
4051
4052
4058
4060

Lo que la macro debería hacer:
Faltantes:
4053
4054
4055
4056
4057
4059

De antemano agradezco la ayuda.



ramirolatigano
Miembro Frecuente
Miembro Frecuente
Mensajes: 36
Registrado: 02 May 2019 12:43

Re: Detectar numeraciones faltantes y listarlas en otra hoja

Mensaje por ramirolatigano » 17 Ene 2020 09:46

Hola Paco, no soy experto pero se me ocurre algo como para guiarte:

Adelanto que la intención es ayudarte y no darte un código en bandeja, por dos motivos, el principal es que te motive a ti a aprender a crear tus códigos, la documentación de microsoft es muy útil. La secundaria es que como no soy experto, escribirte un código preciso me tomaría demasiado tiempo...

En fin;

Que tu macro busque la última fila con datos en la columna en cuestión, supongamos que es la fila 1357...

Luego utilizas un bucle for al estilo

For i=1 to 1357

y dentro del bucle un if, al estilo

If Cells(i,TuColumna).value <> Cells(i-1,TuColumna).value + 1 Then
Código para pegar la celda en cuestión en otra hoja
End if

Next

Espero te sirva y te animes a hacerlo.
Si nada de esto te sirve porque en realidad "crees que no lo entiendes" (no se cual es tu experiencia con las macros) no descartes usar el grabador de macros para generar la macro.

Abrazo.



Avatar de Usuario
Antoni
Miembro Frecuente
Miembro Frecuente
Mensajes: 6519
Registrado: 22 Dic 2009 04:58
Ubicación: GALICIA (ESPAÑA)

Re: Detectar numeraciones faltantes y listarlas en otra hoja

Mensaje por Antoni » 18 Ene 2020 07:17

Abre el adjunto y pulsa sobre la flecha azul.
No tienes los permisos requeridos para ver los archivos adjuntos a este mensaje.



Paco_py
Miembro Frecuente
Miembro Frecuente
Mensajes: 42
Registrado: 31 May 2019 09:57

Re: Detectar numeraciones faltantes y listarlas en otra hoja

Mensaje por Paco_py » 18 Ene 2020 10:21

ramirolatigano escribió:
17 Ene 2020 09:46
...escribirte un código preciso me tomaría demasiado tiempo...
Hola Ramiro, antes que nada, muchas gracias!!

Créeme que soy de los que se pasan horas creando códigos cuando puedo permitírmelo, lastimosamente esta vez no es el caso, pues es para la oficina y estoy con tiempo reducido para la tarea, así que no me puedo dar el lujo de pruebas y errores hasta conseguirlo.

Saludos!!



Paco_py
Miembro Frecuente
Miembro Frecuente
Mensajes: 42
Registrado: 31 May 2019 09:57

Re: Detectar numeraciones faltantes y listarlas en otra hoja

Mensaje por Paco_py » 18 Ene 2020 10:28

Antoni escribió:
18 Ene 2020 07:17
Abre el adjunto y pulsa sobre la flecha azul.
Muchas gracias Antoni.

Nada más un detalle quisiera agregar, en la columna (digamos B) existe un dato que se llama timbrado, únicamente si el timbrado no ha variado desde la fila anterior debe listar los faltantes.

Ejemplo
A1 B1
1 124
3 124
6 124
21 134
24 134

lo correcto sería:
2
4
5
22
23

los que se encuentran entre el 6 y el 21 no son faltantes, pues significa que no fueron utilizados.



Avatar de Usuario
Antoni
Miembro Frecuente
Miembro Frecuente
Mensajes: 6519
Registrado: 22 Dic 2009 04:58
Ubicación: GALICIA (ESPAÑA)

Re: Detectar numeraciones faltantes y listarlas en otra hoja

Mensaje por Antoni » 18 Ene 2020 13:16

Para el futuro, especifica todos los requerimientos al realizar una consulta y adjunta un archivo Excel con lo que tienes y lo que quieres.

Código: Seleccionar todo

Sub Faltantes()
Application.ScreenUpdating = False
Hoja2.Columns("A").ClearContents
For x = 1 To Hoja1.Range("A" & Rows.Count).End(xlUp).Row - 1
   If Hoja1.Range("B" & x) = Hoja1.Range("B" & x + 1) Then
      For n = Hoja1.Range("A" & x) + 1 To Hoja1.Range("A" & x + 1) - 1
         fila = fila + 1
         Hoja2.Range("A" & fila) = n
         Hoja2.Range("B" & fila) = Hoja1.Range("B" & x)
      Next
   End If
Next
Hoja2.Select
End Sub



Paco_py
Miembro Frecuente
Miembro Frecuente
Mensajes: 42
Registrado: 31 May 2019 09:57

Re: Detectar numeraciones faltantes y listarlas en otra hoja

Mensaje por Paco_py » 22 Ene 2020 08:08

Antoni escribió:
18 Ene 2020 13:16
Para el futuro, especifica todos los requerimientos al realizar una consulta y adjunta un archivo Excel con lo que tienes y lo que quieres.

Código: Seleccionar todo

Sub Faltantes()
Application.ScreenUpdating = False
Hoja2.Columns("A").ClearContents
For x = 1 To Hoja1.Range("A" & Rows.Count).End(xlUp).Row - 1
   If Hoja1.Range("B" & x) = Hoja1.Range("B" & x + 1) Then
      For n = Hoja1.Range("A" & x) + 1 To Hoja1.Range("A" & x + 1) - 1
         fila = fila + 1
         Hoja2.Range("A" & fila) = n
         Hoja2.Range("B" & fila) = Hoja1.Range("B" & x)
      Next
   End If
Next
Hoja2.Select
End Sub
Muchas gracias!!



Responder