Probleme de mise a jour date

Résolu
kefir1998 Messages postés 38 Date d'inscription mercredi 11 mars 2009 Statut Membre Dernière intervention 1 mars 2010 - 24 mars 2009 à 13:11
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 27 mars 2009 à 09:03
bonjour voila le code mais
Private Function IsFerie(Date_testee As Date) As Boolean
    Dim JJ, AA, MM As Integer
    Dim NbOr, Epacte As Integer
    Dim PLune, Paques, Ascension, Pentecote As Date
       If WeekDay(Date_testee, vbMonday) 6 Or WeekDay(Date_testee, vbMonday) 7 Then IsFerie = True: Exit Function


    JJ = Day(Date_testee)
    MM = Month(Date_testee)
    AA = Year(Date_testee)    If JJ 1 And MM 1 Then IsFerie = True: Exit Function '1 Janvier    If JJ 10 And MM 4 Then IsFerie = True: Exit Function ' 10 avril vendredi saint    If JJ 1 And MM 5 Then IsFerie = True: Exit Function '1 Mai    If JJ 8 And MM 5 Then IsFerie = True: Exit Function '8 Mai    If JJ 14 And MM 7 Then IsFerie = True: Exit Function '14 Juillet    If JJ 15 And MM 8 Then IsFerie = True: Exit Function '15 Août    If JJ 1 And MM 11 Then IsFerie = True: Exit Function '1 Novembre    If JJ 11 And MM 11 Then IsFerie = True: Exit Function '11 Novembre    If JJ 25 And MM 12 Then IsFerie = True: Exit Function '25 Décembre
    NbOr = (AA Mod 19) + 1
    Epacte = (11 * NbOr - (3 + Int((2 + Int(AA / 100)) * 3 / 7))) Mod 30
    PLune = DateSerial(AA, 4, 19) - ((Epacte + 6) Mod 30)    If Epacte 24 Then PLune PLune - 1
    If Epacte = 25 And (AA >= 1900 And AA < 2000) Then PLune = PLune - 1
    Paques = PLune - WeekDay(PLune) + vbMonday + 7 'Paques    If JJ Day(Paques) And MM Month(Paques) Then IsFerie = True: Exit Function
    Ascension = Paques + 38 'Ascension    If JJ Day(Ascension) And MM Month(Ascension) Then IsFerie = True: Exit Function
    Pentecote = Ascension + 11 'Pentecote    If JJ Day(Pentecote) And MM Month(Pentecote) Then IsFerie = True: Exit Function
    IsFerie = False
End Function


Function JPlusNbJour(Date_testee As Date, NbJour As Integer)
Dim DateCalc As Date, SamDim As Integer


DateCalc = DateAdd("w", 1, Date_testee) 'Voir si sous 97 il ne faut remplacer d par j


If IsFerie(DateCalc) = True Then
    While IsFerie(DateCalc) = True
        DateCalc = DateAdd("w", 1, DateCalc)  'Voir si sous 97 il ne faut remplacer d par j
  
    Wend
    JPlusNbJour = DateCalc
Else
    JPlusNbJour = DateCalc
End If


End Function


Function JPlusNbJour1(Date_testee As Date, NbJour As Integer)
Dim DateCalc1 As Date, SamDim As Integer


DateCalc1 = DateAdd("w", 3, Date_testee) 'Voir si sous 97 il ne faut remplacer d par j


If IsFerie(DateCalc1) = True Then
    While IsFerie(DateCalc1) = True
        DateCalc1 = DateAdd("w", 3, DateCalc1) 'Voir si sous 97 il ne faut remplacer d par j
  
    Wend
    JPlusNbJour1 = DateCalc1
Else
    JPlusNbJour1 = DateCalc1
End If


End Function
Private Sub date_enregistrement_AfterUpdate() 'A mettre sur "apres mise a jour" du controle date_enregistrement
    datesaisie = JPlusNbJour(date_enregistrement, 1)
    date_valeur_BDF = JPlusNbJour(datesaisie, 1)
  datej3 = JPlusNbJour1(datesaisie, 3)
voila mes lignes de commande les date se mette a jour du lundi au mercredi et le vendredi parcontre le jeudi il ne veux pas appliquer la formule suivante  datej3 = JPlusNbJour1(datesaisie, 3)
merci pour votre aide




iblis

21 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
27 mars 2009 à 09:03
pas sur d'avoir compris.

pose ta question sur un nouveau topic du forum, d'autres y viendront plus facilement.
0
Rejoignez-nous