Pasar archivo .txt a excel con macro

Tengo un problema que quiero solucionar con excel y necesito que alguien por favor me pueda ayuda, les cuento: Tengo en una carpeta muchos archivos .txt que quiero importar en forma automática a excel, pero necesito que la información que contenga dicho archivo vaya en una celda, es decir, un archivo .txt igual una celda en la fila 1 en columna 1, segundo archivo .txt en la fila 2 de la columna 1 y asi sucesivamente.

Además solo si es posible, que el nombre del archivo .txt vaya en la columna 2, al lado de la importacion de la fila 1, fila 2.. Etc..

Yo no tengo conocimiento avanzado en el tema, pero voy con este macro a ver si me pueden ayudar por fa.

Sub importar()
ubica = InputBox("En qué celda va empezar la importación del Texto")
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;C:\Prueba excel\Article - Abridge.txt" _
, Destination:=Range(ubica)) 'AQUI DEBES SEÑALAR LA RUTA DONDE ESTA TU ARCHIVO DE DATOS ORIGEN
.Name = "importar_datos_excel_1"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 850
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
End Sub

1 Respuesta

Respuesta
1

Te anexo la macro para leer todos los archivos txt de una carpeta

Sub Importar_Archivos()
'Por.Dante Amor
    Application.ScreenUpdating = False
    Set h = ActiveSheet
    h.Cells.Clear
    ruta = "C:\Prueba excel\"
    'ruta = "C:\trabajo\libros\"
    '
    fila = 1
    arch = Dir(ruta & "*.txt")
    Do While arch <> ""
        With ActiveSheet.QueryTables.Add(Connection:= _
            "TEXT;" & ruta & arch & "", Destination:=h.Cells(fila, "A"))
            .Name = "importar_datos_excel_1"
            .FieldNames = True
            .RowNumbers = False
            .FillAdjacentFormulas = False
            .PreserveFormatting = True
            .RefreshOnFileOpen = False
            .RefreshStyle = xlInsertDeleteCells
            .SavePassword = False
            .SaveData = True
            .AdjustColumnWidth = True
            .RefreshPeriod = 0
            .TextFilePromptOnRefresh = False
            .TextFilePlatform = 850
            .TextFileStartRow = 1
            .TextFileParseType = xlDelimited
            .TextFileTextQualifier = xlTextQualifierDoubleQuote
            .TextFileConsecutiveDelimiter = False
            .TextFileTabDelimiter = True
            .TextFileSemicolonDelimiter = False
            .TextFileCommaDelimiter = False
            .TextFileSpaceDelimiter = False
            .TextFileColumnDataTypes = Array(1)
            .TextFileTrailingMinusNumbers = True
            .Refresh BackgroundQuery:=False
        End With
        h.Cells(fila, "B") = arch
        fila = fila + 1
        arch = Dir()
    Loop
    Application.ScreenUpdating = True
    MsgBox "Fin"
End Sub

El archivo 1 en la celda A1, el archivo 2 en la celda A2, tal como se muestra en la imagen:


.

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

.

Avísame cualquier duda

.

Hola, muchas gracias por la macro, realmente te estoy muy agradecido y creo que va por excelente camino, pero necesito la ultima ayuda!!... el archivo .txt al tener solo una línea sale perfecto, pero al tener 2 lineas o más.. me copia y pega la información cada línea en una fila y a mi me interesa que toda la información del .txt este en la misma celda, ojala me puedas ayudar en ese última parte.

Saludos, Alfred

También estaba haciendo prueba con diferentes textos y me percate que la línea en el archivo .txt sale de esta manera:

Aloe Vera… ¿Para Qué Sirve Verdaderamente?

Cunado importo dicha información al excel con la macro, dice esto:

Aloe Veraà ┐Para QuÚ Sirve Verdaderamente?

a que se puede deber ese cambio?..

Saludos, Alfred

La macro que pusiste es para importar cada línea del txt en una fila diferente de excel.

Para hacer lo que quieres, es decir, meter todo el archivo en una sola celda, hay que hacer otra macro.

De igual forma, la macro que pusiste importa los datos, si no reconoce algún caracter lo cambia a esos símbolos. Tendrías que cambiar el método para importar datos de txt, para que importe los caracteres tal cual están en el txt.

Con gusto te ayudo con la otra macro, valora esta respuesta y crea una nueva pregunta, ahí específicas todo lo que necesitas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas