Macros para importar archivos .txt masivamente a excel

Necesito ayuda para importar 400 facturas en formato .txt a excel. Lo estoy haciendo uno por uno y demora demasiado. Se que hay una forma de hacerlo por macros, pueden ayudarme con los pasos para crear esta macro.

1 respuesta

Respuesta

H o l a:

Para crear la macro, podrías enviarme 4 archivos de ejemplo: 2 archivos txt y 2 archivos de excel.

En un archivo de excel me muestras cómo están las hojas antes de importar los archivos txt.

En el segundo archivo de excel me pones cómo deben quedar importados los 2 archivos txt que me estás enviando de ejemplo.

Los 4 archivos deberán tener ejemplos reales para poder preparar la macro.

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “Gabriela Bardales Flores” y el título de esta pregunta.

Estimado,

Muchas Gracias por la pronta respuesta, te comento que ya envié el correo.

Saludos

H o l a:

Te anexo la macro

Sub ImportarTxt()
'Por.Dante Amor
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    '
    Set l1 = ThisWorkbook
    Set h1 = l1.Sheets(1)
    h1.Cells.Clear
    ruta = l1.Path & "\"
    arch = Dir(ruta & "*.txt")
    Do While arch <> ""
        Workbooks.OpenText Filename:=ruta & arch, _
            Origin:=xlWindows, StartRow:=1, DataType:=xlFixedWidth, FieldInfo:= _
            Array(Array(0, 1), Array(12, 1), Array(36, 1), Array(50, 1), Array(61, 1), Array(72, 5), _
            Array(82, 5), Array(94, 1), Array(97, 1), Array(109, 5), Array(120, 5), Array(131, 1), _
            Array(137, 1), Array(141, 1), Array(145, 1), Array(162, 1), Array(173, 1), _
            Array(185, 1), Array(207, 1)), TrailingMinusNumbers:=True
        Set l2 = ActiveWorkbook
        Set h2 = l2.Sheets(1)
        u2 = h2.Range("P" & Rows.Count).End(xlUp).Row
        u1 = h1.Range("P" & Rows.Count).End(xlUp).Row + 2
        '
        h2.Range("A1:Z" & u2).Copy h1.Range("A" & u1)
        u3 = h1.Range("P" & Rows.Count).End(xlUp).Row + 1
        h1.Rows(u3).Interior.ColorIndex = 16
        l2.Close
        arch = Dir()
    Loop
    MsgBox "Proceso para importar archivos txt", vbInformation, "TERMINADO"
End Sub


‘
Feliz año te desea D a n t e A m o r. Recuerda valorar la respuesta. G r a c i a s
:) 

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas