Skip to main content

HACIENDA MOD 190 DE HOJA EXCEL A 190.TXT

La declaración puede importarse con un fichero texto 190.txt que tiene que tener el siguiente formato :

Formato https://sede.agenciatributaria.gob.es/static_files/Sede/Disenyo_registro/DR_100_199/archivos_24/DISENOS_LOGICOS_190-2024.pdf

En esas instrucciones hay tres tipos de textos TIPO 1, TIPO 2 Y TIPO 3

Texto tipo 1

Son 500 caracteres, que tienes que pegar al principio en el fichero que vas a generar en el paso siguiente, tienes que modificar

  • Posición 5-8 Numérico EJERCICIO.
  • Posición 136-144 Numérico NÚMERO TOTAL DE PERCEPCIONES. en este caso son 181
  • Posición 145-160 Alfanumérico IMPORTE TOTAL DE LAS PERCEPCIONES. en este caso son 324751,26
  • Posición 161-175 Numérico IMPORTE TOTAL DE LAS RETENCIONES en este caso son 48712,68

11902024Q4400401HCATEDU                                  T638855010QUINTANA PEIRO JOSE JAVIER              0000000000000  0000000000000000000181 000000032475126000000004871268direccion@catedu.es                                                                                                                                                                                                                                                                                                                  

Texto tipo 2

Partimos del fichero excel que hemos conseguido anteriormente

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

  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 EL AÑO EN EL SCRIPT la línea 23 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
    
    ' 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, "00000000000000")  '81-107  Alfanumérico PERCEPCIONES DINERARIAS (columna E)
                                                                                '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 & "0000000000000000000000000000000000000000"       '108-147  Alfanumérico PERCEPCIONES  EN  ESPECIE 135-145 Parte entera  si  no ceros. 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 & "3"                                                      '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 190.txt