Macro para guardar txt delimitado por espacios

Tengo un archivo de excel que trato de exportar a txt pero con algunas características la más importante es que por fila tengo que a completar 274 caracteres de los cuales están repartidos de la fila A a la Q

Lo que por el momento estoy haciendo es guardarlo como texto delimitado por espacios

Pero a la hora de guardarlo en txt me guarda la fila en dos partes de la columna A a la o

Y de la columna p a la Q Me la pone en el renglón de abajo

Y si pongo más de dos filas en le excel a la hora de guardarla me pone 4 renglones

En los primeros dos me guarda de la A ala o en los renglones 1 y 2

Y en los renglones 3 y 4 los datos de las columnas p y q

Se supone que debe de guardarte toda la fila en un solo renglón

En la macro me gustaría poder guardar a partir de la fila 2 ya que en la fila 1 tengo los datos o que es lo que se debe de poner en las columnas

Espero me puedan apoyar quedo al pendiente de sus comentarios

1 respuesta

Respuesta
1

Te anexo la macro, el txt se guardará con el nombre "archivo.txt" y se guardará en la misma ruta del archivo con la macro.

Revisa el resultado, sobre todo con los campos numéricos.

En la macro van las referencias de la cantidad de caracteres por columna, si hay algún cambio, puedes cambiar el tamaño de la columna en esta parte:

cols = Array(0, 10, 1, 10, 1, 27, 27, 27, 2, 8, 2, 5, 40, 15, 15, 50, 30, 4)

Ejecuta la macro sobre la hoja que tenga la información.


La macro:

Sub GuardarTxt()
'Por.Dante Amor
    FileNum = FreeFile()
    ruta = ThisWorkbook.Path & "\"
    Open ruta & "archivo.txt" For Output As #FileNum
    '
    'columnas A B C D E F G H I J K L M N O P Q
 cols = Array(0, 10, 1, 10, 1, 27, 27, 27, 2, 8, 2, 5, 40, 15, 15, 50, 30, 4)
    For i = 1 To Range("A" & Rows.Count).End(xlUp).Row
        For j = 1 To Columns("Q").Column
            dato = Cells(i, j)
            For k = 1 To cols(j)
                car = Mid(dato, k, 1)
                If car = "" Then car = " "
                Print #FileNum, car;
            Next
        Next
        Print #FileNum,
    Next
    Close #FileNum
    '
    MsgBox "El TXT fue guardado en la ruta: " & ruta
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas