2 pièce(s) jointe(s)
Incrementer un tableau e dates automatiquement
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
Code:
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 |
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
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