Problema
Deseamos unir y consolidar todos los ficheros de texto guardados en una carpeta en un fichero de texto único. Por ejemplo, como paso previo para importar el mismo en Excel, Access u otros programa.
Solución
El siguiente código unirá todos los ficheros con la extensión txt presentes en la ruta donde se ubica el fichero Excel ThisWorkbook.Path, con independencia del formato, columnas o encabezados. Insertamos un salto de línea vbCrLf delante de cada fichero.
- Abrimos el Editor de Microsoft Visual Basic: Alt+F11.
- Copiamos la siguiente subrutina en un módulo.
- Ejecutamos la subrutina, F5.
- Aparecerá un cuadro de diálogo mostrando el tiempo de ejecución de la subrutina.
- En la carpeta en la que se ubica el Excel se habrá creado un fichero con el nombre: nuevo_fichero.txt.
Sub Unir_Ficheros()
Dim t As Single
t = Timer
c00 = ThisWorkbook.Path & "\" ' the path
c01 = Dir(c00 & "*.txt")
Do Until c01 = ""
c02 = c02 & vbCrLf & CreateObject("scripting.filesystemobject").opentextfile(c00 & c01).readall
c01 = Dir
Loop
CreateObject("scripting.filesystemobject").createtextfile(c00 & "nuevo_fichero.txt").write c02
MsgBox Timer - t
End Sub
Referencias
en que parte puedo modificar que el archivo generado me elimine los renglones en blanco que genera al unificar los txt.
ResponderEliminarquedo al pendiente.
saludos.