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++ https://notepad-plus-plus.org/downloads/
- 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 PERO SIN QUITAR Y PONER CARÁCTERES
ES DECIR si cambias CATEDU por CP JUAN DE LANUZA cómete tantos espacios en blanco para que el siguiente carácter que es la T esté en el mismo lugar, si miras https://sede.agenciatributaria.gob.es/static_files/Sede/Disenyo_registro/DR_100_199/archivos_24/DISENOS_LOGICOS_190-2024.pdf en la página 3 tiene que estar en la posición 58. No se te ocurra contar posiciones a mano, el Notepad++ lo hace por ti
- 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 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
- 11902024Q4400401HCATEDU T638855010QUINTANA PEIRO JOSE JAVIER 1900000000002 0000000000000000000180 000000032475126000000004871268DIRECCION@CATEDU.ES
- Nota: He 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)
- Si eres de otro centro de profesorado, cambia lo azul
- 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
No Comments