Necesito importar un archivo de datos a excel

Hola buenas tardes, mi planteamiento es el siguiente, quiero hacer un macro para abrir archivos de datos *.VF en excel, el procedimiento es: 1 abrir archivo, 2 buscar el archivo, 3 seleccionar delimitar y seleccionar el delimitado por espacios, y después hacer unos cambios en las columnas, para ello, grabando un macro del proceso me sale pero solo sirve para el archivo seleccionado durante la grabación, lo que quiero es que al ejecutar el macro me permita seleccionar el archivo, mis primeros intentos son el siguiente, pero me aparece un error
Sub Macro1()
'
' Macro1 Macro
'
'
' Workbooks.OpenText:= direccion
Dim direccion As Variant
direccion = Application.GetOpenFilename(, , "Busqueda")
If direccion = False Then Exit Sub
ChDir "C:\Documents and Settings\HIDROINFORMATICA2\Escritorio"
Workbooks.OpenText Filename:=direccion
,Origin: _
=xlMSDOS, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
xlDoubleQuote , ConsecutiveDelimiter:=True, Tab:=True, 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)), _
TrailingMinusNumbers:=True
ActiveWindow.SmallScroll Down:=-6
Columns("L:L").Select
Selection.Cut
Columns("N:N").Select
ActiveSheet.Paste
Columns("J:J").Select
Selection.Cut
Columns("L:L").Select
ActiveSheet.Paste
Columns("H:H").Select
Selection.Cut
Columns("J:J").Select
ActiveSheet.Paste
Columns("F:F").Select
Selection.Cut
Columns("H:H").Select
ActiveSheet.Paste
Columns("D:D").Select
Selection.Cut
Columns("F:F").Select
ActiveSheet.Paste
Columns("D:D").Select
Selection.Delete Shift:=xlToLeft
End Sub
por otro lado dpizzio (experto) publico un macro para abrir un archivo
Sub Abrir_archivo()
Dim strRutaArchivo As String
strRutaArchivo = Application.GetOpenFilename("Archivo (*.VF), *.VF")
On Error GoTo 9
Workbooks.Open Filename:=strRutaArchivo
9:
End Sub
Funciona muy bien, pero no puedo delimitar mi archivo para que lo separe por espacios
Saludos espero me puedan ayudar con este problema

1 respuesta

Respuesta
1
Pásame la grabación sin los cambos, pero necesito sabes:
¿La dirección de búsqueda es siempre la misma?
Solo el nombre del archivo es el que cambia?????//
Muchas gracias por tu respuesta mira te paso el macro grabado original
Sub Macro1()
'
' Macro1 Macro
'
'
ChDir "C:\Users\NEWTON\Desktop\adjuntos_07_12_2011"
Workbooks.OpenText Filename:= _
"C:\Users\NEWTON\Desktop\adjuntos_07_12_2011\CM1039AA.VF", Origin:=xlMSDOS, _
StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=True, Tab:=True, 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)), TrailingMinusNumbers:=True
Columns("L:L").Select
Selection.Cut
Columns("N:N").Select
ActiveSheet.Paste
Columns("J:J").Select
Selection.Cut
Columns("L:L").Select
ActiveSheet.Paste
Columns("H:H").Select
Selection.Cut
Columns("J:J").Select
ActiveSheet.Paste
Columns("F:F").Select
Selection.Cut
Columns("H:H").Select
ActiveSheet.Paste
Columns("D:D").Select
Selection.Cut
Columns("F:F").Select
ActiveSheet.Paste
Columns("D:D").Select
Selection.Delete Shift:=xlToLeft
End Sub
En si lo que hace es que importa un archivo de datos de 13 comumnas y lo que quiero es invertir de la columna 4 a la 13, por pares, es decir, la columna "D" va en la "E", y la "E" en la "D", lo mismo entre las columnas (F y G), (H e I), (J y K), (L yM) ese es el objetivo, pero quiero escoger el archivo que quiero abrir
Muchas gracias por tu ayuda
Saludos
Puse un input en tus códigos, si no cambias de dirección debe funcionar, prueba y me avisas
Sub Macro1()
'
' Macro1 Macro
'
a = InputBox("Ingresar el nombre del archivo sin el nombre de la estensión", "Nombre del Archivo")
ChDir "C:\Users\NEWTON\Desktop\adjuntos_07_12_2011"
Workbooks.OpenText Filename:= _
"C:\Users\NEWTON\Desktop\adjuntos_07_12_2011\" & a & ".VF", Origin:=xlMSDOS, _
StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=True, Tab:=True, 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)), TrailingMinusNumbers:=True
Columns("L:L").Select
Selection.Cut
Columns("N:N").Select
ActiveSheet.Paste
Columns("J:J").Select
Selection.Cut
Columns("L:L").Select
ActiveSheet.Paste
Columns("H:H").Select
Selection.Cut
Columns("J:J").Select
ActiveSheet.Paste
Columns("F:F").Select
Selection.Cut
Columns("H:H").Select
ActiveSheet.Paste
Columns("D:D").Select
Selection.Cut
Columns("F:F").Select
ActiveSheet.Paste
Columns("D:D").Select
Selection.Delete Shift:=xlToLeft
End Sub
Si si funciona muy bien, pero el problema es que SI cambio de dirección, mmmh algo así como que me abra cuadro de windows para escoger el archivo no se podría, bueno de hecho con esto super funciona, comentame si me pudieras ayudar con eso, si no para ya finalizar y puntuar la respuesta la verdad aun con esto me super ayuda, muchas gracias, pero lo que si quisiera es que se pudiera escoger el archivo, mil gracias
No puedo probar si funciona, pero esto debería hacer lo que necesitas
Sub Macro1()
'
' Macro1 Macro
'
milibro = Application.GetOpenFilename
If milibro = False Then Exit Sub
Workbooks.Open milibro, _
StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=True, Tab:=True, 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)), TrailingMinusNumbers:=True
Columns("L:L").Select
Selection.Cut
Columns("N:N").Select
ActiveSheet.Paste
Columns("J:J").Select
Selection.Cut
Columns("L:L").Select
ActiveSheet.Paste
Columns("H:H").Select
Selection.Cut
Columns("J:J").Select
ActiveSheet.Paste
Columns("F:F").Select
Selection.Cut
Columns("H:H").Select
ActiveSheet.Paste
Columns("D:D").Select
Selection.Cut
Columns("F:F").Select
ActiveSheet.Paste
Columns("D:D").Select
Selection.Delete Shift:=xlToLeft
End Sub
Prueba y me avisas
Wooow! Muchas gracias ya quedo super perfecto, bueno no corría pero le encontré el detalle, lo copio y pego aquí para que quede, a mi ya me quedo listo, oye no sabes que cupero ayudada me diste
Saludos
Sub Macro1()
'
' Macro1 Macro
'
milibro = Application.GetOpenFilename
If milibro = False Then Exit Sub
Workbooks.OpenText milibro, _
Origin:=xlMSDOS, StartRow:=1 ........ y lo demas
Hola, oye, muchisimoas gracias, en verdad, me super ayudaste, ojala que te puedas contactar conmigo te dejo mi correo [email protected] o en el msn [email protected] muchas gracias
Saludos
Carlos bautista

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas