Generar macro en excel para guardar archivo en txt

Mi archivo de excel lo genero grabando una macro y modificando la misma, el objetivo es extraer un archivo txt modificar el formato y guardarlo nuevamente en un archivo txt, los dos primeros pasos están resueltos el problema que tengo es al generar la macro que guarde el archivo en txt, el archivo txt que genera la macro al final del ultimo registro me deja espacios en blanco espacios generados por las formulas de excel que modifican mi registro y el concatenado que utilice para enlazar la información, quisiera apoyo por los expertos para generar una macro que me guarde mi archivo de excel en formato txt sin espacios en blanco después del ultimo registro, el problema es que no tengo determinado el numero de celdas ya que pueden ser 3 registros como 500 registros.

El archivo en excel se ve algo similar a esto:

A B C D

1 1071120121509100222

2 1071120121521230222

3 1071120121531210222

4

5

1 Respuesta

Respuesta
1

¿Entonces el archivo txt solo tiene que crearse con el contenido de la columna A?

Es correcto, solo tengo que guardar todo lo que tenga la columna A. Gracias

Te mando mi solución:

Con esta macro crearemos un archivo llamado "solocolumna.txt" con el contenido de la columna A de tu hoja activa desde A2 hacia abajo. Después de finalizar la maro solo tienes que buscar dicho archivo en el directorio activo de excel.

Sub crear_txt()
'por luismondelo
Open "solocolumna.txt" For Output As #1
Range("a2").Select
Do While ActiveCell.Value <> ""
dato = ActiveCell.Value
Print #1, dato
ActiveCell.Offset(1, 0).Select
Loop
Close #1
End Sub

no olvides finalizar la consulta

Disculpa la tardanza en contestar, he probado la macro y funciona, yo halle otra solución pero considero modificar mi macro con tu aporte ya que podría hacer el proceso un poco mas rapido, te comento lo que realice es concatenar información que me genera un relog checador para hacer el registro lo mas parecido al registro que genera un antiguo reloj checador y usar su software para generar los registros, lo que hace mi macro copia los archivos de un txt los concatena y le agrego unos ceros para hacer el formato similar al registro que arrojaba el reloj checador anterior y por ultimo esa columna concatenada la guardo en C donde la base de datos hace la consulta para procesar la información, mi problema era que al generar el archivo TXT me dejaba espacios después del ultimo carácter y eso ocasionaba un error mi solución fue la siguiente pero con tu macro creo que el resultado es similar solo habrá que modificar unos detalles.

Gracias y te dejo mi macro.

Private Sub Grabar_Click()
'Modificado por dhemiank

Range("A1").Select
Range(Selection, Selection.Range("A1:A6000")).Select
Selection.Copy
Sheets("Hoja2").Select Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=True, Transpose:=False
Application.CutCopyMode = False

'Copio valores de columna A a hoja 2

'Las celdas que no requiero toman un valor menor a 9

'En la hoja2 cualquier valor a 9 sera borrado

menor = 9
inicio = ActiveCell.Address
Cells(ActiveSheet.Rows.Count, 1).Activate
ultima = Selection.End(xlUp).Row
Range(inicio).Activate
Application.ScreenUpdating = False
While ActiveCell.Row <= ultima
If Cells(ActiveCell.Row, 1).Value * 1 < menor Then
ActiveCell.EntireRow.Delete
ultima = ultima - 1
Else
ActiveCell.Offset(1, 0).Activate
End If
Application.ScreenUpdating = True
Wend
Range(inicio).Activate

'Guardo la hoja2 como archivo de texto en C: con el nombre BESSER

ChDir "C:\BESSER"
ActiveWorkbook.SaveAs Filename:="C:\BESSER\Besser.txt", FileFormat:= _
xlUnicodeText, CreateBackup:=False
MsgBox ("Proceso finalizado exitosamente")

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas