Calcul moyenne entre deux dates selon condition par vba
Bonjour à tous,
Je sais pas si il fallait plutôt poser la question dans conception ou pas:
Voilà ma question:
je cherche à calculer le délai moyen entre deux dates à plusieurs condition:
- que la date 2 en col K soit supérieure à la date 1 en col J (sinon ne pas compter car erreur de remplissage de cellule) pour info les date sont au format personnalisé dd/mm hh:mm
- que le numéro de semaine au format AAAAS (20152 par exemple) en cellule O2 de la feuille TdB soit égale au meme numéro de semaine de la colonne E de la feuille Liste
- Je veux faire tout ceci par macro et non pas pas formule pour gagner du temps lors de la sauvegarde du fichier car sinon c'est extremement long vu toutes les données.
Je ne sais pas trop par ou commencer... ceci sert à faire des indicateurs par semaine
j'ai commencé par ca mais la je bloque pour continuer .... Je crois que je suis même mal parti:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| DL_SUIVI = Workbooks("SUIVI_LOTS1.xls").Worksheets("Liste T&F").Cells(Rows.Count, 3).End(xlUp).Row + 1
Set K = ThisWorkbook.Worksheets("Liste").Range("A3:C54").Find(ThisWorkbook.Worksheets("TdB").Range("O2").Value, LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False)
If Not K Is Nothing Then
L = K.Row 'pour définir l'année/sem en cours de test
End If
montableau() = Workbooks("SUIVI_LOTS1.xls").Worksheets("Liste T&F").Range("A3:K" & DL_SUIVI).Value
For j = 3 To L 'boucle sur les année/sem du TdB col 1 du début à l'année/sem en cours définit en range "O2" feuille tdb
For i = LBound(montableau, 1) To UBound(montableau, 1)
If Year(montableau(i, 5)) & DatePart("ww", montableau(i, 5)) = ThisWorkbook.Worksheets("Liste").Cells(j, 1).Value Then
' et la que faire pour calculer le délai moyen en heure de toutes les données du tableau qui remplissent la condition ci-dessus
' car en faisant une boucle pas moyen de calculer une moyenne avec worksheetfunction.average...
End If
Next i 'pprochaine boucle dans tableau
ThisWorkbook.Worksheets("Liste").Range("C" & j).Value = moy 'on incrémente la moy (définir moy)
Next j 'passe au la prochaine annne/sem
Erase montableau 'réinitalise le tableau |
Merci de votre aide