Extraction de données depuis une feuille

Yes c'est exactement ça

Merci beaucoup

Désolé j'ai été long à bien comprendre , mais on y arrive!

En même temps, je ne suis pas un modèle pour les explications claires et précises

Re,

encore moi.... désolé

Bon pour le mois en cours c'est ok, idem pour les année n-2 et n-1.

Par contre pour les autres colonnes ( 12 derniers mois, 6 derniers mois et 3 derniers mois) les calculs sont erronés.

Par exemple pour la ref MG10014443, si je me mets en Avril 2019, la requête donne:

> 12 derniers mois: 56

> 6 derniers mois: 32

> 3 derniers mois: 24

Mais lorsque je regarde l'onglet data, je trouve plutôt:

> 12 derniers mois: 56

> 6 derniers mois: 24

> 3 derniers mois: 12

Une idée d'où vient le problème?

capture

Ah oui en effet, un réglage à faire (dans la requête).

On y arrivera p'têt un jour ...

Pour se mettre d'accord, quand on sélectionne par exemple Avril 2019 :

* année n-2 = 2017

* année n-1 = 2018

* 12 derniers mois = de début mai 2018 inclus à fin avril 2019 inclus

* 6 derniers mois = de début novembre 2018 inclus à fin avril 2019 inclus

* 3 derniers mois = de début février 2019 inclus à fin avril 2019 inclus

* mois sélectionné = du 1 avril 2019 inclus au 30 avril 2019 inclus

Est-ce qu'on est ok tous les deux avec ces bornes?

Pierre

Edité à 10h36

... suite ...

Si on est ok avec les définitions précédentes, la requête d'écrit plutôt :

Sub Bilan(Optional mois As Byte = 0)
Dim Dt1 As Date, Dt2, Req As String, T As Variant, T2 As Variant
Dim An As Integer, lg As Integer, i As Integer, j As Integer, idx As Integer

    An = Sheets("Bilan").Range("G1").Value
    Dt1 = DateSerial(An, mois, 1)   ' début du mois sélectionné
    Dt2 = IIf(mois = 0, Date, DateAdd("d", -1, DateSerial(An, mois + 1, 1))) ' fin du mois sélectionné

    Req = "SELECT `Material`," & _
          " SUM (IIF (YEAR(`Created on`) = " & An - 2 & ",`Billed Quantity`,0) ) AS Moins2," & _
          " Moins2/12," & _
          " SUM (IIF (YEAR(`Created on`) = " & An - 1 & ",`Billed Quantity`,0) ) AS Moins1," & _
          " Moins1/12," & _
          " SUM (IIF (`Created on` BETWEEN " & CLng(DateAdd("d", 1, DateAdd("yyyy", -1, Dt1))) & _
            " AND " & CLng(Dt2) & ",`Billed Quantity`,0) ) As A," & _
          " A/12," & _
          " SUM (IIF (`Created on` BETWEEN " & CLng(DateAdd("d", 1, DateAdd("m", -5, Dt1))) & _
            " AND " & CLng(Dt2) & ",`Billed Quantity`,0) ) AS DER6," & _
          " DER6/6," & _
          " SUM (IIF (`Created on` BETWEEN " & CLng(DateAdd("m", -2, Dt1)) & _
            " AND " & CLng(Dt2) & ",`Billed Quantity`,0) ) AS DER3," & _
          " DER3/3," & _
          " SUM (IIF (YEAR(`Created on`) = " & Year(Date) & _
            " AND MONTH(`Created on`)=" & mois & ",`Billed Quantity`,0) )  " & _
          " FROM [Data$] " & _
          " GROUP BY `Material`"

Avec calcul du début ET de la fin du mois en cours

Est-ce que c'est mieux?

Pierre

Salut

On est ok pour les définitions.

Je teste dès que j'ai 5 min

Merci

Hello

les calculs sont corrects à présent;

Encore merci pour ton aide

Rechercher des sujets similaires à "extraction donnees feuille"