Ahora veremos una macro en excel para leer un archivo de texto y poner esa información en un libro de excel, esto va en relación al caso anterior donde vimos una macro para generar un archivo txt con la información de una tabla de datos excel.
Para que me puede servir esta macro.
Hay muchas cosas para las que puede servir esto de leer un txt desde una macro, un ejemplo seria cuando tienes sistemas que te pueden generar reportes en archivos txt, puedes leer esos txt con esta macro para pasar la información a excel y de ese modo poder hacer tus cálculos o análisis de esa información, esto es algo muy usado por los contadores y sobre todo auditores, esto con el fin de facilitar el trabajo con sus formatos contables.
El archivo de texto.
Ese es un archivo de texto plano delimitado por pipes, la macro debe leer cada linea y separar por columnas cada dato que esta separado por pipes, cada linea a su vez sera una linea en la hoja de calculo.
El resultado al ejecutar la macro.
En esa imagen vemos el resultado al ejecutar la macro, simplemente se genera un archivo excel con toda la información del txt, el archivo obtiene el mismo nombre que el txt al igual que la hoja.
A continuación explico como programar la macro que lee el txt.
Una de las grandes ventajas de los archivos de texto plano es que pueden ser leídos prácticamente por cualquier sistema, esa es la razón por la que de igual manera la mayoría de los sistemas generan información en este tipo de archivos, sobre todo cuando es muchísima la información que contienen, así que con esta macro podrás pasar a excel cualquier información contenida en archivos de texto plano, solamente es necesario que sepas como están delimitados los datos para que reajustes la macro.
Harles P. dice
Suponiendo que tendos 2 archivos txt, en una carpeta, que macro puedo utilizar para unificar esos dos archivos.
y que queden guardados con un nombre especifico. por ejemplo que el archivo unificado se llame AF.TXT
Francisco Moyano dice
El ejemplo es muy bueno, pero se podría saber el número de lineas generadas en el ficherto txt. Por ejemplo en un msgbox (Se ha generado xx líneas)
Muchas gracias
alejandro santos dice
de donde eres amigo, yo de edomex México y tu?
Nolberto Lopez dice
Saludos Alejandro, estoy en Sinaloa.
Edgar Leonardo Jimenez Lopez dice
Saludos
Muy bueno el ejemplo.
Me estan solicitando esto pero que cada columna tenga un tamaño constante, como se podria hacer esto ??
Gracias
Alberto Quesada dice
Buenos días Nolberto, gracias por tu aporte.
Cuando ejecuto tu macro lee correctamente el archivo, pero abre otro archivo de excel en lugar de agregar una hoja al documento abierto.
Que puede ser?
Gracias
Fabian dice
Buenos días,
Primero quiero agradecer ya que he aprendido mucho y me me han servido muchas de sus macros.
Hoy quisiera que me ayudaran con un código para abrir un TXT que está delimitado por ancho fijo, y que me de la opción de cambiar la delimitación de los campos ya que en mi trabajo tengo que abrir muchos TXT pero tienen diferente largo, a ver si me hice entender, cuando abra e TXT que me pregunte la delimitación de los campos de alguna forma se me ocurre seleccionando un rango de celdas que contengan el largo de cada columna.
Les agradecería muchísimo, gracias.
victor dice
No puedo descargar los archivo para poder realizar y estudiarlos, son de mucha ayuda para mi , agradecería si me puedes ayudar.
otra pregunta las dos situaciones son muy útiles para mi , pero tengo un inconveniente y a raíz de ese inconveniente hago esta pregunta 1- tengo un archivo en xls de 424623 registro y un txt muy grande , estas dos macros las puedo aplicar , o tendré que usar oto método .
Por último al realizar el ejecicio 2 (leer un txt ) me da el siguiente error
workbook.OpenText RutaArchivo,Datatype:=xldelimited,other:=true,otherchar:=”|”,trailingminusnumbers:=true,”mensualizados”=true “se esperaba parámetro con nombre”
danilo efren dice
Excelente ejemplo
saludos
danilo