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.
¿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 Function
No 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