HACIENDA MOD 190: De hoja excel a fichero 190.txt Importación a MOD 190
¿Qué es el fichero 190.txt?
La declaración 190 puede importarse con un fichero texto 190.txt que tiene que tener el siguiente formato :
- Formato del fichero : https://sede.agenciatributaria.gob.es/static_files/Sede/Disenyo_registro/DR_100_199/archivos_24/DISENOS_LOGICOS_190-2024.pdf
- Formato de la naturaleza de los campos https://sede.agenciatributaria.gob.es/Sede/ayuda/consultas-informaticas/presentacion-declaraciones-ayuda-tecnica/errores-importacion-ficheros/frech-fichero-se-rechazo-caracteres-permitidos.html
- Todos los textos van en mayúsculas, sin acentos, ni caracteres extraños como º ª excepto el @ en el campo correo electrónico del registro tipo 1
- El fichero tiene el formato ISO-8859-1 y si lo necesitas editar, no hacerlo con el bloc de notas de Windows sino con Notepad++
- En esas instrucciones hay dos tipos de registros de 500 carácteres
- TIPO 1 sólo uno con los datos del declarante.
- TIPO 2 con los datos de cada preceptor. Un registro por cada uno.
Partimos del fichero Excell
Partimos del fichero excel 190-xx-conscript.xlsm que hemos conseguido anteriormente
IMPORTANTE tiene que tener ese mismo orden
Una vez que lo tienes haces lo siguiente
-
Abre el archivo Excel.
-
Presiona Alt + F11 para abrir el editor de VBA.
-
En el editor, haz clic en Insertar > Módulo.
-
Copia y pega el siguiente código:
ATENCIÓN, CAMBIA LO SIGUIENTE
- REGISTRO TIPO 1 línea de código 21
- Si eres de otro centro de profesorado, cambia lo azul
- El cif Q4400401H
- El teléfono 638855010 la T no lo cambies, significa presentación Telemática
- Mi nombre apellidos y mi email
- Cambia cada año lo marcado en negrita en rojo
- Posición 5-8 Numérico
EJERCICIO.EJERCICIO o sea el año. - Posición 136-144 Numérico NÚMERO TOTAL DE PERCEPCIONES. en este caso son 180
- Posición 145-160 Alfanumérico IMPORTE TOTAL DE LAS PERCEPCIONES. en este caso son 324751,26 sin coma y 2decimales
- Posición 161-175 Numérico IMPORTE TOTAL DE LAS RETENCIONES en este caso son 48712,68 sin coma y 2decimales
Si eres de otro centro de profesorado, cambia lo azulEl cif Q4400401HEl teléfono 638855010 la T no lo cambies, significa presentación TelemáticaMi nombre apellidos y mi email
Es decir lo marcado en negrita en rojo1119011902024Q4400401HCATEDU T638855010QUINTANA PEIRO JOSE JAVIER 1900000000002 0000000000000000000180 000000032475126000000004871268DIRECCION@CATEDU.ESNotaNota:heHe puesto como número identificativo el número 2, puede ser otro número 1900000000002 no pasa nada que lo chafa si lo entregas en la opción Modelo 190 Ejercicio 20xx Presentación (hasta 40.000 registros) ver figura más abajo, no lo chafa si lo presentas con la opción Modelo 190 Ejercicio 20xx Presentación mediante fichero (no recomendable)
- Posición 5-8 Numérico
- REGISTRO TIPO 2 línea de código 32
- EL AÑO EN EL SCRIPT linea = "21902024Q4400401H"
Sub GenerarFichero190() Dim ruta As String Dim archivo As Integer Dim ultimaFila As Long Dim linea As String Dim i As Long ' Ruta y nombre del archivo de salida ruta = Application.DefaultFilePath & "\modelo_190.txt" ' Puedes personalizar la ruta archivo = FreeFile ' Abrir archivo para escritura Open ruta For Output As archivo ' Determinar la última fila con datos ultimaFila = Cells(Rows.Count, 1).End(xlUp).Row '####### Poner registro tipo 1 ############################################################## ' IMPORTANTE CAMBIAR 2024 EL AÑO, CAMBIAR 180 NUMERO PERCEPTORES, CAMBIAR 32451260 SUMA PERCEPTORES Y CAMBIAR 4871268 SUMA RETENCIONES linea = "11902024Q4400401HCATEDU T638855010QUINTANA PEIRO JOSE JAVIER 1900000000002 0000000000000000000180 000000032475126000000004871268DIRECCION@CATEDU.ES " ' Escribir la línea al archivo Print #archivo, linea '####### Poner registros tipo 2 ############################################################## ' Recorrer las filas y construir el archivo For i = 2 To ultimaFila ' Asume que la fila 1 tiene encabezados '1 Numérico TIPO DE REGISTRO. '2-4 Numérico MODELO DECLARACIÓN. '5-8 Numérico EJERCICIO. linea = "21902024Q4400401H" '9-17 Alfanumérico NIF DEL DECLARANTE. linea = linea & Cells(i, 1).Value '18-26 Alfanumérico NIF DEL PERCEPTOR. (columna A) linea = linea & " " '27-35 Alfanumérico NIF DEL REPRESENTANTE LEGAL. linea = linea & Left(Cells(i, 2).Value & Space(40), 40) '36-75 Alfanumérico APELLIDOS Y NOMBRE (COLUMNA B) linea = linea & Format(Cells(i, 3).Value, "00") '76-77 Numérico CÓDIGO PROVINCIA.(COLUMNA C) linea = linea & Format(Cells(i, 4).Value, "0") ' 78 Alfabético CLAVE DE PERCEPCIÓN. (columna D) '79-80 Numérico SUBCLAVE. linea = linea & Format(Cells(i, 5).Value * 100, " 0000000000000") '81-107 Alfanumérico PERCEPCIONES DINERARIAS (columna E) '81 SIGNO DE LA PERCEPCIÓN ÍNTEGRA en cualquierotro caso el contenido de este campo será un espacio. '82-92 Parte entera del importe '93-94 Parte decimal del importe linea = linea & Format(Cells(i, 6).Value * 100, "0000000000000") '95-107 RETENCIONES PRACTICADAS (columna F) 'Campo numérico de 13 posiciones. Se consignará, sin 'signo y sin coma decimal, el importe anual efectivamente retenido a cuenta del IRPF 'relación con las percepciones dinerarias consignadas en el campo anterior, linea = linea & " 000000000000000000000000000000000000000" '108-147 Alfanumérico PERCEPCIONES EN ESPECIE 135-145 Parte entera si no ceros. '108 SIGNO DE LA PERCEPCIÓN EN ESPECIE: en cualquier otro caso el contenido de este campo será un espacio. '146-147 Parte decimal del importe de los ingresos, si no ceros linea = linea & "0000" '148-151 Numérico EJERCICIO DEVENGO. En cualquier otro caso Se rellenara a ceros (0). linea = linea & "0" '152 Numérico CEUTA O MELILLA. En otro caso número cero (0). '153-254 DATOS ADICIONALES (solo en las claves y subclaves A, B -subclaves 01 y 03-, C, E, F - subclaves 01 a 06-, G -subclaves 01 a 06 y 08-, H, I, y L -subclaves 05, 10, 27 y 29-). linea = linea & "0000" '153-156 Numérico AÑO DE NACIMIENTO. linea = linea & "0" '157 Numérico SITUACIÓN FAMILIAR.3. Si la situación familiar del perceptor es distinta de las anteriores linea = linea & " " '158-166 Alfanumérico NIF DEL CÓNYUGE / NIF DEL TITULAR DE LA UNIDAD DE CONVIVENCIA. En cualquier otro caso este campo se rellenará a espacios. linea = linea & "0" '167 Numérico DISCAPACIDAD. 0. Si el perceptor no padece ninguna discapacidad linea = linea & "0" '168 Numérico CONTRATO O RELACIÓN Solo para percepciones correspondientes a la clave A. linea = linea & "0" '169 Numérico TITULAR UNIDAD DE CONVIVENCIA linea = linea & "0" '170 Numérico MOVILIDAD GEOGRÁFICA. Solo para percepciones correspondientes a la clave A linea = linea & "00000000000000000" '171-183 Numérico REDUCCIONES APLICABLES. linea = linea & "000000000000000" '184-196 Numérico GASTOS DEDUCIBLES. linea = linea & "00000000000000000" '197-209 Numérico PENSIONES COMPENSATORIAS. linea = linea & "00000000000000" '210-222 Numérico ANUALIDADES POR ALIMENTOS. linea = linea & "0000" '223-228 Numérico HIJOS Y OTROS DESCENDIENTES. linea = linea & "0000" '229-240 Numérico HIJOS Y OTROS DESCENDIENTES CON DISCAPACIDAD. linea = linea & "0000" '241-244 Numérico ASCENDIENTES. linea = linea & "0000" '245-250 Numérico ASCENDIENTES CON DISCAPACIDAD. linea = linea & "0000" '251-253 Numérico CÓMPUTO DE LOS 3 PRIMEROS HIJOS. linea = linea & "0" '254 Numérico COMUNICACIÓN PRÉSTAMOS VIVIENDA HABITUAL.0: Si en ningún momento del ejercicio ha resultado de aplicación la reducción del tipo de retención. '255-281 Alfanumérico PERCEPCIONES DINERARIAS DERIVADAS DE INCAPACIDAD LABORAL sino ceros linea = linea & " " '255 En este caso se consignará una «N», en cualquier otro caso el contenido de este campo será un espacio. linea = linea & "00000000000000000000000000" '256-268 PERCEPCIÓN ÍNTEGRA (Dineraria)DERIVADA DE INCAPACIDAD LABORAL '282-321 Alfanumérico PERCEPCIONES EN ESPECIE DERIVADAS DE INCAPACIDAD LABORAL: linea = linea & " " '282 En este caso se consignará una «N», en cualquier otro caso el contenido de este campo será un espacio. linea = linea & "0000000000000" '283-295 PERCEPCIÓN ÍNTEGRA (Dineraria)DERIVADA DE INCAPACIDAD LABORAL linea = linea & "0000000000000" '296-308 INGRESOS A CUENTA EFECTUADOS POR PRESTACIONES EN ESPECIE DERIVADAS DE INCAPACIDAD LABORAL: linea = linea & "0000000000000" '309-321 INGRESOS A CUENTA REPERCUTIDOS POR PRESTACIONES EN ESPECIE DERIVADAS DE INCAPACIDAD LABORAL: linea = linea & "0" '322 Numérico COMPLEMENTO AYUDA PARA LA INFANCIA linea = linea & "00000000000000000000000000000000000000000000000000000000000000000" '323-387 NuméricoRETENCIONES E INGRESOS A CUENTAINGRESADOS EN EL ESTADO, EN LASDIPUTACIONES FORALES DEL PAIS VASCO YEN LA COMUNIDAD FORAL DE NAVARRA linea = linea & "0" '388 Numérico EXCESOS ENTREGA ACCIONES EMPRESAS EMERGENTES linea = linea & Space(111) '389-500 –BLANCOS. linea = linea & " " ' he puesto un espacio en blanco tiene que coincidir en la 500 ' Escribir la línea al archivo Print #archivo, linea Next i ' Cerrar el archivo Close archivo ' Mensaje de confirmación MsgBox "Archivo generado correctamente en: " & ruta, vbInformation End Sub
- Ejecuta la macro presionando Alt + F8, seleccionando GenerarModelo190, y haciendo clic en Ejecutar. o en el botón del play de arriba
- El archivo se guarda automáticamente en Mis Documentos como modelo_190.txt
Vas a la Agencia Tributaria a esta ruta
La razón por la que no se aconseja "Modelo 190 Ejercicio XXX Presentación mediante fichero es que no se ve lo importado, firmas a ciegas
Creas un nuevo modelo de 190
OJO, esto importa los datos creados. Es tu responsabilidad de REVISAR que los datos importados son correctos, antes de firmar y enviar
Vas a Importar
Y SALE IGUAL QUE SI LO HUBIERAS TECLEADO A MANO vas pasando por todos los registros y ver revisando si lo ha hecho bien, ver los errores en la ventana de errores, etc..
REVISA TODO, VES LOS ERRORES, ETC....
SI LO VES TODO CORRECTO FIRMAR Y ENVIAR Y YA ESTA
- Si eres de otro centro de profesorado, cambia lo azul