Necesitaría una macro para importar el contenido de un fichero, extensión txt

Necesitaría una macro para importar el contenido de un fichero, extensión txt, con ruta:
G:\BANCOS.txt
Que contiene datos:
01/09/2016 01/09/2016 SALDO GO FIT MAL -9,00 800,19 05/09/2016 SALDO TELEFONICA DE ESPANA -104,39 4.757,79
Como ves tienen sus espacios para pegarlos en distintas columnas.
A la hoja :
"GASTOS"
En la celda:
"B6"

1 Respuesta

Respuesta
1

Con esta Macro podrás hacer lo que necesitas

Sub Copiapega()

Workbooks.OpenText Filename:= _
"G:\BANCOS.txt", Origin:=xlMSDOS, _
StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=True, Tab:=False, Semicolon:=False, Comma:=False _
, Space:=True, Other:=False, FieldInfo:=Array(Array(1, 1), Array(2, 1), Array _
(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), Array(7, 1), Array(8, 1), Array(9, 1), Array( _
10, 1), Array(11, 1), Array(12, 1), Array(13, 1), Array(14, 1), Array(15, 1)), _
TrailingMinusNumbers:=True
Range("A1:O23").Select
Selection. Copy
Windows("Libro1.xlsm").Activate
Sheets("GASTOS"). Range("B6"). PasteSpecial xlValues
End Sub

Deberás cambiar los datos en negrita.

El rango lo debes ampliar para asegurarte que no quedarán líneas sin copiar

El nombre del libro no lo has dicho, pon el que pertoque

Hola Dante

La macro me queda así:

Sub Copiapega()
Workbooks.OpenText Filename:= _
"G:\BANCOS.txt", Origin:=xlMSDOS, _
StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=True, Tab:=False, Semicolon:=False, Comma:=False _
, Space:=True, Other:=False, FieldInfo:=Array(Array(1, 1), Array(2, 1), Array _
(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), Array(7, 1), Array(8, 1), Array(9, 1), Array( _
10, 1), Array(11, 1), Array(12, 1), Array(13, 1), Array(14, 1), Array(15, 1)), _
TrailingMinusNumbers:=True
Range("A1:O23").Select
Selection.Copy
Windows("FACTURA VIRGEN.xlsm").Activate
Sheets("GASTOS").Range("B6").PasteSpecial xlValues
End Sub

La ultima Linea:

Sheets("GASTOS").Range("B6").PasteSpecial xlValues

No me la admite.

Un saludo Dante

Grabando la macro:

Me sale perfecto con esta macro, pero tengo el problema, que me varia el ancho de las celdas, ajustándolas al texto y tuve que agregar las medidas de las columnas:

Sub Macro1()
Range("B6").Select
    With ActiveSheet.QueryTables.Add(Connection:="TEXT;G:\BANCOS.txt", _
        Destination:=Range("$B$6"))
        .Name = "BANCOS"
        .TextFileColumnDataTypes = Array(4, 4, 1, 1, 1, 1, 1, 4, 1, 1, 1, 1)
        .Refresh BackgroundQuery:=False
'*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
'  ancho de las celdas, ajustándolas al texto y tuve que agregar las medidas de las columnas
'*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
    Range("B6").Select
    Selection.ColumnWidth = 10
    Range("C6").Select
    Selection.ColumnWidth = 0.08
    Range("D6").Select
    Selection.ColumnWidth = 16
    Range("E6").Select
    Selection.ColumnWidth = 33
    Range("F6").Select
    Selection.ColumnWidth = 8
    Range("G6").Select
    Selection.ColumnWidth = 9
    Range("H6").Select
    Selection.ColumnWidth = 1.57
    Range("I6").Select
    Selection.ColumnWidth = 10
    Range("J6").Select
    Selection.ColumnWidth = 16
    Selection.ColumnWidth = 16
    Range("K6").Select
    Selection.ColumnWidth = 33
    Range("L6").Select
    Selection.ColumnWidth = 8
    Range("M6").Select
    Selection.ColumnWidth = 9
    End With
End Sub

Un saludo Dante

Prueba a cambiar y ponerla así, pero lo más probable es que el problema esté en que el nombre de la hoja esté incorrecto. Edita el nombre de la hoja y fíjate que no tenga un espacio o un punto que no hayas visto

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas