Importar archivos

28/01/2009 - 19:40 por Manny_90 | Informe spam
Que tal.

Necesito ayuda para generar un macro que me importe los datos de archivos
externos.
En el archivo tengo un boton donde abre un formulario con un control
"combobox" y lista los archivos que tengo en un folder predeterminado, EL
PROBLEMA es que tengo 6 diferentes archivos bajo el mismo modelo que quiero
importar.

AMX_SAA2105-05-C14_BA1.txt
AMX_SAA2105-05-C14_BA2.txt
AMX_SAA2105-05-C14_BA3.txt
AMX_SAA2105-05-C14_TA1.txt
AMX_SAA2105-05-C14_TA2.txt
AMX_SAA2105-05-C14_TA3.txt

Lo que me gustaria que hiciera el macro es:
1. Que cuando liste los archivos en el formulario, pueda ser capaz de
autollamarlo AMX_SAA2105-05-C14. (Que no agregue _TA3.txt, etc.)
2. Importar TODOS los archivos que comiencen con "AMX_SAA2105-05-C14", (No
importa el orden, solo que lo importe en la hoja nueva).

El macro que uso para listar los archivos es :
Sub abrir_listadecarga()

On Error Resume Next
Application.ScreenUpdating = False
Set fso = CreateObject("Scripting.FileSystemObject")
Const ruta = "C:\Documents and Settings\emmanuel.ayala\My
Documents\MACROS\KAIZEN\SMT"
Set directorio = fso.GetFolder(ruta)
Set ficheros = directorio.Files
For Each archivo In ficheros
UserForm1.ComboBox1.AddItem archivo.Name
Next
Set fso = Nothing
Set directorio = Nothing
Set ficheros = Nothing
Application.ScreenUpdating = True
'cargas el formulario
Load UserForm1
UserForm1.Show
End Sub

Los datos del archivo .txt son: (Estan delimitados por "TABs")


AMX_SAA2105-05_C14_BA1

Graphic Feeder Name Component ID Slot Rotation Track

HP Gold DL 8mm/4mm 01-1010-C1-327 10 0.000 2
HP Gold DL 8mm/4mm 02-1030-C1-327 11 0.000 1
HP Gold DL 8mm/4mm 02-1030-C1-327 11 0.000 2
HP Gold DL 8mm/4mm 02-1030-C2-327 12 0.000 1
HP Gold DL 8mm/4mm 02-1040-C1-327 62 0.000 2
HP Gold DL 8mm/4mm 01-1030-C1-327 63 0.000 2
HP Gold DL 8mm/4mm 01-1030-C1-327 63 0.000 1
HP Gold DL 8mm/4mm 01-1020-C1-327 64 0.000 2
HP Gold DL 8mm/4mm 01-3320-C1-327 64 0.000 1



De antemano les doy las gracias..
ps. Hoy me levante muy imaginativo.. ojala y sea factible el macro que
necesito...

Preguntas similare

Leer las respuestas

#1 pepe
28/01/2009 - 21:30 | Informe spam
Por lo que dices deduzco que todos los ficheros tienen la misma estructura,
en ese caso, ¿por qué no fusionas todos los ficheros txt en uno antes de
hacer la importación?
Acabarías antes.




"Manny_90" escribió en el mensaje de
noticias news:
Que tal.

Necesito ayuda para generar un macro que me importe los datos de archivos
externos.
En el archivo tengo un boton donde abre un formulario con un control
"combobox" y lista los archivos que tengo en un folder predeterminado, EL
PROBLEMA es que tengo 6 diferentes archivos bajo el mismo modelo que
quiero
importar.

AMX_SAA2105-05-C14_BA1.txt
AMX_SAA2105-05-C14_BA2.txt
AMX_SAA2105-05-C14_BA3.txt
AMX_SAA2105-05-C14_TA1.txt
AMX_SAA2105-05-C14_TA2.txt
AMX_SAA2105-05-C14_TA3.txt

Lo que me gustaria que hiciera el macro es:
1. Que cuando liste los archivos en el formulario, pueda ser capaz de
autollamarlo AMX_SAA2105-05-C14. (Que no agregue _TA3.txt, etc.)
2. Importar TODOS los archivos que comiencen con "AMX_SAA2105-05-C14", (No
importa el orden, solo que lo importe en la hoja nueva).

El macro que uso para listar los archivos es :
Sub abrir_listadecarga()

On Error Resume Next
Application.ScreenUpdating = False
Set fso = CreateObject("Scripting.FileSystemObject")
Const ruta = "C:\Documents and Settings\emmanuel.ayala\My
Documents\MACROS\KAIZEN\SMT"
Set directorio = fso.GetFolder(ruta)
Set ficheros = directorio.Files
For Each archivo In ficheros
UserForm1.ComboBox1.AddItem archivo.Name
Next
Set fso = Nothing
Set directorio = Nothing
Set ficheros = Nothing
Application.ScreenUpdating = True
'cargas el formulario
Load UserForm1
UserForm1.Show
End Sub

