Macro para importar Archivo TXT, ajustarlo y luego pegar en otro archivo

Tengo un archivo TXT muy pesado, de casi 600 mil filas, y necesito importarlo a una hoja de excel a partir de la celda D1, ya que en las columnas A, B y C poseo formulas VLOOKUP asociadas al archivo TXT. Una vez que los datos TXT estén pegados, las formulas se ejecutarán y necesito hacer un filtro por la columna B, y Deseleccionar lo que esté en Cero o #N/A (es decir lo que no encontró la fórmula o lo encontró en Cero), para luego seleccionar todas las celdas visibles (los datos que me interesan) y copiarlas en un nuevo archivo.

1 respuesta

Respuesta
1

H o l a:

Te anexo la primera parte. Importar archivo txt a partir de la celda D1.

Cambia en la macro "Hoja1" por el nombre de la hoja en donde se va a pegar el archivo txt.

Cambia "archivo.txt" por el nombre del archivo txt que se va a importar.

El archivo txt deberá estar en la misma carpeta del archivo con la macro.

Sub AbrirTxt()
'Por.Dante Amor
'
    Application.ScreenUpdating = False
    Set l1 = ThisWorkbook
    Set h1 = Sheets("Hoja1")
    ruta = l1.Path & "\"
    arch = "archivo.txt"
    Workbooks.OpenText Filename:=ruta & arch, Origin:=xlMSDOS, _
        StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
        ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, _
        Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(1, 1), _
        TrailingMinusNumbers:=True
    Set l2 = ActiveWorkbook
    Set h2 = l2.Sheets(1)
    h2.UsedRange.Copy h1.[D1]
    l2.Close False
End Sub

Muchas gracias por tu ayuda, aún no he probado, pero requiero pegar la información en otro archivo. Entiendo que en la macro indica que la pegará en una hoja del mismo archivo. En una misma carpeta tengo los 3 archivos: "Datos.txt", "Actualización Base de Datos.xlsm" (aquí debería estar la macro) y un 3er archivo llamado "Análisis de Datos.xlsx" (aquí es donde se pegarían los datos, específicamente en la hoja "BASEFINAL")

Saludos,

Prueba la macro y me dices si es así como quieres la carga.

Muchas gracias, ya corrió la macro y efectivamente pegó la información en la celda D1, pero pegó todo en una sola columna, el TXT tiene separaciones de punto y coma.

Quedo atento a tus comentarios. 

Ajuste la macro colocando el TAB en False y el Semicolon en True, y pego la información correctamente separada por columnas, ahora me queda pendiente hacer el filtro, seleccionar la información necesaria y luego pegarla. El filtro será la columna B, con titulo filtro 2, y va a seleccionar todo menos los #N/A, una vez que tiene la selección lista va a pegar en la hoja BASEFINAL del archivo Analisis de Datos.xlsx las columnas A,B,C,E,G,I,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,BW,BX,CB Y CC

Agradezco de antemano toda tu ayuda.

Saludos,

Podrías crear una nueva pregunta para el siguiente tema.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas