Calcul date selon critère

Résolu
Lucasine Messages postés 166 Statut Membre -  
Lucasine Messages postés 166 Statut Membre -
Bonjour,

j'aurai besoin de vos conseil pour un calcul de date.

J'aimerai que ma cellule "Date de référence" ce calcul toute seule en partant de ma date entrée. Les dates de référence sont le 1er et le 15 de chaque mois. Si la date est avant le 15 du mois la date de référence est le 1er du même mois.

Ex : la date entrée est Le 05/07/2017 la date de référence est le 01/07/2017 si la date est le 20/07/2017 la date de référence est le 15/07/2017, maintenant je préférerai que si la date est les dernier jours du mois qui met la date de référence au 1er du mois suivant mais cela n'est pas dramatique en soit.

Auriez-vous une solution pour moi SVP

1 réponse

  1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    bonjour, veux-tu faire ce calcul dans une requête?
    0
    1. Lucasine Messages postés 166 Statut Membre
       
      Dans la table, car elle doit être utilisé dans la requête principal,
      0
      1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > Lucasine Messages postés 166 Statut Membre
         
        si tu veux stocker cette date de référence dans la table, plutôt que la calculer dans une requête, il faut intervenir au moment de créer un enregistrement dans la table.
        comment l’enregistrement est-il créé dans la table?
        est-il vraiment indispensable de stocker la date de référence dans la table?
        0
    2. Lucasine Messages postés 166 Statut Membre
       
      La requête est trier selon la date du jour et trier selon la date de référence, mais il est juste que cette date peu être calculé et entrée selon le formulaire, si je ne fait que une requête pour le calcul de la date de référence.... Si je le fait ainsi quel serai la formule la plus approprié ?
      0
      1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > Lucasine Messages postés 166 Statut Membre
         
        je propose cette fonction:
        Option Explicit
        Function dateref(dateentree As Date) As Date
        Const findumois As Integer = 2
        Select Case Day(dateentree)
            Case Is < 15
                dateref = DateSerial(Year(dateentree), Month(dateentree), 1)
            Case Is > Day(DateSerial(Year(dateentree), Month(dateentree) + 1, 1) - 1) - findumois
                dateref = DateSerial(Year(dateentree), Month(dateentree) + 1, 1)
            Case Else
                dateref = DateSerial(Year(dateentree), Month(dateentree), 15)
        End Select
        End Function

        tu dois l'insérer dans un module du fichier Access, et tu peux ensuite l'utiliser dans une requête, par exemple,
        select dateentree,dateref(dateentree) as datereference from table;

        si la date est un des deux derniers jours du mois, la date de référence est le premier jour du mois suivant. si tu veux plus ou moins que 2 jours, tu changes la valeur sur la ligne
        Const findumois
        0
    3. Lucasine Messages postés 166 Statut Membre
       
      Merci beaucoup, j'essai ça au plus vite
      0