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
Nube de datos
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.