aakpa
Messages postés57Date d'inscriptionmardi 24 mai 2005StatutMembreDernière intervention10 janvier 2016
-
30 nov. 2005 à 17:43
cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 2018
-
30 nov. 2005 à 20:47
Slt a tous
Je voudrais avoir une fonction qui me permettra de récupérer le nombre de jours séparant deux mois, deux trimestres ou deux semetres quelque soit les dates fournies.
je me suis fait ce code mais il devient trop fastudieux
Merci de m'aider
If Periodicite = "MENSUELLE" Then
If DTPicker1.Month = 1 Then
If Cdd = 29 Then
NbreJour = 30
ElseIf Cdd = 30 Then
If NbJourDuMois(Month(DTPicker1.Value)) = 30 Then
If Year(DTPicker1.Value) "2008" Or Year(DTPicker1.Value) "2012" Or Year(DTPicker1.Value) = "2016" Or Year(DTPicker1.Value) = "2020" Or Year(DTPicker1.Value) = "2024" Then
NbreJour = 31
Else
NbreJour = 30
End If
Else
NbreJour = 28
End If
ElseIf Cdd = 31 Then
If Year(DTPicker1.Value) "2008" Or Year(DTPicker1.Value) "2012" Or Year(DTPicker1.Value) = "2016" Or Year(DTPicker1.Value) = "2020" Or Year(DTPicker1.Value) = "2024" Then
NbreJour = 29
Else
NbreJour = 28
End If
Else
NbreJour = 31
End If
ElseIf DTPicker1.Month = 2 Then
If Cdd = 29 Then
NbreJour = 29
ElseIf Cdd = 30 Then
If NbJourDuMois(Month(DTPicker1.Value)) = 30 Then
If Year(DTPicker1.Value) "2008" Or Year(DTPicker1.Value) "2012" Or Year(DTPicker1.Value) = "2016" Or Year(DTPicker1.Value) = "2020" Or Year(DTPicker1.Value) = "2024" Then
NbreJour = 29
Else
NbreJour = 28
End If
Else
NbreJour = 31
End If
ElseIf Cdd = 31 Then
NbreJour = 31
Else
NbreJour = 28
End If
ElseIf DTPicker1.Month = 3 Then
If Cdd = 29 Then
NbreJour = 31
ElseIf Cdd = 30 Then
If NbJourDuMois(Month(DTPicker1.Value)) = 30 Then
NbreJour = 31
Else
NbreJour = 30
End If
ElseIf Cdd = 31 Then
NbreJour = 30
Else
NbreJour = 31
End If
ElseIf DTPicker1.Month = 4 Then
If Cdd = 29 Then
NbreJour = 30
ElseIf Cdd = 30 Then
If NbJourDuMois(Month(DTPicker1.Value)) = 30 Then
NbreJour = 31
Else
NbreJour = 30
End If
ElseIf Cdd = 31 Then
NbreJour = 31
Else
NbreJour = 30
End If
ElseIf DTPicker1.Month = 5 Then
If Cdd = 29 Then
NbreJour = 31
ElseIf Cdd = 30 Then
If NbJourDuMois(Month(DTPicker1.Value)) = 30 Then
NbreJour = 31
Else
NbreJour = 30
End If
ElseIf Cdd = 31 Then
NbreJour = 30
Else
NbreJour = 31
End If
ElseIf DTPicker1.Month = 6 Then
If Cdd = 29 Then
NbreJour = 30
ElseIf Cdd = 30 Then
If NbJourDuMois(Month(DTPicker1.Value)) = 30 Then
NbreJour = 31
Else
NbreJour = 30
End If
ElseIf Cdd = 31 Then
NbreJour = 31
Else
NbreJour = 30
End If
ElseIf DTPicker1.Month = 7 Then
If Cdd = 29 Then
NbreJour = 31
ElseIf Cdd = 30 Then
If NbJourDuMois(Month(DTPicker1.Value)) = 30 Then
NbreJour = 30
Else
NbreJour = 31
End If
ElseIf Cdd = 31 Then
NbreJour = 31
Else
NbreJour = 31
End If
ElseIf DTPicker1.Month = 8 Then
If Cdd = 29 Then
NbreJour = 31
ElseIf Cdd = 30 Then
If NbJourDuMois(Month(DTPicker1.Value)) = 30 Then
NbreJour = 31
Else
NbreJour = 30
End If
ElseIf Cdd = 31 Then
NbreJour = 30
Else
NbreJour = 31
End If
ElseIf DTPicker1.Month = 9 Then
If Cdd = 29 Then
NbreJour = 30
ElseIf Cdd = 30 Then
If NbJourDuMois(Month(DTPicker1.Value)) = 30 Then
NbreJour = 31
Else
NbreJour = 30
End If
ElseIf Cdd = 31 Then
NbreJour = 31
Else
NbreJour = 30
End If
ElseIf DTPicker1.Month = 10 Then
If Cdd = 29 Then
NbreJour = 31
ElseIf Cdd = 30 Then
If NbJourDuMois(Month(DTPicker1.Value)) = 30 Then
NbreJour = 31
Else
NbreJour = 30
End If
ElseIf Cdd = 31 Then
NbreJour = 30
Else
NbreJour = 31
End If
ElseIf DTPicker1.Month = 11 Then
If Cdd = 29 Then
NbreJour = 30
ElseIf Cdd = 30 Then
If NbJourDuMois(Month(DTPicker1.Value)) = 30 Then
NbreJour = 31
Else
NbreJour = 30
End If
ElseIf Cdd = 31 Then
NbreJour = 31
Else
NbreJour = 30
End If
ElseIf DTPicker1.Month = 12 Then
If Cdd = 29 Then
NbreJour = 31
ElseIf Cdd = 30 Then
If NbJourDuMois(Month(DTPicker1.Value)) = 30 Then
NbreJour = 32
Else
NbreJour = 31
End If
ElseIf Cdd = 31 Then
NbreJour = 31
Else
NbreJour = 31
End If
'NbreJour = 31
End If
ElseIf Periodicite = "TRIMESTRIELLE" Then
If DTPicker1.Month = 1 Then
If Cdd = 29 Then
NbreJour = 90
ElseIf Cdd = 30 Then
If NbJourDuMois(Month(DTPicker1.Value)) = 30 Then
NbreJour = 90
Else
NbreJour = 89
End If
ElseIf Cdd = 31 Then If Year(DTPicker1.Value) "2008" Or Year(DTPicker1.Value) "2012" Or Year(DTPicker1.Value) = "2016" Or Year(DTPicker1.Value) = "2020" Or Year(DTPicker1.Value) = "2024" Then
NbreJour = 90
Else
NbreJour = 89
End If
Else If Year(DTPicker1.Value) "2008" Or Year(DTPicker1.Value) "2012" Or Year(DTPicker1.Value) = "2016" Or Year(DTPicker1.Value) = "2020" Or Year(DTPicker1.Value) = "2024" Then
NbreJour = 91
Else
NbreJour = 90
End If
End If
ElseIf DTPicker1.Month = 2 Then
If Cdd = 29 Then
NbreJour = 89
ElseIf Cdd = 30 Then If Year(DTPicker1.Value) "2008" Or Year(DTPicker1.Value) "2012" Or Year(DTPicker1.Value) = "2016" Or Year(DTPicker1.Value) = "2020" Or Year(DTPicker1.Value) = "2024" Then
NbreJour = 93
Else
NbreJour = 92
End If
ElseIf Cdd = 31 Then If Year(DTPicker1.Value) "2008" Or Year(DTPicker1.Value) "2012" Or Year(DTPicker1.Value) = "2016" Or Year(DTPicker1.Value) = "2020" Or Year(DTPicker1.Value) = "2024" Then
NbreJour = 93
Else
NbreJour = 92
End If
Else
NbreJour = 89
End If
ElseIf DTPicker1.Month = 3 Then
If Cdd = 29 Then
NbreJour = 91
ElseIf Cdd = 30 Then
If NbJourDuMois(Month(DTPicker1.Value)) = 30 Then
NbreJour = 91
Else
NbreJour = 91
End If
ElseIf Cdd = 31 Then
NbreJour = 90
Else
NbreJour = 91
End If
ElseIf DTPicker1.Month = 4 Then
If Cdd = 29 Then
NbreJour = 91
ElseIf Cdd = 30 Then
If NbJourDuMois(Month(DTPicker1.Value)) = 30 Then
NbreJour = 92
Else
NbreJour = 91
End If
ElseIf Cdd = 31 Then
NbreJour = 92
Else
NbreJour = 91
End If
ElseIf DTPicker1.Month = 5 Then
If Cdd = 29 Then
NbreJour = 91
ElseIf Cdd = 30 Then
If NbJourDuMois(Month(DTPicker1.Value)) = 30 Then
NbreJour = 91
Else
NbreJour = 92
End If
ElseIf Cdd = 31 Then
NbreJour = 92
Else
NbreJour = 92
End If
ElseIf DTPicker1.Month = 6 Then
If Cdd = 29 Then
NbreJour = 90
ElseIf Cdd = 30 Then
If NbJourDuMois(Month(DTPicker1.Value)) = 30 Then
NbreJour = 92
Else
NbreJour = 90
End If
ElseIf Cdd = 31 Then
NbreJour = 91
Else
NbreJour = 92
End If
ElseIf DTPicker1.Month = 7 Then
If Cdd = 29 Then
NbreJour = 92
ElseIf Cdd = 30 Then
If NbJourDuMois(Month(DTPicker1.Value)) = 30 Then
NbreJour = 92
Else
NbreJour = 92
End If
ElseIf Cdd = 31 Then
NbreJour = 92
Else
NbreJour = 92
End If
ElseIf DTPicker1.Month = 8 Then
If Cdd = 29 Then
NbreJour = 91
ElseIf Cdd = 30 Then
If NbJourDuMois(Month(DTPicker1.Value)) = 30 Then
NbreJour = 91
Else
NbreJour = 91
End If
ElseIf Cdd = 31 Then
NbreJour = 91
Else
NbreJour = 92
End If
ElseIf DTPicker1.Month = 9 Then
If Cdd = 29 Then
NbreJour = 90
ElseIf Cdd = 30 Then
If NbJourDuMois(Month(DTPicker1.Value)) = 30 Then
NbreJour = 92
Else
NbreJour = 91
End If
ElseIf Cdd = 31 Then
NbreJour = 91
Else
NbreJour = 92
End If
'NbreJour = 30
ElseIf DTPicker1.Month = 10 Then
If Cdd = 29 Then
NbreJour = 92
ElseIf Cdd = 30 Then
If NbJourDuMois(Month(DTPicker1.Value)) = 30 Then
NbreJour = 92
Else
NbreJour = 92
End If
ElseIf Cdd = 31 Then
NbreJour = 92
Else
NbreJour = 92
End If
ElseIf DTPicker1.Month = 11 Then
If Cdd = 29 Then
NbreJour = 90
ElseIf Cdd = 30 Then
If NbJourDuMois(Month(DTPicker1.Value)) = 30 Then
NbreJour = 90
Else
NbreJour = 91
End If
ElseIf Cdd = 31 Then
NbreJour = 90
Else
NbreJour = 92
End If
ElseIf DTPicker1.Month = 12 Then
If Cdd = 29 Then
NbreJour = 91
ElseIf Cdd = 30 Then
If NbJourDuMois(Month(DTPicker1.Value)) = 30 Then
NbreJour = 91
Else If Year(DTPicker1.Value) "2007" Or Year(DTPicker1.Value) "2011" Or Year(DTPicker1.Value) = "2015" Or Year(DTPicker1.Value) = "2019" Or Year(DTPicker1.Value) = "2023" Then
NbreJour = 91
Else
NbreJour = 90
End If
End If
ElseIf Cdd = 31 Then
NbreJour = 91
Else
NbreJour = 31
End If
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 30 nov. 2005 à 19:04
Salut
En regardant l'aide de DateDiff, tu verras qu'on peut calculer beaucoup de choses : secondes, minutes, heures, jours, semaines, mois, trimestres, années : Il suffit de changer le "d" du 1er paramètre
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
crenaud76
Messages postés4172Date d'inscriptionmercredi 30 juillet 2003StatutMembreDernière intervention 9 juin 200628 30 nov. 2005 à 20:32
... Ou comment écoeuré un gars qui a pondu 300 lignes de code qui peuvent être remplacé par .... 1 ligne de code !!!!!!!!!
Courage aakpa !!! au moins tu peux te dire que maintenant tu sais faire des If .. Then ... ElseIf ... End If
cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 201827 30 nov. 2005 à 20:47
Bonsoir,
Exemple en utilisant DateDiff et DatePart.
Dim WshShell
Set WshShell = WScript.CreateObject("WScript.Shell")
xDate = InputBox("Saisir la date de retraite sous la forme jj/mm/aaaa"," Décompte Retraite !!!!","30/06/2006")
'xDate = "30/06/2006" '
j1 = DatePart("w", xDate)
j2 = Array("","Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi")
jj = j2(j1)
m1 = DatePart("m", xDate)
m2 = Array("","janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre")
mm = m2(m1)
Result = WshShell.Popup("Votre départ à la retraite étant prévu le " _
& jj & " " & Left(xDate,2) & " " & mm & " " _
& Right(xDate,4) & " " & vbcrlf & vbcrlf _
& "Il ne vous reste plus que ........" & vbcrlf _
& vbcrlf & " " & DateDiff("d", Now, xDate) _
& " jours ........ avant de partir à la pêche !!!!!", 30, "Décompte de la retraite")