Moyenne d une date [Fermé]

Signaler
-
Messages postés
577
Date d'inscription
jeudi 22 novembre 2007
Statut
Membre
Dernière intervention
17 juillet 2018
-
Bonjour,

Bonjour,
Je suis entrain de travailler sur un code pour calculer la moyenne de jours entre deux dates Integration Date "Range Q" et Request Date "Range G" selon les mois


Code :

Sub IsointegrationRequest()
Dim i As Integer
Dim y As Integer
Dim m As Integer
Dim sumDate1 As Integer
Dim nbDate1 As Integer
Dim sumDate2 As Integer
Dim nbDate2 As Integer
Dim sumDate3 As Integer
Dim nbDate3 As Integer
 
 
nbDate1 = 0
nbDate2 = 0
nbDate3 = 0
sumDate1 = 0
sumDtae2 = 0
sumDate3 = 0
For i = 2 To lastlign
y = Year(Worksheets("All").Range("Q" & i))
m = Month(Worksheets("All").Range("Q" & i))
If (IsDate(Worksheets("All").Range("Q")) And IsDate(Worksheets("All").Range("G"))) Then
If ((Format(Range("Q" & i).Value, "yyyy") = y + 1) And m = "01") Or ((Format(Range("Q" & i).Value, "yyyy") = y) And (m = "10" Or m = "11" Or m = "12")) Then
sumDate1 = sumDate1 + (Worksheets("All").Range("Q" & i).Value - Worksheets("All").Range("G" & i).Value)
nbDate1 = nbDate1 + 1
'Worksheets("ISO Indicators").Range("C2") = sumDate / nbDate
ElseIf ((Format(Range("Q" & i).Value, "yyyy") = y) And (m = "02" Or m = "03" Or m = "04" Or m = "05")) Then
sumDate2 = sumDate2 + (Worksheets("All").Range("Q" & i).Value - Worksheets("All").Range("G" & i).Value)
nbDate2 = nbDate2 + 1
'Worksheets("ISO Indicators").Range("D2") = sumDate / nbDate
ElseIf ((Format(Range("Q" & i).Value, "yyyy") = y) And (m = "06" Or m = "07" Or m = "08" Or m = "09")) Then
sumDate3 = sumDate3 + (Worksheets("All").Range("Q" & i).Value - Worksheets("All").Range("G" & i).Value)
nbDate3 = nbDate3 + 1
'Worksheets("ISO Indicators").Range("E2") = sumDate / nbDate
End If
Else
sumDate1 = sumDate1 + 0
sumDate2 = sumDate2 + 0
sumDate3 = sumDate3 + 0
End If
Next
If (nbDate1 > 0) Then
 Worksheets("ISO Indicators").Range("B2").NumberFormat = "General"
 Worksheets("Ratios").Range("B2").Value = sumDate1
 Worksheets("Ratios").Range("B2").NumberFormat = "@"
End If
If (nbDate2 > 0) Then
Worksheets("ISO Indicators").Range("C2").NumberFormat = "General"
 Worksheets("ISO Indicators").Range("C2").Value = sumDate2
 Worksheets("ISO Indicators").Range("C2").NumberFormat = "@"
 
End If
If (nbDate3 > 0) Then
 
Worksheets("ISO Indicators").Range("D2").NumberFormat = "General"
 Worksheets("ISO Indicators").Range("D2").Value = sumDate2
 Worksheets("ISO Indicators").Range("D2").NumberFormat = "@"
 
 
End If
 
End Sub

Ce code ne me donne aucune erreur mais ne marche pas J AI RIEN qui apparait sur mon tableau de la feuille iso indicators et ca me soule

Si vous pouvez m aider je vous serai reconnaissante treees tres reconnaissante Merci en ts cas




EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.

2 réponses

Messages postés
577
Date d'inscription
jeudi 22 novembre 2007
Statut
Membre
Dernière intervention
17 juillet 2018
92
Salut

For i = 2 To lastlign  


Essaye en donnant une valeur à lastlign ;)
--
ca marche pas nn plus
Messages postés
577
Date d'inscription
jeudi 22 novembre 2007
Statut
Membre
Dernière intervention
17 juillet 2018
92
Dans ce cas, vas y pas à pas (raccourci F8 quand tu es dans ta macro) pour comprendre pourquoi ça ne marche pas.
S'il n'écrit rien, ça doit être que tes nbDate sont toujours à 0..