Como importar la tercera columna de varios txt a una hoja excel

Con la siguiente macro copio a una hoja excel los datos de todos los txt q tengo en la carpeta donde pongo el archivo excel y el nombre del archivo, estos txt tenían solo una columna de datos y la macro funciona perfecto para esto. Ahora debo hacer lo mismo solo que los txt que tengo tienen 3 columnas de datos y solo debe importarse a excel la tercera columna de todos esos txt. Si la ejecuto como esta solo se me copia la primera columna y necesito que la macro haga lo mismo solo q se copie la 3ra columna del txt. Me imagino q a la macro se le deba hacer alguna modificación, ¿me podría ayudar? La macro es la siguiente:

Sub ejemplo()
'por luismondelo
mio = ActiveWorkbook.Name
ruta = ActiveWorkbook.Path
ChDir ruta & "\"
archi = Dir("*.txt")
Do While archi <> ""
Workbooks.OpenText archi, origin:=xlWindows, startrow:=1, DataType:=xlDelimited
otro = ActiveWorkbook.Name
Range("a1:a" & Range("a65000").End(xlUp).Row).Copy
Workbooks(mio).Activate
Range("av2").End(xlToLeft).Offset(0, 1).Select
ActiveSheet.Paste
Range("av1").End(xlToLeft).Offset(0, 1).value = otro
Workbooks(otro).Close False
archi = Dir()
Loop
ActiveSheet.Columns("a:a").EntireColumn.Delete
MsgBox "proceso terminado"
End Sub

1 respuesta

Respuesta
1

Como soy el autor de la macro me pongo con el tema

Mándame por mail un par de esos txt

[email protected]

Bueno de todas formas prueba con esta macro:

Sub ejemplo()
'por luismondelo
mio = ActiveWorkbook.Name
ruta = ActiveWorkbook.Path
ChDir ruta & "\"
archi = Dir("*.txt")
Do While archi <> ""
Workbooks.OpenText archi, origin:=xlWindows, startrow:=1, DataType:=xlDelimited
otro = ActiveWorkbook.Name
Range("c1:c" & Range("c65000").End(xlUp).Row).Copy
Workbooks(mio).Activate
Range("av2").End(xlToLeft).Offset(0, 1).Select
ActiveSheet.Paste
Range("av1").End(xlToLeft).Offset(0, 1).value = otro
Workbooks(otro).Close False
archi = Dir()
Loop
ActiveSheet.Columns("a:a").EntireColumn.Delete
MsgBox "proceso terminado"
End Sub

Escribe esta línea justo debajo de la que dice: 'por luismondelo

Application.DisplayAlerts = False

No olvides finalizar la consulta

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas