¿Cómo exportar a excel una serie de archivos .TXT?

En mi trabajo tenemos un compartido donde colocan alrededor de 150 archivos .txt semanalmente, el problema es que tengo que exportarlos uno a uno, ¿me gustaría saber y existe alguna macro o alguna forma de exportarlos a excel de forma masiva?
De antemano les agradezco muchísimo la ayuda que puedan ofrecerme...! =)
Nota: Soy nuevo en esta página y estoy algo perdido... Paso mi correo
[email protected]

1 Respuesta

Respuesta
1
Con la información que das no sé exactamente que es lo que quieres. ¿A qué llamas exportar los archivos a excel? Por lo que entiendo, importas desde Excel archivos a distintos libros u hojas excel, pero habría que saber que haces manualmente para intentar reproducirlo automáticamente con la macro. Una opción que siempre tienes es grabar la macro y luego ver lo que te ha grabado y modificar a partir de ahí para afinar el resultado.
Para importar *.txt a Excel, hay que saber además que versión de Excel tienes. En versiones anteriores a 2007 hay un objeto (FileSearch) que facilita la construcción de la macro. En versiones posteriore no existe y hay que hacerlo de otro modo.
Para ello este código te puede servir, aunque tendrás que adaptarlo a tus necesidades.
Sub Macro_LeeTXTs()
'Ojo. El objeto FilSearch no existe en 2007 y hay que usar algo diferente
Dim nombre As String
Dim this As Workbook
Set FSO = CreateObject("Scripting.FileSystemObject")
sFolder = "C:\user\yo\Desktop" 'indicar el directorio a leer
Set Folder = FSO.GetFolder(sFolder)
Set this = ThisWorkbook
For Each file In Folder.Files
    nombre = file.Path
    If nombre Like "*.txt" Then
        Sheets.Add After:=Sheets(Sheets.Count)
        Sheets(Sheets.Count).Name = FunctionGetFileName(nombre)
        ActiveSheet.Range("A1").Select
        'abre un libro nuevo. hay que copiarlo a la hoja nueva y cerrarlo
        Workbooks.OpenText Filename:=nombre _
            , Origin:=437, StartRow:=1, DataType:=xlDelimited _
            , TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False _
            , Tab:=True, Semicolon:=False, Comma:=False _
            , Space:=False, Other:=False, FieldInfo:=Array(1, 1) _
            , TrailingMinusNumbers:=True
        Cells.Select 'selecciona la hoja donde se ha copiado el txt
        Selection.Copy
        Application.DisplayAlerts = False 'evita la pregunta sobre el contenido del clipboard
        ActiveWorkbook.Close SaveChanges:=False 'cierra el archivo
        Application.DisplayAlerts = True
        Range("A1").Select
        this.ActiveSheet.Paste 'copia en la hoja que habíamos creado
    End If
Next file
End Sub
Function FunctionGetFileName(FullPath As String)
Dim StrFind As String
    Do Until Left(StrFind, 1) = "\"
        iCount = iCount + 1
        StrFind = Right(FullPath, iCount)
            If iCount = Len(FullPath) Then Exit Do
    Loop
    FunctionGetFileName = Right(StrFind, Len(StrFind) - 1)
End Function

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas