Bonjouur les VBAistes
J aurai besoin de votre aide svp pour un probleme qui me fait chier depuis quelques jours
Je souhaite réaliser un tableau comme le tableau ci_joint
En effet, je veux calculer le nbre d ejours entre deux dates la colonne Q et G qui sont sur une feuille "All" et realiser la moyenne et la mettre dans le tableau joint.
Si le mois de la colonne G est 1/2016 10/2015 11/2015 12/2015 je veux faire la moyenne et l affecter et la cellule B2 du tableau joint
si c est 2/2016 3/2016 4/2016 ca sera affecte a C2 et 5/2016 6/2016 7/2016 8/2016 dans la colonne D2 du tableau joint toujours
ça j ai reussi a le faire avec le code suivant sachant que je n avais a calculer que la moyenne de l annee 2015 2016
Mnt on me demande de parametrer le tableau pour que ça prenne toutes les années qui sont sur une colonne Q de la feuille All
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48 Sub IsoIndicators() Dim rcell As Range Dim somme1 As Integer Dim somme2 As Integer Dim somme3 As Integer Dim nbupdates1 As Integer Dim nbupdates2 As Integer Dim nbupdates3 As Integer somme1 = 0 nbupdates1 = 0 somme2 = 0 nbupdates2 = 0 somme3 = 0 nbupdates3 = 0 lastlign = Worksheets("All").Range("B" & Rows.Count).End(xlUp).Row For i = 2 To lastlign If (IsDate(Worksheets("All").Range("Q" & i)) And IsDate(Worksheets("All").Range("G" & i))) Then Worksheets("All").Range("Z" & i) = dateDiff("d", Worksheets("All").Range("G" & i), Worksheets("All").Range("Q" & i)) Else Worksheets("All").Range("Z" & i) = "" End If Next For i = 2 To lastlign If (Worksheets("All").Range("Z" & i) <> "") Then If (Year(Worksheets("All").Range("Q" & i).Value) = 2016 And Month(Worksheets("All").Range("Q" & i).Value) = 2) Or ((Year(Worksheets("All").Range("Q" & i).Value) = 2016 And Month(Worksheets("All").Range("Q" & i).Value) = 3)) Or ((Year(Worksheets("All").Range("Q" & i).Value) = 2016 And Month(Worksheets("All").Range("Q" & i).Value) = 4)) Or ((Year(Worksheets("All").Range("Q" & i).Value) = 2016 And Month(Worksheets("All").Range("Q" & i).Value) = 5)) Then somme1 = somme1 + Worksheets("All").Range("Z" & i) nbupdates1 = nbupdates1 + 1 ElseIf (Year(Worksheets("All").Range("Q" & i).Value) = 2015 And Month(Worksheets("All").Range("Q" & i).Value) = 10) Or ((Year(Worksheets("All").Range("Q" & i).Value) = 2015 And Month(Worksheets("All").Range("Q" & i).Value) = 11)) Or ((Year(Worksheets("All").Range("Q" & i).Value) = 2015 And Month(Worksheets("All").Range("Q" & i).Value) = 12)) Or ((Year(Worksheets("All").Range("Q" & i).Value) = 2016 And Month(Worksheets("All").Range("Q" & i).Value) = 1)) Then somme2 = somme2 + Worksheets("All").Range("Z" & i) nbupdates2 = nbupdates2 + 1 ElseIf (Year(Worksheets("All").Range("Q" & i).Value) = 2016 And Month(Worksheets("All").Range("Q" & i).Value) = 6) Or ((Year(Worksheets("All").Range("Q" & i).Value) = 2016 And Month(Worksheets("All").Range("Q" & i).Value) = 7)) Or ((Year(Worksheets("All").Range("Q" & i).Value) = 2016 And Month(Worksheets("All").Range("Q" & i).Value) = 8)) Or ((Year(Worksheets("All").Range("Q" & i).Value) = 2016 And Month(Worksheets("All").Range("Q" & i).Value) = 9)) Then somme3 = somme3 + Worksheets("All").Range("Z" & i) nbupdates3 = nbupdates3 + 1 End If End If Next Worksheets("Iso Indicators").Range("C2") = somme1 / nbupdates1 Worksheets("Iso Indicators").Range("B2") = somme2 / nbupdates2 Worksheets("Iso Indicators").Range("D2") = somme3 / nbupdates3 End Sub
C est a dire qu on saisira l annee prochaine une date 2017 me tableau doit se mettre a jour automatiqueemnt et rajouter une ligne 2016/2017 en dessous de 2015/2016
j ai mis aussi en PJ le tableau d ou j extrais les donnees
la colonne Q c est Date Update Integration et la colonne G c est Date Update Request; c est a partir de ces deux colonnes que je calcule la moyenne
Please Helpez moi^si vous avez d idées je suis coincée
Merci beaucoup
Partager