Los datos del archivo .txt son: (Estan delimitados por "TABs")


AMX_SAA2105-05_C14_BA1

Graphic Feeder Name Component ID Slot Rotation Track

HP Gold DL 8mm/4mm 01-1010-C1-327 10 0.000 2
HP Gold DL 8mm/4mm 02-1030-C1-327 11 0.000 1
HP Gold DL 8mm/4mm 02-1030-C1-327 11 0.000 2
HP Gold DL 8mm/4mm 02-1030-C2-327 12 0.000 1
HP Gold DL 8mm/4mm 02-1040-C1-327 62 0.000 2
HP Gold DL 8mm/4mm 01-1030-C1-327 63 0.000 2
HP Gold DL 8mm/4mm 01-1030-C1-327 63 0.000 1
HP Gold DL 8mm/4mm 01-1020-C1-327 64 0.000 2
HP Gold DL 8mm/4mm 01-3320-C1-327 64 0.000 1



De antemano les doy las gracias..
ps. Hoy me levante muy imaginativo.. ojala y sea factible el macro que
necesito...



Respuesta Responder a este mensaje
#2 Héctor Miguel
29/01/2009 - 01:00 | Informe spam
hola, !

prueba adaptando ejemplos como los siguientes:

-> Copy every TXT or CSV file in a new worksheet of a newly created workbook
http://www.rondebruin.nl/txtcsv.htm

-> Merge all CSV or TXT files in a folder
http://www.rondebruin.nl/csv.htm

hay mas opciones, revisa la seccion: Copy/Paste/Merge examples
de la pagina con el indice principal: -> http://www.rondebruin.nl/tips.htm

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

__ OP __
Necesito ayuda para generar un macro que me importe los datos de archivos externos.
En el archivo tengo un boton donde abre un formulario con un control "combobox"
y lista los archivos que tengo en un folder predeterminado
EL PROBLEMA es que tengo 6 diferentes archivos bajo el mismo modelo que quiero importar...

AMX_SAA2105-05-C14_BA1.txt
AMX_SAA2105-05-C14_BA2.txt
AMX_SAA2105-05-C14_BA3.txt
AMX_SAA2105-05-C14_TA1.txt
AMX_SAA2105-05-C14_TA2.txt
AMX_SAA2105-05-C14_TA3.txt

Lo que me gustaria que hiciera el macro es:
1. Que cuando liste los archivos en el formulario, pueda ser capaz de autollamarlo AMX_SAA2105-05-C14.
(Que no agregue _TA3.txt, etc.)
2. Importar TODOS los archivos que comiencen con "AMX_SAA2105-05-C14"
(No importa el orden, solo que lo importe en la hoja nueva).

El macro que uso para listar los archivos es :
Sub abrir_listadecarga()
On Error Resume Next
Application.ScreenUpdating = False
Set fso = CreateObject("Scripting.FileSystemObject")
Const ruta = "C:\Documents and Settings\emmanuel.ayala\My
Documents\MACROS\KAIZEN\SMT"
Set directorio = fso.GetFolder(ruta)
Set ficheros = directorio.Files
For Each archivo In ficheros
UserForm1.ComboBox1.AddItem archivo.Name
Next
Set fso = Nothing
Set directorio = Nothing
Set ficheros = Nothing
Application.ScreenUpdating = True
'cargas el formulario
Load UserForm1
UserForm1.Show
End Sub

Los datos del archivo .txt son: (Estan delimitados por "TABs")
AMX_SAA2105-05_C14_BA1
Graphic Feeder Name Component ID Slot Rotation Track
HP Gold DL 8mm/4mm 01-1010-C1-327 10 0.000 2
HP Gold DL 8mm/4mm 02-1030-C1-327 11 0.000 1
HP Gold DL 8mm/4mm 02-1030-C1-327 11 0.000 2
HP Gold DL 8mm/4mm 02-1030-C2-327 12 0.000 1
HP Gold DL 8mm/4mm 02-1040-C1-327 62 0.000 2
HP Gold DL 8mm/4mm 01-1030-C1-327 63 0.000 2
HP Gold DL 8mm/4mm 01-1030-C1-327 63 0.000 1
HP Gold DL 8mm/4mm 01-1020-C1-327 64 0.000 2
HP Gold DL 8mm/4mm 01-3320-C1-327 64 0.000 1

De antemano les doy las gracias..
ps. Hoy me levante muy imaginativo.. ojala y sea factible el macro que necesito...
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida