Bonjour,
je vois plein de vsAnnee et de vsAnnée + 1 dans lecode je crois deviner le pourquoi, mais si je veux avoir un comparatif mettons 2013 vs 2015 c'est pour cela que ca ne marche pas hein ? (Pas grave) je veux juste savoir.
je cherche juste a savoir la logique du vsAnnee pourrais-tu m'expliquer stp...
Comme depuis le début tu dis vouloir comparer deux années consécutive ( ou du moins c'est ce que j'ai compris), 2014 vs 2015 et que cela marche tout seul pour les autres années, j'en ai déduit, 2015 vs 2016, etc ..
Donc seul la première année était suffisante à passer en paramètre.
Paramètre que je stocke dans la variable vsAnnee qui récupère donc 2014 dans ton exemple, et ensuite il suffit de lui rajouter 1 pour obtenir 2015 et ainsi changer mes libellés et mes formules.
Mais cela ne fonctionne plus si les années ne sont pas consécutives (2103 vs 2015)
Dans ce cas, il faut passer en paramètre les deux années, séparées par un ";"
place donc sur ton bouton de lancement de ton état le code suivant:
DoCmd.OpenReport "1- Requête Comparatif Année Dollars", acViewPreview, , , , Format(RecupDate(1), "yyyy") & ";" & Format(RecupDate(3), "yyyy")
Ensuite dans l'ouverture de ton état, il faut récupérer ces deux années dans un tableau afin de mettre les bons libellé et les bonnes formules.
La fonction Split permet de séparer les valeurs et de les ranger dans un tableau
Utilise alors le code suivant:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| Private Sub Report_Open(Cancel As Integer)
Dim vsAnnee() As String
vsAnnee = Split(Me.OpenArgs, ";")
Et_Champ1.Caption = vsAnnee(0) 'Libellé de l'étiquette 2014
Et_Champ2.Caption = vsAnnee(1) 'Libellé de l'étiquette 2015
Champ1.ControlSource = "=[" & vsAnnee(0) & "]" '[2014] dans ton exemple
Champ2.ControlSource = "=[" & vsAnnee(1) & "]" '[2015] dans ton exemple
Champ3.ControlSource = "=[" & vsAnnee(1) & "]-[" & vsAnnee(0) & "]" '=[2015]-[2014] dans ton exemple
TotalP1.ControlSource = "=sum([" & vsAnnee(0) & "])"
TotalP2.ControlSource = "=sum([" & vsAnnee(1) & "])"
GrandTotal1.ControlSource = "=sum([" & vsAnnee(0) & "])"
GrandTotal2.ControlSource = "=sum([" & vsAnnee(1) & "])"
TotalGeneral1.ControlSource = "=sum([" & vsAnnee(0) & "])"
TotalGeneral2.ControlSource = "=sum([" & vsAnnee(1) & "])"
End Sub |
Ensuite pour les trimestres, et les mois, tu n'a pas besoin de faire tout cela, car dans tous les cas tu as toujours 4 colonnes, pour les trimestres, Trim 1, Trim 2, Trim 3 et Trim 4, et que pour les mois tu as effectivement toujours 12 colonnes de 01 à 12, quelque soit tes dates
Partager