Bienvenido a la mayor comunidad de usuarios EXCEL

Regístrate ahora y podrás: / 💪 Hacer preguntas a los expertos / ⬇️ Descargar ejemplos y plantillas / 🏅 Acceder a contenidos premium

Regístrate gratis

Crear nuevo archivo tras Filtrar la información del total de archivos

AKL74

Active member
Buenos días a [email protected]

Esta duda me surge tras realizar un consulta cruzada en otro Foro.

Tengo una carpeta donde se van almacenando archivos, uno por semana. Manualmente yo realizo el Filtrado de la información que en cada momento necesito (mediante la Columna GRUPO, filtro por ejemplo para los grupos 01, 05, 13 y 25) y una vez filtrado todos los archivos creo un archivo nuevo con la información ya filtrada. Es decir, creo un nuevo archivo con la información de los grupos 01, 05, 13 y 25 de cada archivo original. Ni que decir tiene que en otro momento puede ser sólo la información del grupo 07 o la de 8 grupos a la vez....

¿Hay forma mediante VBA de filtrar por la condición que yo le de (los grupos elegidos) TODOS los archivos originales que haya en la carpeta y conseguir 1 único fichero con sólo esos datos filtrados todos unificados?

Adjunto a modo de ejemplo una carpeta con 4 archivos bien simples (en formato csv, aunque también podrían ser xlsx si fuera conveniente).

Agradecería cualquier sugerencia que puedan hacerme.

Saludos y gracias,

Alberto.
 

Adjuntos

  • Prueba PQ en Foro.zip
    2,6 KB · Visitas: 1

AKL74

Active member
Buenos días Haplox, gracias por tu interés.

El número del grupo se especifica en la Columna GRUPO de cada archivo. Ese número está relacionado con la referencia asignada a cada producto en la Columna REF PROD, mediante la fórmula "=izquierda(H2;2)" asigno el grupo en concreto en la Columna GRUPO, y así poder luego filtrar en ella.
Actualmente existen 35 grupos diferentes pero podría aumentar. Si se complica mucho, con poder seleccionar 2 ó 3 grupos sería suficiente.

Gracias por tu tiempo.

Saludos,

Alberto.
 

AKL74

Active member
Buenas tardes a [email protected]

Buscando, leyendo e investigando he sido capaz de avanzar bastante (para empezar no sabía si quiera si se podía filtrar mediante VBA).

Usando de ejemplo uno de los archivos que adjunté y, pasándolo a formato xlsm, le he añadido las siguientes macros:

Código:
Sub FiltroSimple()
Range("A1").AutoFilter Field:=15, Criteria1:="23"
End Sub


Con este código consigo Filtrar por un Grupo en concreto.


Código:
Sub FiltroDoble()
Range("A1").AutoFilter Field:=15, Criteria1:="23", Operator:=xlOr, Criteria2:="7"
End Sub


Con este selecciono 2 criterios para el Filtro (OJO, como se ve el segundo criterio es 7 NO 07 porque no se cómo conseguir que en la Columna GRUPO me aparezca con los 2 dígitos, y no para verlo así sino que me considere para los cálculos los 2 dígitos).

Código:
Sub EliminarFiltro()
Hoja1.ShowAllData
End Sub


Y con este último elimino el Filtro...

Con estos comandos ya llevo mucho avanzado.

Para poder filtrar por los Grupos menores de 10, debido a que NO se cómo mantener por ejemplo el valor 07 en esa Columna, aplico la siguiente macro:

Código:
Sub FiltroSimpleCompl()
Range("A1").AutoFilter Field:=8, Criteria1:="07*"
End Sub


Hasta aquí todo genial.

Mi idea es ejecutar desde un fichero externo la macro, que acceda a cada uno de los archivos que componga la carpeta y extraer de cada uno de ellos la información ya filtrada. Todo ello lo va almacenando en un archivo nuevo, con la información una debajo de la otra.

Primera duda...Imagino que TODOS los archivos los he de tener en formato XLMS en lugar de CSV.
Segunda duda...Una vez que tengo la información filtrada, ¿Cómo puedo grabar mediante VBA SOLO esa información filtrada en este fichero nuevo?
Tercera duda...¿Cómo ejecuto estos comandos para TODOS los archivos que haya en la carpeta?
Y Cuarta duda...Una vez obtenida de un fichero la información, ¿cómo puedo hacer para que al ejecutar nuevamente la macro me detecte que ese fichero ya lo extrajo (para ese criterio de Filtrado) y no lo tome en cuenta?, es decir, sólo me vaya almacenando la información nueva. ¿O debo de renombrar continuamente el archivo nuevo tras ejecutar la Macro?

Saludos y gracias,

Alberto.
 

AKL74

Active member
Buenas tardes.

Hasta ahora he conseguido llegar hasta aquí, adjunto un archivo de ejemplo.
Filtro por 2 grupos, copio lo filtrado y lo pego en otra hoja (luego será a otro archivo) y finalmente borro el Filtro (esto último me falla).

Saludos,

Alberto.
 

Adjuntos

  • F1_Pruebas.xlsm
    25,3 KB · Visitas: 0

Temas similares

Arriba