Calcul prorata prix date milieu de mois

Bonjour à tous

En colonne A et B j'ai des période... exemple : du 01/01/2019 au 21/03/2019

En colonne C j'ai des prix qui correspondent à chacune des périodes.

Exemple :

Du 01/01/2019 au 21/03/2019 le prix est à 1,2940 €

Du 22/03/2019 au 16/05/2019 le prix est à 2,9480 €

etc ..

Jusque là, tout va bien.

En colonne E et F j'ai ma période mensuelle comptable de 2019

Du 01/01/2019 au 31/01/2019

Du 01/02/2019 au 28/02/2019

Du 01/03/2019 au 31/03/2019

etc...

Sachant qu'en colonne G ma quantité d'achat est de 1000 pour chaque mois.

Je voudrais proratisé la quantité selon le prix de la colonne C par rapport aux dates qu'il y a en A et B.

Je vous laisse mon fichier excel cette fois ci.

Merci de votre réponse.

17pdt.xlsx (9.63 Ko)

Bonjour ngynvn,

Sachant qu'en colonne G ma quantité d'achat est de 1000 pour chaque mois.

A quelle date effectuez vous les achats, avant ou après le changement de tarif?

Sont-ils répartis par semaines, 50 par jour ouvrable???

Bonjour,

Pas de répartition particulier, je vous explique plus concrètement

Du 01/01/2019 au 31/01/2019 : 1000 à 1,2940

Du 01/02/2019 au 28/02/2019 : 1000 à 1,2940

Du 01/03/2019 au 31/03/2019 : 1000 à 1,2940 du 01/03/2019 au 21/03/2019 + 1000 à 2,9480 Du 22/03/2019 au 31/03/2019 (changement de prix à partir du 22) << je cherche une formule pour imbiquer ce calcul sur toutes les dates

Du 01/04/2019 au 31/04/2019 : 1000 à 2,9480

Du 01/05/2019 au 30/05/2019 : 1000 à 2,9480 du 01/05/2019 au 16/05/2019 + 1000 à 2,4940 Du 17/05/2019 au 30/05/2019 (changement de prix à partir du 17) << << idem je cherche la formule pour imbiquer ce calcul sur toutes les dates

Voilà, j'espère que c'est plus clair.

Merci beaucoup

Bonjour,

Une proposition VBA et TCD (Tableau croisé dynamique).

On crée un tableau intermédiaire pour consolider les données.

Cdlt.

10pdt.xlsm (26.90 Ko)
Option Explicit

Dim TD As Range
Dim PT As PivotTable

Public Sub AggregatData()
'Déclaration des variables
Dim tbl As Variant, arr() As Variant
Dim rngGroup As Range
Dim nDays As Double
Dim I As Long, J As Long, k As Long
Const QTY = 1000
    Application.ScreenUpdating = False
    'Initialisation des variables
    Set TD = Range("Input")
    tbl = TD.Value
    'Création tableau intermédiare
    For I = 1 To UBound(tbl)
        For J = tbl(I, 1) To tbl(I, 2)
            nDays = Day(WorksheetFunction.EoMonth(J, 0))
            ReDim Preserve arr(3, k + 1)
            arr(0, k) = CLng(J)
            arr(1, k) = QTY / nDays
            arr(2, k) = QTY / nDays * tbl(I, 3)
            k = k + 1
        Next J
    Next I
    'Restitution des données et mise à jour TCD
    Set TD = Range("Output")
    If Not TD.ListObject.DataBodyRange Is Nothing Then TD.ListObject.DataBodyRange.Delete
    TD.Cells(1, 1).Resize(k, 3).Value = Application.Transpose(arr)
    Set PT = ActiveSheet.PivotTables(1)
    With PT
        .PivotCache.Refresh
        On Error Resume Next
        .AddFields RowFields:="Date"
        Set rngGroup = .PivotFields("Date").DataRange
        rngGroup.Cells(1).Group _
                Start:=True, _
                End:=True, _
                Periods:=Array(False, False, False, False, True, False, False)
    End With
    Set TD = Nothing: Set PT = Nothing
End Sub

Public Sub ResetData()
    Application.ScreenUpdating = False
    Set TD = Range("Output")
    If Not TD.ListObject.DataBodyRange Is Nothing Then TD.ListObject.DataBodyRange.Delete
    Set PT = ActiveSheet.PivotTables(1)
    PT.PivotCache.Refresh
    Set TD = Nothing: Set PT = Nothing
End Sub

Bonjour,

Merci pour la réponse.

Cependant j'aurais aimé éviter les VBA et les TCD et utiliser uniquement les formules

Merci.

Rechercher des sujets similaires à "calcul prorata prix date milieu mois"