Ayuda con un error al abrir un archivo de texto

Buenas tardes Sres. Tengo una macro para convertir un archivo de texto a una hoja de excel, pero al abrir el archivo marca el error de diferencia de formatos, Ya no quiero que me marque este error por que tengo que estar oprimiendo aceptar a cada rato. La macro es la siguiente:
Workbooks.OpenText Filename:="H:\nilton\Imp sbre Nom\Junio2009\zacq1109", _
    Origin:=xlMSDOS, StartRow:=1, DataType:=xlFixedWidth, FieldInfo:=Array( _
    Array(0, 1), Array(8, 1), Array(15, 1), Array(70, 1), Array(90, 1)), _
    TrailingMinusNumbers:=True.
Saludos y gracias por el apoyo

1 Respuesta

Respuesta
1
Utiliza estas dos lineas de código por encima de las tuyas:
On Error Resume Next
Application.ScreenUpdating = False
Y al final los avisos los vuelves a poner a true
Application.ScreenUpdating = True
Si te ha servido comenta puntúa y finaliza la consulta. Gracias
>Un saludo
>Julio
Buenos días, la verdad estoy sorprendido con el tiempo de respuesta y sobretodo la solución que funciono espectacular, la verdad ya era de los que decía que esto era broma y que si llegarían a contestar seria un mes después... pero me callaron el hocico. Gracias y ya que hiciste a bien darme la respuesta a mi duda... me puedes ayudar ya que esa misma macro la tengo que hacer para todos los estados de la república y lo hago manual, ¿hay manera que la macro pueda tomar la dirección de los archivos de una hoja de calculo? Ejemplo...
zacq1109 cambia a
agsq1109
bcsq1109
Y así sucesivamente...
¿Cómo ves?
Reitero mi agradecimiento de antemano.
Saludos
Por supuesto pero necesito datos, la ruta donde están los archivos C.\Mis Documentos\Archivos ( por ejemplo)
Y ahora harmos una macro que repase esa carpeta para extraer el nombre de todos los archivos. Ahora ya teniendo el nombre de los archivos es fácil decirle a la macro que abra uno por uno cada aarchivo hasta que finalice y vas ejecutando la macro.
Facilitamé la ruta de tus archivos.
>Saludos
>Julio
Buenos días Julio, a ver si me explico correctamente... la macro que habré los archivos de texto es la siguiente, en la cual me ayudaste para que no me marque el errorque me marcaba, después de abrir el archivo copie la información y se valla nuevamente al archivo en donde esta la macro y lo pegue en la hoja llamada "zac",
On Error Resume Next
Application.ScreenUpdating = False
    Workbooks.OpenText Filename:="H:\nilton\Imp sbre Nom\Junio2009\zacq1109", _
    Origin:=xlMSDOS, StartRow:=1, DataType:=xlFixedWidth, FieldInfo:=Array( _
    Array(0, 1), Array(8, 1), Array(15, 1), Array(70, 1), Array(90, 1)), _
    TrailingMinusNumbers:=True
  Application.ScreenUpdating = True
Range("A1:E750").Select
    Selection.Copy
    Windows("junisrt09.xls").Activate
    Sheets("zac").Select
    Range("A1").Select
    ActiveSheet.Paste
Bueno pues la direccion que tendria que cambiar es
 H:\nilton\Imp sbre Nom\Junio2009\agsq1109
H:\nilton\Imp sbre Nom\Junio2009\colq1109
H:\nilton\Imp sbre Nom\Junio2009\durq1109
H:\nilton\Imp sbre Nom\Junio2009\oaxq1109
y que lo pegue en cada una de sus hojas en el archivo principal "ags". "col", "dur", "oax" y así sucesivamente.
¿Ahora no se si te tenga que enviar los archivos y si es así como o a que correo te los envío?
Solo quiero que la dirección cambie las veces que sean necesarias para que no tenga que estar sustituyendo el nombre del archivo manualmente.
¿Cómo ves?
Espero que me puedas ayudar y tus comentarios.
Saludos y para cualquier duda o comentario este es mi correo [email protected], para servirte
Vamos a ver el nombre tendrás que escribirlo de todas todas, de alguna forma la macro tiene que saber que archivo tiene que abrir, puedes crear diferentes variables para que repase todo un directorio de archivos, observo que tan solo modificas 3 letras del total del nombre, podemos pasar en alguna parte de la hoja que sirva como directorio para que la macro en un ciclo repase todo el listado y tan solo añadas en esa lista los archivos que tengas que abrir, ejemplo:
Ponemos en la Col M la lista de tus archivos a abrir:
M1= zac
M2= ags
M3= col......etc
Y ahora hacemos un ciclo:
On Error Resume Next
Application.ScreenUpdating = False
Sheets(hoja donde esta la lista).Select
Range("M1").Select
variable=ActiveCell.Value
Do While ActiveCell.Value<>""

Workbooks.OpenText Filename:="H:\nilton\Imp sbre Nom\Junio2009\" & variable & "q1109", _
    Origin:=xlMSDOS, StartRow:=1, DataType:=xlFixedWidth, FieldInfo:=Array( _
    Array(0, 1), Array(8, 1), Array(15, 1), Array(70, 1), Array(90, 1)), _
    TrailingMinusNumbers:=True
  Range("A1:E750").Select
    Selection.Copy
    Windows("junisrt09.xls").Activate
    Sheets(variable).Select
    Range("A1").Select
    ActiveSheet.Paste
Sheets(la hoja donde tengas la lista).Select
Range("M1").Offset(1,0).Select
variable=ActiveCell.Value
Loop

Application.ScreenUpdating = True
Prueba esto y miras te soluciona tu problema.
>Un saludo
>Julio
Buenas tardes una vez más te doy las gracias y que fue de mucha utilidd, solo tengo una duda... como te pudiste dar cuenta los nombres de los archivos no tienen extensión, ya que los bajo del sistema y por eso los convierto a EXCEL... la pregunta es por que cuando busca el archivo me manda el siguiente error:
Se ha producido el error '1004' en tiempo de ejecucuion
No se puede hallar "bcs.xls" compruebe la ortografía... bla, bla, bla
eliminando este error queda perfecto.
Gracias y saludos
Me parece que te faltan comillas al final de la ruta, prueba así:
Workbooks.OpenText Filename:="H:\nilton\Imp sbre Nom\Junio2009\" & variable & "q1109""," _
    , Origin:=xlMSDOS, StartRow:=1, DataType:=xlFixedWidth, FieldInfo:=Array( _
    Array(0, 1), Array(8, 1), Array(15, 1), Array(70, 1), Array(90, 1)), _
    TrailingMinusNumbers:=True
>Un saludo
>Julio

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas