Modificamos un ejemplo publicado por Jim Rech en google groups. Hemos transformado la referencias absolutas en relativas. Tan sólo hay que copiar el código en un módulo de Excel y guardar el fichero si es nuevo (o devolvería error pues la propiedad Application.ThisWorkbook.Path está vacía hasta que no se guarda el fichero).
Copiamos los dos ficheros (.txt o .csv) que deseamos unir, Fichero1 y Fichero2, en la misma ruta del Excel con el código. En esa ruta se creará el Fichero3 de salida, con la unión del 1 y el 2, y se sobreescribirá si ya existe.
Sub UnirFicherosTexto() Dim r As String r = Application.ThisWorkbook.Path Dim SrcFiles, CurrSrc As String Dim DestFile As String, Counter As Integer Dim TextLine As String SrcFiles = Array(r & "\Fichero1.txt", r & "\Fichero2.txt") Open r & "\Fichero3.txt" For Output As #1 For Counter = 0 To UBound(SrcFiles) Open SrcFiles(Counter) For Input As #2 Do While Not EOF(2) Line Input #2, TextLine Print #1, TextLine Loop Close #2 Next Close #1 End SubPara unir más de dos ficheros, los añadimos en el Array.
SrcFiles = Array(r & "\Fichero1.txt", r & "\Fichero2.txt", r & "\Fichero3.txt")
Me alegro de que lo encuentres útil. Saludos.
ResponderEliminarUna duda, y si tengo n número de ficheros en mi carpeta ?
ResponderEliminarSucede que no sé cuántos pueden llegar en un día, como pueden ser 2 como pueden ser 30, que modificación se podría realizar ?
Hay otra entrada dedicada a ello: https://nubededatos.blogspot.com/2017/05/unir-todos-los-ficheros-de-texto-de-una.html
Eliminar