¿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]
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