Skip to main content

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 :

Partimos del fichero Excell

Partimos del fichero excel  190-xx-conscript.xlsm  que hemos conseguido anteriormente 

IMPORTANTE tiene que tener ese mismo orden

2025-01-19 10_57_26-Libro1.xlsm - Excel.png

Una vez que lo tienes haces lo siguiente

  1. Abre el archivo Excel.

  2. Presiona Alt + F11 para abrir el editor de VBA.

  3. En el editor, haz clic en Insertar > Módulo.

  4. 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)
  •  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
  1. Ejecuta la macro presionando Alt + F8, seleccionando GenerarModelo190, y haciendo clic en Ejecutar. o en el botón del play de arriba
  2. El archivo se guarda automáticamente en Mis Documentos como modelo_190.txt

2025-01-21 14_07_09-Documentos - Explorador de archivos.png

Vas a la Agencia Tributaria a esta ruta

2025-01-21 20_10_58-Agencia Tributaria_ Modelo 190. Declaración Informativa. Retenciones e ingresos .png

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

2025-01-21 20_07_44-Modelo 190.png

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