Cómo importo varios TXT a iguales columnas en Excel?

Ante todo me presento. Soy docente e investigador de la Facultad de Ciencias Agrarias (UNL- Argentina). Estoy trabajando con un output de un software que me arroja datos de raíces.

La idea es que cada txt contiene todas las columnas correspondientes a diferentes características de las raíces. Yo quiero que esas columnas figuren solo una vez y luego el resto de los archivos (.txt) solo me copie los datos debajo de cada columna correspondiente.

Supongamos el ejemplo: muestra 1- largo de raíces 55 cm- diámetro de raíces 0,62 mm; muestra 2- largo de raíces 45 cm- diámetro de raíces 0,55 mm. Las columnas serían Muestra, Largo de raíces, Diámetro de raíces. Luego debajo deberían figurar solo los valores.

Si algún alma caritativa me da una mano para automatizar el proceso (son casi 500 archivos!) Les estaré muy agradecido! Adjunto un enlace para el archivo de muestra (contiene datos de 2 muestras juntas).

Archivo A

1 respuesta

Respuesta
1

H o l a:

No puedo descargar el archivo, podrías enviarme a mi correo, 2 archivos txt y un archivo de excel que muestre cómo quieres el resultado de esos 2 archivos txt. En total envíame 3 archivos.

Gracias Dante! Acabo de enviarte un mail con la información solicitada... Aguardo novedades!

H o l a:

Te anexo la macro para importar archivos

Sub ImportarArchivos()
'Por.Dante Amor
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Set l1 = ThisWorkbook
    Set h1 = l1.Sheets("Hoja1")
    h1.Cells.Clear
    '
    ruta = l1.Path & "\"
    arch = Dir(ruta & "*.txt")
    una = True
    Do While arch <> ""
        Workbooks.OpenText Filename:=arch, Origin:=xlMSDOS, _
            StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlNone, _
            ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, _
            Comma:=False, Space:=False, Other:=False, FieldInfo:=Array( _
            Array(1, 1)), TrailingMinusNumbers:=True
        Set l2 = ActiveWorkbook
        Set h2 = l2.Sheets(1)
        If una Then
            una = False
            h2.Rows("1:5").Copy h1.[A1]
            j = 6
        End If
        h2.Rows(6).Copy h1.Range("A" & j)
        j = j + 1
        l2.Close
        arch = Dir()
    Loop
    MsgBox "Archivos txt importados", vbInformation, "IMPORTAR TXT"
End Sub

':)
':)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas