Crear un archivo TXT desde EXCEL

Buenas tardes a [email protected], necesito su valiosa ayuda, existe una macro que convierta un Archivo de Excel llamado BASE.xlsx a un Archivo con extensión TXT. Que separe el contenido de las celdas en ; por ejemplo:

Archivo de Excel llamado BASE.xlsx

A B C D

1 00070 Carlos 80 C10

2 07807 Mario 50 M65

3 65780 Pedro 40 P64

4 00717 Jesús 15 J89

5 60607 Carlos 60 C50

Lo que necesito es una macro que convierta esta información a un archivo de Texto que quedara de la siguiente manera:

Archivo de Texto llamado BASE.txt

00070;Carlos;80;C10
07807;Mario;50;M65
65780;Pedro;40;P64
00717;Jesús;15;J89
60607;Carlos;60;C50

El contenido de cada celda es separado por ; este proceso lo requiero para alimentar un programa que acepta información en este contenido.

De antemano muchas gracias

1 respuesta

Respuesta
1

Un momento y te lo mando

Te mando la solución. Ejecuta esta macro y todo listo. Después solo tendrás que buscar en tu disco duro el archivo base.txt

Sub proceso()
'por luismondelo
Range("a1").Select
Open "base.txt" For Output As #1
Do While ActiveCell.Value <> ""
linea = ActiveCell.Value & ";" & ActiveCell.Offset(0, 1) & ";" & ActiveCell.Offset(0, 2) & ";" & ActiveCell.Offset(0, 3)
Print #1, linea
ActiveCell.Offset(1, 0).Select
Loop
Close #1
End Sub

no olvides finalizar la consulta

Gracias por tu pronta respuesta, ya verifique la macro y me funciona, solo necesito saber si el Archivo TXT al final de la fila que no ponga el ; ya que el archivo que necesito no debe llevar el ; al final de cada fila,

LA MACRO ME LO CREA DE ESTA MANERA

00070;Carlos;80;C10;
07807;Mario;50;M65;
65780;Pedro;40;P64;
00717;Jesús;15;J89;
60607;Carlos;60;C50;

Y LO QUE QUIERO ES QUE SE CREA ASI

00070;Carlos;80;C10
07807;Mario;50;M65
65780;Pedro;40;P64
00717;Jesús;15;J89
60607;Carlos;60;C50

La diferencia es que al final de cada fila no lleva el ;

Mil disculpa, ya verifique no había contemplado que la macro esta diseñada para el contenido de las 4 columnas y las 5 filas según el ejemplo, pero la necesito para varias columnas y filas, ya que el archivo xlsx es extenso, y varia de acuerdo al movimiento de las operaciones mensuales.

Si no es mucha molestia, como podría programar la macro para que no este limitada al contenido de las 4 columnas y las 5 filas.

Mil disculpa y gracias por tu apoyo.

Una situación mas, la cantidad de columnas y filas varia dependiendo el movimiento.

Sustituye la macro que te he enviado en el archivo por esta otra y ahora no tendrá limitaciones

Sub proceso()
'por luismondelo
Range("a1").Select
Open "base.txt" For Output As #1
Do While ActiveCell.Value <> ""
For Each celda In Range(ActiveCell, ActiveCell.End(xlToRight))
linea = linea & ";" & celda.Value
Next
Print #1, linea
linea = ""
ActiveCell.Offset(1, 0).Select
Loop
Close #1
End Sub

recuerda finalizar

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas