Como generar TXT con espacios extras

Necesito generar desde un excel un archivo prn que tiene que tener 25 espacios extras al final de cada línea, la macro ya la tengo resuelta, lo único que me falta es que al generar el prn lo guarda sin los espacios.

¿Cómo se debe hacer?

1 Respuesta

Respuesta

Puedes poner la macro para saber cómo estás generando el txt

Dante

La macro hace su rutina sin problemas, luego guardo manualmente el archivo como .pnr porque no puede tener separadodes de comas ni pipes. Porque es para que corra luego en un sistema y tome los registros

El inconveniente es que como al final del archivo deben haber 16 espacios en blanco

Ejemplo

d50240512012121220150000150012   12122PES                   

Luego de la ES final tienen que haber 16 espacios

Cuando convierto el archivo en prn corta en la S.

Justamente pregunto porque no se como programar la parte que genere los espacios y los tomo el prn

Saludos

Te anexo una macro para generar archivos.

Tienes que cambiar en la macro los siguientes datos:

- El nombre de la hoja que tiene los datos.

   Sheets("Hoja1").Select

- El número de columnas que se va a enviar al archivo
numcol = 3

- El tamaño de cada una de las columnas. La primer columna en la siguiente instrucción debe ir con un 0, tú debes empezar a numerar el siguiente valor. En mi ejemplo estoy poniendo que se van a exportar 3 columnas, la primer columna con 30 caracteres, la segunda con 11 y la última (que es la que va a llevar los caracteres en blanco), le estoy poniendo 16
cols = Array(0, 30, 11, 16)

-El nombre del archivo
   arch = "exporta.prn"

Pon la siguiente macro en un módulo y ejecútala. 

Sub ExportarExcelTxt()
'Por.Dante Amor
    Sheets("Hoja1").Select
    numcol = 3
    cols = Array(0, 30, 11, 16)
    arch = "exporta.prn"
    '
    FileNum = FreeFile()
    ruta = ThisWorkbook.Path & "\"
    Open ruta & arch For Output As #FileNum
    '
    For i = 1 To Range("A" & Rows.Count).End(xlUp).Row
        For j = 1 To numcol
            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 archivo PRN fue guardado en la ruta: " & ruta
End Sub

Revisa el archivo generado y comentas si es el correcto.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas