Como generar archivos txt a partir de una planilla en Excel.

Necesito generar unos archivos en txt para enviar al banco. Esta generación es recurrente todos los meses y quisiera mediante una macro generar los archivos que correspondan.

Desde un archivo, hoja "Base" pasar los datos a otra hoja "Archivo", respetando el orden, esto con la finalidad de eliminar las lineas en blanco y/o con textos que no corresponden a la generación del archivo. En la hoja base viene información por sociedad. Debe generarse un archivo por sociedad al banco. El tema es que según la sociedad el formato del archivo es diferente.

Una vez que se llevan los datos de la hoja "Base" a la hoja "Archivo", (soc, id, nombre e importe), debemos completar los datos de la hoja "Archivo" con antecedentes que están en la hoja "Variables" (código banco, tipo cuenta y n° cuenta) para cada persona.

Se adjunta un archivo con los formatos a utilizar.

También 3 archivos txt como ejemplos

En archivo banco se indica el formato que lleva cada sociedad, el nombre que debiera llevar el archivo + mes y año de generación (Ej: AA201604.txt) y la carpeta en que deberá quedar la información.

Esta pregunta es para Dante Amor, por lo que haré llegar los archivos de muestra a su correo.

1 Respuesta

Respuesta
2

H o  l a:

Reviso los archivos y te envío la respuesta

H o l a:

Te anexo la primera macro

Sub Generar()
'Por.Dante Amor
    Set h1 = Sheets("BASE")
    Set h2 = Sheets("ARCHIVO")
    Set h3 = Sheets("VARIABLES")
    h2.UsedRange.Offset(1, 0).Clear
    j = 2
    For i = 2 To h1.Range("A" & Rows.Count).End(xlUp).Row
        If h1.Cells(i, "A") <> "" And IsNumeric(h1.Cells(i, "A")) Then
            h1.Rows(i).Copy h2.Rows(j)
            Set b = h3.Columns("A").Find(h1.Cells(i, "B"), lookat:=xlWhole)
            If Not b Is Nothing Then
                h2.Cells(j, "E") = h3.Cells(b.Row, "C")
                h2.Cells(j, "F") = h3.Cells(b.Row, "D")
                h2.Cells(j, "G") = h3.Cells(b.Row, "E")
            End If
            j = j + 1
        End If
    Next
    MsgBox "Fin"
End Sub


' : )
'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias
' : )

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas