Necesito una macro para generar varios TXT a partir de un listado de Excel
Necesito una macro en Excel que genera varios TXT a partir de un listo en Excel, Debe mantener la primera fila como cabecera o emcabezado para todos los archivos que genere de acuerdo al número de registros que contenga el archivo, Después de la fila 2 debe generar un archivo TXT por cada registro con su cabecera que es la misma para todos.
Necesito que la columna por ejemplo del encabezado o cabecera cambie a medida que va generando los archivo que son los meses como se observa en el siguiente ejemplo.
"Cabecera 2018-01 2018-02
Registro1"
"Cabecera 2018-02 2018-03
Registro 2"
Estos serían los dos primeros archivos a medida que genera los archivos aumentan los meses del encabezado o cabecera.
1 Respuesta
¿Cómo se debe llamar cada archivo txt?
¿Cuántas columnas tiene cada registro?
Si tienes 13 registros, qué se va a poner en la cabecera: 2018-¿13?
Puede poner una imagen de tu hoja para ver lo que tienes y en otra imagen el resultado que esperar en el primer archivo txt.
¡Gracias! POR Responder ingeniero Dante?
1)El archivo se puede renombrar Con el nombre del periodo o mes ejemplo 2018-01 2018-02.
2)Quisiera que no tenga límite de registros que genere los archivos de acuerdo al número filas que tenga.
3) los periodos de cotización no pueden ser mayores diciembre (12) te aclaro entonces lo que te coloco es el mes y el año, ejemplo cuando realizó esta indicación, 2018-01 año y mes, enero 2018. Por este motivo no puede dar 2018-13, Cuando llegue a 2018-12 debe pasar al año 2019-01 y 2019-02 realizó la aclaración son dos columnas en la cabecera, periodo de cotización 2019-01 y periodo de servicio 2019-02.
Es tan amable y me suministra un correo para enviarle un ejemplo con los archivos y la macro que ya tengo definida con los campos establecidos de acuerdo a cada celda.
Desde luego la macro va a funcionar para n número de registros. Lo del 2018-13, te lo puse para que expliques qué hacer, no puedes obviar algo que no explicaste.
Me envías un archivo de excel, en ese archivo, en la hoja1, vas a poner 4 registros. Significa que se deben generar 4 archivos txt. Procura utilizar ejemplos reales en cada registro.
Entonces, también me envías 4 archivos txt con la información que deberá contener cada archivo txt.
Entre más claros y precisos sean los ejemplos, más fácil podré entender y de esa manera entregarte la macro.
Mi correo [email protected]
En el asunto del correo escribe tu nombre de usuario “carlos arturo buitrago gaviria”
¡Gracias! Dante;
Acabo enviar el correo con la información solicitada, Muchas Gracias estoy pendiente.
Te anexo la macro actualizada
Sub EXPORTAR_TXT_ANCHOFIJO()
'Act Por Dante Amor
'
Dim i As Double
ruta = ThisWorkbook.Path & "\"
Set h1 = Sheets(1)
añ1 = Year(CDate(Replace(h1. Cells(2, 15).Value, " de ", " ")))
me1 = Month(CDate(Replace(h1. Cells(2, 15).Value, " de ", " ")))
fe1 = DateSerial(añ1, me1, 1)
'
añ2 = Year(CDate(Replace(h1. Cells(2, 16).Value, " de ", " ")))
me2 = Month(CDate(Replace(h1. Cells(2, 16).Value, " de ", " ")))
fe2 = DateSerial(añ2, me2, 1)
'
titulos = Poner_Encabezado(h1)
fin = h1.Range("A" & Rows.Count).End(xlUp).Row
For i = 4 To fin
arch = ruta & Format(fe1, "yyyy-mm") & "-" & Format(fe2, "yyyy-mm") & ".txt"
me1 = me1 + 1
me2 = me2 + 1
fe1 = DateSerial(añ1, me1, 1)
fe2 = DateSerial(añ2, me2, 1)
'
Open arch For Output As #1
Print #1, titulos
registro = Poner_Registro(h1, i)
Print #1, registro
Close
Next i
MsgBox "Fin"
End Sub
'
Function Poner_Registro(h1, i)
Campo1 = C_Izq(h1.Cells(i, 1), 2)
Campo2 = C_Izq(h1.Cells(i, 2), 5)
Campo3 = B_Der(h1.Cells(i, 3), 2)
Campo4 = B_Der(h1.Cells(i, 4), 16)
Campo5 = C_Izq(h1.Cells(i, 5), 2)
Campo6 = C_Izq(h1.Cells(i, 6), 2)
Campo7 = B_Der(h1.Cells(i, 7), 1)
Campo8 = B_Der(h1.Cells(i, 8), 1)
Campo9 = C_Izq(h1.Cells(i, 9), 2)
'
Campo10 = C_Izq(h1.Cells(i, 10), 3)
Campo11 = B_Der(h1.Cells(i, 11), 20)
Campo12 = B_Der(h1.Cells(i, 12), 30)
Campo13 = B_Der(h1.Cells(i, 13), 20)
Campo14 = B_Der(h1.Cells(i, 14), 30)
Campo15 = B_Der(h1.Cells(i, 15), 1)
Campo16 = B_Der(h1.Cells(i, 16), 1)
Campo17 = B_Der(h1.Cells(i, 17), 1)
Campo18 = B_Der(h1.Cells(i, 18), 1)
Campo19 = B_Der(h1.Cells(i, 19), 1)
'
Campo20 = B_Der(h1.Cells(i, 20), 1)
Campo21 = B_Der(h1.Cells(i, 21), 1)
Campo22 = B_Der(h1.Cells(i, 22), 1)
Campo23 = B_Der(h1.Cells(i, 23), 1)
Campo24 = B_Der(h1.Cells(i, 24), 1)
Campo25 = B_Der(h1.Cells(i, 25), 1)
Campo26 = B_Der(h1.Cells(i, 26), 1)
Campo27 = B_Der(h1.Cells(i, 27), 1)
Campo28 = B_Der(h1.Cells(i, 28), 1)
Campo29 = B_Der(h1.Cells(i, 29), 1)
'
Campo30 = C_Izq(h1.Cells(i, 30), 2)
Campo31 = B_Der(h1.Cells(i, 31), 6) ' CODIGO AFP
Campo33 = B_Der(h1.Cells(i, 33), 6) ' CODIGO TRAS AFP
Campo35 = B_Der(h1.Cells(i, 35), 6) ' CODIGO EPS
Campo37 = B_Der(h1.Cells(i, 37), 6) ' CIDOGO TRAS EPS
Campo39 = B_Der(h1.Cells(i, 39), 6) ' CIDIGO CAJA
'
Campo41 = C_Izq(h1.Cells(i, 41), 2)
Campo42 = C_Izq(h1.Cells(i, 42), 2)
Campo43 = C_Izq(h1.Cells(i, 43), 2)
Campo44 = C_Izq(h1.Cells(i, 44), 2)
Campo45 = C_Izq(h1.Cells(i, 45), 9)
Campo46 = B_Der(h1.Cells(i, 46), 1)
Campo47 = C_Izq(h1.Cells(i, 47), 9) 'IBC PENSION
Campo48 = C_Izq(h1.Cells(i, 48), 9) 'IBC SALUD
Campo49 = C_Izq(h1.Cells(i, 49), 9) 'IBC ARL
'
Campo50 = C_Izq(h1.Cells(i, 50), 9) 'IBC CAJA
Campo52 = C_Der(h1.Cells(i, 52), 7)
Campo53 = C_Izq(h1.Cells(i, 53), 9)
Campo54 = C_Izq(h1.Cells(i, 54), 9)
Campo55 = C_Izq(h1.Cells(i, 55), 9)
Campo56 = C_Izq(h1.Cells(i, 56), 9)
Campo57 = C_Izq(h1.Cells(i, 57), 9)
Campo58 = C_Izq(h1.Cells(i, 58), 9)
Campo59 = C_Izq(h1.Cells(i, 59), 9)
'
Campo60 = C_Der(h1.Cells(i, 60), 7) 'tarifa salud
Campo61 = C_Izq(h1.Cells(i, 61), 9) 'cotizacion salud
Campo62 = C_Izq(h1.Cells(i, 62), 9) 'UPC
Campo63 = B_Der(h1.Cells(i, 63), 15)
Campo64 = C_Izq(h1.Cells(i, 64), 9)
Campo65 = B_Der(h1.Cells(i, 65), 15)
Campo66 = C_Izq(h1.Cells(i, 66), 9)
Campo67 = C_Der(h1.Cells(i, 67), 9)
Campo68 = C_Der(h1.Cells(i, 68), 9)
Campo69 = C_Izq(h1.Cells(i, 69), 9)
'
Campo70 = C_Der(h1.Cells(i, 70), 7)
Campo71 = C_Izq(h1.Cells(i, 71), 9)
Campo72 = C_Der(h1.Cells(i, 72), 7)
Campo73 = C_Izq(h1.Cells(i, 73), 9)
Campo74 = C_Der(h1.Cells(i, 74), 7)
Campo75 = C_Izq(h1.Cells(i, 75), 9)
Campo76 = C_Der(h1.Cells(i, 76), 7)
Campo77 = C_Izq(h1.Cells(i, 77), 9)
Campo78 = C_Der(h1.Cells(i, 78), 7)
Campo79 = C_Izq(h1.Cells(i, 79), 9)
'
Campo80 = B_Der(h1.Cells(i, 80), 2) 'TIPO UPC COTIZANTE
Campo81 = B_Der(h1.Cells(i, 81), 16) 'CED UPC COTIZANTE
Campo82 = C_Izq(h1.Cells(i, 82), 1) 'EXONERACION
Campo83 = B_Der(h1.Cells(i, 83), 6) 'CODI AD ARL
Campo84 = B_Der(h1.Cells(i, 84), 1) 'NIVEL ARL
Campo85 = B_Der(h1.Cells(i, 85), 1) 'INDI TARI ES PEN
Campo86 = B_Der(h1.Cells(i, 86), 10) 'F INGRESO
Campo87 = B_Der(h1.Cells(i, 87), 10) 'F RETIRO
Campo88 = B_Der(h1.Cells(i, 88), 10) 'F VSP
Campo89 = B_Der(h1.Cells(i, 89), 10) 'F I SLN
'
Campo90 = B_Der(h1.Cells(i, 90), 10) 'F F SLN
Campo91 = B_Der(h1.Cells(i, 91), 10) 'F I IGE
Campo92 = B_Der(h1.Cells(i, 92), 10) 'F F IGE
Campo93 = B_Der(h1.Cells(i, 93), 10) 'F I LMA
Campo94 = B_Der(h1.Cells(i, 94), 10) 'F F LMA
Campo95 = B_Der(h1.Cells(i, 95), 10) 'F I VAC-LR
Campo96 = B_Der(h1.Cells(i, 96), 10) 'F F VAC-LR
Campo97 = B_Der(h1.Cells(i, 97), 10) 'F I VCT
Campo98 = B_Der(h1.Cells(i, 98), 10) 'F F VCT
Campo99 = B_Der(h1.Cells(i, 99), 10) 'F I IRL
'
Campo100 = B_Der(h1.Cells(i, 100), 10) 'F F IRL
Campo101 = C_Izq(h1.Cells(i, 51), 9) 'IBC PARAFISCALES
Campo102 = C_Izq(h1.Cells(i, 102), 3) 'N HORAS
Campo103 = B_Der(h1.Cells(i, 103), 10) 'F RADI EXTERIOR
'
If Campo31 = "NIN-AF" Then Campo31 = " " 'CODIGO PENSION
If Campo35 = "NIN-EP" Then Campo35 = " " 'CODIGO SALUD
If Campo39 = "NIN-CC" Then Campo39 = " " 'CODIGO CAJA
If Campo52 = 0 Then Campo52 = "0.00000" 'PENSION
If Campo52 = ".160000" Then Campo52 = "0.16000"
If Campo52 = ".120000" Then Campo52 = "0.12000"
If Campo52 = ".260000" Then Campo52 = "0.26000"
If Campo60 = 0 Then Campo60 = "0.00000" ' SALUD
If Campo60 = ".040000" Then Campo60 = "0.04000"
If Campo60 = ".125000" Then Campo60 = "0.12500"
If Campo60 = ".085000" Then Campo60 = "0.08500"
If Campo60 = ".015000" Then Campo60 = "0.01500"
If Campo67 = 0 Then Campo67 = "0.0000000" 'RIESGOS
If Campo67 = ".01044000" Then Campo67 = "0.0104400"
If Campo67 = ".02436000" Then Campo67 = "0.0243600"
If Campo67 = ".00522000" Then Campo67 = "0.0052200"
If Campo67 = ".04350000" Then Campo67 = "0.0435000"
If Campo67 = ".06960000" Then Campo67 = "0.0696000"
If Campo70 = 0 Then Campo70 = "0.00000" 'CAJA
If Campo70 = ".040000" Then Campo70 = "0.04000"
If Campo72 = 0 Then Campo72 = "0.00000" 'SENA
If Campo72 = ".020000" Then Campo72 = "0.02000"
If Campo72 = ".005000" Then Campo72 = "0.00500"
If Campo74 = 0 Then Campo74 = "0.00000" 'ICBF
If Campo74 = ".030000" Then Campo74 = "0.03000"
If Campo76 = 0 Then Campo76 = "0.00000" 'ESAP
If Campo76 = ".005000" Then Campo76 = "0.00500"
If Campo78 = 0 Then Campo78 = "0.00000" 'MINISTERIO
If Campo78 = ".010000" Then Campo78 = "0.01000"
If Campo60 = "0.04000" Then Campo82 = "S" 'EXONE
If Campo60 = "0.12500" Then Campo82 = "N" 'EXONE
If Campo60 = "0.00000" Then Campo82 = "S" 'EXONE
If Campo60 = "0.08500" Then Campo82 = "N" 'EXONE
If Campo60 = "0.01500" Then Campo82 = "N" 'EXONE
If Campo5 = "40" Then Campo82 = "N" 'EXONE
Poner_Registro = Campo1 & Campo2 & Campo3 & Campo4 & Campo5 & Campo6 & Campo7 & Campo8 & Campo9 & Campo10 & _
Campo11 & Campo12 & Campo13 & Campo14 & Campo15 & Campo16 & Campo17 & Campo18 & Campo19 & Campo20 & _
Campo21 & Campo22 & Campo23 & Campo24 & Campo25 & Campo26 & Campo27 & Campo28 & Campo29 & Campo30 & _
Campo31 & Campo33 & Campo35 & Campo37 & Campo39 & Campo41 & Campo42 & Campo43 & Campo44 & Campo45 & _
Campo46 & Campo47 & Campo48 & Campo49 & Campo50 & Campo51 & Campo52 & Campo53 & Campo54 & Campo55 & _
Campo56 & Campo57 & Campo58 & Campo59 & Campo60 & Campo61 & Campo62 & Campo63 & Campo64 & Campo65 & _
Campo66 & Campo67 & Campo68 & Campo69 & Campo70 & Campo71 & Campo72 & Campo73 & Campo74 & Campo75 & _
Campo76 & Campo77 & Campo78 & Campo79 & Campo80 & Campo81 & Campo82 & Campo83 & Campo84 & Campo85 & _
Campo86 & Campo87 & Campo88 & Campo89 & Campo90 & Campo91 & Campo92 & Campo93 & Campo94 & Campo95 & _
Campo96 & Campo97 & Campo98 & Campo99 & Campo100 & Campo101 & Campo102 & Campo103
End Function
'
Function Poner_Encabezado(h1)
j = 2
Campo1 = C_Izq(h1.Cells(j, 1), 2)
Campo2 = C_Izq(h1.Cells(j, 2), 5)
Campo3 = B_Der(h1.Cells(j, 3), 200)
Campo4 = B_Der(h1.Cells(j, 4), 2)
Campo5 = B_Der(h1.Cells(j, 5), 16)
Campo6 = C_Izq(h1.Cells(j, 6), 1)
Campo7 = C_Izq(h1.Cells(j, 7), 1)
Campo8 = B_Der(h1.Cells(j, 8), 10)
Campo9 = B_Der(h1.Cells(j, 9), 10)
Campo10 = C_Izq(h1.Cells(j, 10), 1)
Campo11 = B_Der(h1.Cells(j, 11), 10)
Campo12 = B_Der(h1.Cells(j, 12), 40)
Campo13 = B_Der(h1.Cells(j, 13), 6)
Campo15 = B_Der(h1.Cells(j, 15), 18) 'Period coti
Campo16 = B_Der(h1.Cells(j, 16), 18) 'Periodo ser
Campo17 = B_Der(h1.Cells(j, 17), 10) & " "
Campo18 = C_Izq(h1.Cells(j, 18), 5)
Campo19 = C_Izq(h1.Cells(j, 19), 12)
Campo20 = C_Izq(h1.Cells(j, 20), 2)
Campo21 = C_Izq(h1.Cells(j, 21), 2)
If Campo8 = 0 Then Campo8 = " "
If Campo9 >= 0 Then Campo9 = " "
If Campo15 <> "" Then Campo15 = Format(CDate(Replace(Campo15, " de ", " ")), "yyyy-mm")
If Campo16 <> "" Then Campo16 = Format(CDate(Replace(Campo16, " de ", " ")), "yyyy-mm")
Poner_Encabezado = Campo1 & Campo2 & Campo3 & Campo4 & Campo5 & Campo6 & Campo7 & Campo8 & _
Campo9 & Campo10 & Campo11 & Campo12 & Campo13 & Campo14 & Campo15 & _
Campo16 & Campo17 & Campo18 & Campo19 & Campo20 & Campo21
End FunctionNo olvides cambiar la valoración a la respuesta.
¡Gracias! Dante;
Te informo que me están saliendo uno errores al momento de ejecutar la macro te voy a enviar la información por email, Quedo atento, Gracias.
Si son errores en la conversión de la fecha a texto para nombrar los archivos, con gusto lo reviso, pero sin son errores en tus datos, es decir, en el llenado de los campos, deberás revisar tu información de la hoja; ya que solamente tomé tu macro y le adapté la generación de un archivo por registro.
Listo ingeniero Dante,
Ya la pude ejecutar , Muchas gracias.
A su correo le envié unas indicaciones ya que no está modificando los meses o periodos dentro del TXT , Quedo atento muchas gracias de nuevo.
Te anexo el código actualizado
Sub EXPORTAR_TXT_ANCHOFIJO()
'Act Por Dante Amor
'
Dim i As Double
ruta = ThisWorkbook.Path & "\"
Set h1 = Sheets(1)
añ1 = Year(CDate(Replace(h1. Cells(2, 15).Value, " de ", " ")))
me1 = Month(CDate(Replace(h1. Cells(2, 15).Value, " de ", " ")))
fe1 = DateSerial(añ1, me1, 1)
'
añ2 = Year(CDate(Replace(h1. Cells(2, 16).Value, " de ", " ")))
me2 = Month(CDate(Replace(h1. Cells(2, 16).Value, " de ", " ")))
fe2 = DateSerial(añ2, me2, 1)
'
fin = h1.Range("A" & Rows.Count).End(xlUp).Row
For i = 4 To fin
arch = ruta & Format(fe1, "yyyy-mm") & "-" & Format(fe2, "yyyy-mm") & ".txt"
c15 = añ1 & "-" & Format(me1, "00")
c16 = añ2 & "-" & Format(me2, "00")
'
Open arch For Output As #1
titulos = Poner_Encabezado(h1, c15, c16)
Print #1, titulos
registro = Poner_Registro(h1, i)
Print #1, registro
Close
me1 = me1 + 1
me2 = me2 + 1
fe1 = DateSerial(añ1, me1, 1)
fe2 = DateSerial(añ2, me2, 1)
Next i
MsgBox "Fin"
End Sub
'
Function Poner_Registro(h1, i)
Campo1 = C_Izq(h1.Cells(i, 1), 2)
Campo2 = C_Izq(h1.Cells(i, 2), 5)
Campo3 = B_Der(h1.Cells(i, 3), 2)
Campo4 = B_Der(h1.Cells(i, 4), 16)
Campo5 = C_Izq(h1.Cells(i, 5), 2)
Campo6 = C_Izq(h1.Cells(i, 6), 2)
Campo7 = B_Der(h1.Cells(i, 7), 1)
Campo8 = B_Der(h1.Cells(i, 8), 1)
Campo9 = C_Izq(h1.Cells(i, 9), 2)
'
Campo10 = C_Izq(h1.Cells(i, 10), 3)
Campo11 = B_Der(h1.Cells(i, 11), 20)
Campo12 = B_Der(h1.Cells(i, 12), 30)
Campo13 = B_Der(h1.Cells(i, 13), 20)
Campo14 = B_Der(h1.Cells(i, 14), 30)
campo15 = B_Der(h1.Cells(i, 15), 1)
campo16 = B_Der(h1.Cells(i, 16), 1)
Campo17 = B_Der(h1.Cells(i, 17), 1)
Campo18 = B_Der(h1.Cells(i, 18), 1)
Campo19 = B_Der(h1.Cells(i, 19), 1)
'
Campo20 = B_Der(h1.Cells(i, 20), 1)
Campo21 = B_Der(h1.Cells(i, 21), 1)
Campo22 = B_Der(h1.Cells(i, 22), 1)
Campo23 = B_Der(h1.Cells(i, 23), 1)
Campo24 = B_Der(h1.Cells(i, 24), 1)
Campo25 = B_Der(h1.Cells(i, 25), 1)
Campo26 = B_Der(h1.Cells(i, 26), 1)
Campo27 = B_Der(h1.Cells(i, 27), 1)
Campo28 = B_Der(h1.Cells(i, 28), 1)
Campo29 = B_Der(h1.Cells(i, 29), 1)
'
Campo30 = C_Izq(h1.Cells(i, 30), 2)
Campo31 = B_Der(h1.Cells(i, 31), 6) ' CODIGO AFP
Campo33 = B_Der(h1.Cells(i, 33), 6) ' CODIGO TRAS AFP
Campo35 = B_Der(h1.Cells(i, 35), 6) ' CODIGO EPS
Campo37 = B_Der(h1.Cells(i, 37), 6) ' CIDOGO TRAS EPS
Campo39 = B_Der(h1.Cells(i, 39), 6) ' CIDIGO CAJA
'
Campo41 = C_Izq(h1.Cells(i, 41), 2)
Campo42 = C_Izq(h1.Cells(i, 42), 2)
Campo43 = C_Izq(h1.Cells(i, 43), 2)
Campo44 = C_Izq(h1.Cells(i, 44), 2)
Campo45 = C_Izq(h1.Cells(i, 45), 9)
Campo46 = B_Der(h1.Cells(i, 46), 1)
Campo47 = C_Izq(h1.Cells(i, 47), 9) 'IBC PENSION
Campo48 = C_Izq(h1.Cells(i, 48), 9) 'IBC SALUD
Campo49 = C_Izq(h1.Cells(i, 49), 9) 'IBC ARL
'
Campo50 = C_Izq(h1.Cells(i, 50), 9) 'IBC CAJA
Campo52 = C_Der(h1.Cells(i, 52), 7)
Campo53 = C_Izq(h1.Cells(i, 53), 9)
Campo54 = C_Izq(h1.Cells(i, 54), 9)
Campo55 = C_Izq(h1.Cells(i, 55), 9)
Campo56 = C_Izq(h1.Cells(i, 56), 9)
Campo57 = C_Izq(h1.Cells(i, 57), 9)
Campo58 = C_Izq(h1.Cells(i, 58), 9)
Campo59 = C_Izq(h1.Cells(i, 59), 9)
'
Campo60 = C_Der(h1.Cells(i, 60), 7) 'tarifa salud
Campo61 = C_Izq(h1.Cells(i, 61), 9) 'cotizacion salud
Campo62 = C_Izq(h1.Cells(i, 62), 9) 'UPC
Campo63 = B_Der(h1.Cells(i, 63), 15)
Campo64 = C_Izq(h1.Cells(i, 64), 9)
Campo65 = B_Der(h1.Cells(i, 65), 15)
Campo66 = C_Izq(h1.Cells(i, 66), 9)
Campo67 = C_Der(h1.Cells(i, 67), 9)
Campo68 = C_Der(h1.Cells(i, 68), 9)
Campo69 = C_Izq(h1.Cells(i, 69), 9)
'
Campo70 = C_Der(h1.Cells(i, 70), 7)
Campo71 = C_Izq(h1.Cells(i, 71), 9)
Campo72 = C_Der(h1.Cells(i, 72), 7)
Campo73 = C_Izq(h1.Cells(i, 73), 9)
Campo74 = C_Der(h1.Cells(i, 74), 7)
Campo75 = C_Izq(h1.Cells(i, 75), 9)
Campo76 = C_Der(h1.Cells(i, 76), 7)
Campo77 = C_Izq(h1.Cells(i, 77), 9)
Campo78 = C_Der(h1.Cells(i, 78), 7)
Campo79 = C_Izq(h1.Cells(i, 79), 9)
'
Campo80 = B_Der(h1.Cells(i, 80), 2) 'TIPO UPC COTIZANTE
Campo81 = B_Der(h1.Cells(i, 81), 16) 'CED UPC COTIZANTE
Campo82 = C_Izq(h1.Cells(i, 82), 1) 'EXONERACION
Campo83 = B_Der(h1.Cells(i, 83), 6) 'CODI AD ARL
Campo84 = B_Der(h1.Cells(i, 84), 1) 'NIVEL ARL
Campo85 = B_Der(h1.Cells(i, 85), 1) 'INDI TARI ES PEN
Campo86 = B_Der(h1.Cells(i, 86), 10) 'F INGRESO
Campo87 = B_Der(h1.Cells(i, 87), 10) 'F RETIRO
Campo88 = B_Der(h1.Cells(i, 88), 10) 'F VSP
Campo89 = B_Der(h1.Cells(i, 89), 10) 'F I SLN
'
Campo90 = B_Der(h1.Cells(i, 90), 10) 'F F SLN
Campo91 = B_Der(h1.Cells(i, 91), 10) 'F I IGE
Campo92 = B_Der(h1.Cells(i, 92), 10) 'F F IGE
Campo93 = B_Der(h1.Cells(i, 93), 10) 'F I LMA
Campo94 = B_Der(h1.Cells(i, 94), 10) 'F F LMA
Campo95 = B_Der(h1.Cells(i, 95), 10) 'F I VAC-LR
Campo96 = B_Der(h1.Cells(i, 96), 10) 'F F VAC-LR
Campo97 = B_Der(h1.Cells(i, 97), 10) 'F I VCT
Campo98 = B_Der(h1.Cells(i, 98), 10) 'F F VCT
Campo99 = B_Der(h1.Cells(i, 99), 10) 'F I IRL
'
Campo100 = B_Der(h1.Cells(i, 100), 10) 'F F IRL
Campo101 = C_Izq(h1.Cells(i, 51), 9) 'IBC PARAFISCALES
Campo102 = C_Izq(h1.Cells(i, 102), 3) 'N HORAS
Campo103 = B_Der(h1.Cells(i, 103), 10) 'F RADI EXTERIOR
'
If Campo31 = "NIN-AF" Then Campo31 = " " 'CODIGO PENSION
If Campo35 = "NIN-EP" Then Campo35 = " " 'CODIGO SALUD
If Campo39 = "NIN-CC" Then Campo39 = " " 'CODIGO CAJA
If Campo52 = 0 Then Campo52 = "0.00000" 'PENSION
If Campo52 = ".160000" Then Campo52 = "0.16000"
If Campo52 = ".120000" Then Campo52 = "0.12000"
If Campo52 = ".260000" Then Campo52 = "0.26000"
If Campo60 = 0 Then Campo60 = "0.00000" ' SALUD
If Campo60 = ".040000" Then Campo60 = "0.04000"
If Campo60 = ".125000" Then Campo60 = "0.12500"
If Campo60 = ".085000" Then Campo60 = "0.08500"
If Campo60 = ".015000" Then Campo60 = "0.01500"
If Campo67 = 0 Then Campo67 = "0.0000000" 'RIESGOS
If Campo67 = ".01044000" Then Campo67 = "0.0104400"
If Campo67 = ".02436000" Then Campo67 = "0.0243600"
If Campo67 = ".00522000" Then Campo67 = "0.0052200"
If Campo67 = ".04350000" Then Campo67 = "0.0435000"
If Campo67 = ".06960000" Then Campo67 = "0.0696000"
If Campo70 = 0 Then Campo70 = "0.00000" 'CAJA
If Campo70 = ".040000" Then Campo70 = "0.04000"
If Campo72 = 0 Then Campo72 = "0.00000" 'SENA
If Campo72 = ".020000" Then Campo72 = "0.02000"
If Campo72 = ".005000" Then Campo72 = "0.00500"
If Campo74 = 0 Then Campo74 = "0.00000" 'ICBF
If Campo74 = ".030000" Then Campo74 = "0.03000"
If Campo76 = 0 Then Campo76 = "0.00000" 'ESAP
If Campo76 = ".005000" Then Campo76 = "0.00500"
If Campo78 = 0 Then Campo78 = "0.00000" 'MINISTERIO
If Campo78 = ".010000" Then Campo78 = "0.01000"
If Campo60 = "0.04000" Then Campo82 = "S" 'EXONE
If Campo60 = "0.12500" Then Campo82 = "N" 'EXONE
If Campo60 = "0.00000" Then Campo82 = "S" 'EXONE
If Campo60 = "0.08500" Then Campo82 = "N" 'EXONE
If Campo60 = "0.01500" Then Campo82 = "N" 'EXONE
If Campo5 = "40" Then Campo82 = "N" 'EXONE
Poner_Registro = Campo1 & Campo2 & Campo3 & Campo4 & Campo5 & Campo6 & Campo7 & Campo8 & Campo9 & Campo10 & _
Campo11 & Campo12 & Campo13 & Campo14 & campo15 & campo16 & Campo17 & Campo18 & Campo19 & Campo20 & _
Campo21 & Campo22 & Campo23 & Campo24 & Campo25 & Campo26 & Campo27 & Campo28 & Campo29 & Campo30 & _
Campo31 & Campo33 & Campo35 & Campo37 & Campo39 & Campo41 & Campo42 & Campo43 & Campo44 & Campo45 & _
Campo46 & Campo47 & Campo48 & Campo49 & Campo50 & Campo51 & Campo52 & Campo53 & Campo54 & Campo55 & _
Campo56 & Campo57 & Campo58 & Campo59 & Campo60 & Campo61 & Campo62 & Campo63 & Campo64 & Campo65 & _
Campo66 & Campo67 & Campo68 & Campo69 & Campo70 & Campo71 & Campo72 & Campo73 & Campo74 & Campo75 & _
Campo76 & Campo77 & Campo78 & Campo79 & Campo80 & Campo81 & Campo82 & Campo83 & Campo84 & Campo85 & _
Campo86 & Campo87 & Campo88 & Campo89 & Campo90 & Campo91 & Campo92 & Campo93 & Campo94 & Campo95 & _
Campo96 & Campo97 & Campo98 & Campo99 & Campo100 & Campo101 & Campo102 & Campo103
End Function
'
Function Poner_Encabezado(h1, c15, c16)
j = 2
Campo1 = C_Izq(h1.Cells(j, 1), 2)
Campo2 = C_Izq(h1.Cells(j, 2), 5)
Campo3 = B_Der(h1.Cells(j, 3), 200)
Campo4 = B_Der(h1.Cells(j, 4), 2)
Campo5 = B_Der(h1.Cells(j, 5), 16)
Campo6 = C_Izq(h1.Cells(j, 6), 1)
Campo7 = C_Izq(h1.Cells(j, 7), 1)
Campo8 = B_Der(h1.Cells(j, 8), 10)
Campo9 = B_Der(h1.Cells(j, 9), 10)
Campo10 = C_Izq(h1.Cells(j, 10), 1)
Campo11 = B_Der(h1.Cells(j, 11), 10)
Campo12 = B_Der(h1.Cells(j, 12), 40)
Campo13 = B_Der(h1.Cells(j, 13), 6)
campo15 = B_Der(h1.Cells(j, 15), 18) 'Period coti
campo16 = B_Der(h1.Cells(j, 16), 18) 'Periodo ser
Campo17 = B_Der(h1.Cells(j, 17), 10) & " "
Campo18 = C_Izq(h1.Cells(j, 18), 5)
Campo19 = C_Izq(h1.Cells(j, 19), 12)
Campo20 = C_Izq(h1.Cells(j, 20), 2)
Campo21 = C_Izq(h1.Cells(j, 21), 2)
If Campo8 = 0 Then Campo8 = " "
If Campo9 >= 0 Then Campo9 = " "
'If Campo15 <> "" Then Campo15 = Format(CDate(Replace(Campo15, " de ", " ")), "yyyy-mm")
'If Campo16 <> "" Then Campo16 = Format(CDate(Replace(Campo16, " de ", " ")), "yyyy-mm")
campo15 = c15
campo16 = c16
Poner_Encabezado = Campo1 & Campo2 & Campo3 & Campo4 & Campo5 & Campo6 & Campo7 & Campo8 & _
Campo9 & Campo10 & Campo11 & Campo12 & Campo13 & Campo14 & campo15 & _
campo16 & Campo17 & Campo18 & Campo19 & Campo20 & Campo21
End Function[sal u dos
- Compartir respuesta