Sistema de Gestión de Negocios "Hexa"

Base de datos de conocimiento.

Doc. Ref. 29073
Título: Expportación a Excel de informacion de IVA
Autor: Soltec
Última actualización: 15/08/2025
#IVA #excel


Exportación a Excel de la información de IVA

Es habitual con los responsables del departamento contable y fiscal del área financiera de la empresa quieran analizar con detalle la información del IVA para su correcta gestión. En este documento presentamos dos ejemplos de exportación a Excel de forma que, mediante tablas dinámicas se pueda analizar y verificar.

ç

Es muy importante ser consciente de que los redondeos por linea o por factura completa puede generar descuadres de unos pocos céntimos en las sumas totales.

En ambos scripts, se solicita un rango de fechas y se porpone, por defecto, el trimestre anterior completo.

Analisis por facturas completas.

Sub Main (Criterio, Orden, Opciones)
   If Not Interact.Aceptado Then
      DiaMesAnt = fpc.DesplazaPeriodicidad (Date(), "Mensual", -1)
      Desde = fpc.UnoTrim (DiaMesAnt)
      Hasta =  fpc.FinMes(fpc.DesplazaPeriodicidad (Desde, "Mensual", 2))
      Interact.Reinicia "Datos", "Rango de fechas" : Interact.Cancelable = False
      Interact.NuevoValor "Desde", "Desde", "Fecha", 0, Desde,"",""
      Interact.NuevoValor "Hasta", "Hasta", "Fecha", 0, Hasta,"",""
      Interact.NuevoValor "Fichero", "Fichero Excel a generar", "Fichero", 0, fpc.HPF ("temp\listado de IVA.xlsx"),"",""
   Else
      C = "SELECT Prefijo, Numero, Fecha, "
      C = C & "BaseNeta0, BaseNeta1, BaseNeta2, BaseNeta3, BaseNeta4, "
      C = C & "TipoIVA1, TipoIVA2, TipoIVA3, TipoIVA4, "
      C = C & "ImporteIVA1, ImporteIVA2, ImporteIVA3, ImporteIVA4 "
      C = C & "FROM Factura "
      C = C & "WHERE Fecha>=" & fpc.sqlf(Interact.Valor("Desde")) & " AND Fecha<=" & fpc.sqlf(Interact.Valor("Hasta"))
      C = C & "ORDER BY Fecha, Numero"
      BD.Rs.Consulta = C
      BD.Rs.Abrir (False)
      BD.Rs.CreaExcel (Interact.Valor("Fichero"))
      Interact.Reinicia "Resultado", "Generado " &  Interact.Valor("Fichero") : Interact.Cancelable = False
   End If
End Sub

Analisis por líneas de factura.

Este análisis permite analizar los importes de IVA por, por ejemplo, familias de artículos, pero no debe haber descuentos generales de factura pera que tenga sentido. Suele utilizarse en puntos de venta, por lo que se ha incluido la forma de pago al ser un eje analítico habitual.

Sub Main (Criterio, Orden, Opciones)
   If Not Interact.Aceptado Then
      DiaMesAnt = fpc.DesplazaPeriodicidad (Date(), "Mensual", -1)
      Desde = fpc.UnoTrim (DiaMesAnt)
      Hasta =  fpc.FinMes(fpc.DesplazaPeriodicidad (Desde, "Mensual", 2))
      Interact.Reinicia "Datos", "Rango de fechas" : Interact.Cancelable = False
      Interact.NuevoValor "Desde", "Desde", "Fecha", 0, Desde,"",""
      Interact.NuevoValor "Hasta", "Hasta", "Fecha", 0, Hasta,"",""
      Interact.NuevoValor "Fichero", "Fichero Excel a generar", "Fichero", 0, fpc.HPF ("temp\listado de IVA.xlsx"),"",""
   Else
      C = "SELECT Movimiento.Codigo, Movimiento.FacturaPrefijo, Movimiento.FacturaNumero, Movimiento.Fecha, Movimiento.Articulo, "
      C = C & "CASE  WHEN Factura.FormaPago LIKE 'Efectivo%' THEN 'Efectivo' ELSE Factura.FormaPago END AS FormaPago, "
      C = C & "Articulo.Denominacion, Articulo.Familia, ROUND (Movimiento.Precio,4) AS Precio, Movimiento.Cantidad, Round (Movimiento.Base,4) AS Base, "
      C = C & "100*Movimiento.TipoIVA AS TipoIVA, ROUND(Movimiento.Base * Movimiento.TipoIVA, 3) AS ImporteIVA "
      C = C & "FROM (Movimiento LEFT JOIN Articulo ON Movimiento.Articulo = Articulo.Codigo)  "
      C = C & "LEFT JOIN Factura ON Movimiento.FacturaPrefijo = Factura.Prefijo AND Movimiento.FacturaNumero = Factura.Numero "
      C = C & "WHERE ISNULL (FacturaPrefijo, '') <> '' AND Movimiento.Fecha>=" & fpc.sqlf(Interact.Valor("Desde")) & " AND Movimiento.Fecha<=" & fpc.sqlf(Interact.Valor("Hasta"))
      C = C & "ORDER BY Movimiento.Fecha, Movimiento.FacturaNumero, Movimiento.Codigo"
      BD.Rs.Consulta = C
      BD.Rs.Abrir (False)
      BD.Rs.CreaExcel (Interact.Valor("Fichero"))
      Interact.Reinicia "Resultado", "Generado " &  Interact.Valor("Fichero") : Interact.Cancelable = False
   End If
End Sub

Volver a la búsqueda anterior