IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

Différence de dates [AC-2007]


Sujet :

VBA Access

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    253
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 253
    Points : 90
    Points
    90
    Par défaut Différence de dates
    Bonjour,

    J'ai deux champs (datprevue et datreelle) de type jj/mm/aaaa HH:MM:SS ;
    j'ai par exemple datprevue=02/04/2012 08:07:42 et datreelle=01/04/2012 10:43:00

    Mon but est créer une fonction Margedate telle que Margedate soit la différennce datprevue-datrelle. si le jour est le même c-à-d si on a par ex

    datprevue=02/04/2012 08:07:42 et datreelle=02/04/2012 05:30:33

    alors Margedate doit être égale à la différence d'heure (08:07:42 - 05:30:33)




    J'ai éssayé le code suivant qui malheureusement ne marche pas:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Function margedate(datprevue As Date, datreelle As Date) As Variant
    Dim hmargep, hmarger As Date
    Dim dmargep, dmarger As Date
    hmargep = CDte(Format(datprevue, "HH:MM:SS"))
    hmarger = CDte(Format(datreelle, "HH:MM:SS"))
    dmargep = DateSerial(Year(datprevue), Month(datprevue), Day(datprevue))
    dmarger = DateSerial(Year(datreelle), Month(ddatreelle), Day(datreelle))
    If dmargep = dmarger Then
       margedate = (hmargep - hmarger)
    Else
       margedate = (dmargep - dmarger)
       End If
     
    End Function

    Je vous remerci par avance de votre aide.


    Kedmard.

  2. #2
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 089
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 089
    Points : 5 206
    Points
    5 206
    Par défaut
    Bonjour

    Si les 2 champs sont de type "date" ce sont en réalité des entiers longs dont la partie entière est le jour (nombre de jours depuis l'origine access) et la partie décimale une fraction de jour (midi = 0.5)

    Il est donc possible d'en faire la différence directement puis de mettre cette différence au format souhaité, par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    format(dateprevue - datereelle,"ddd - HH:MM")
    Utilisez Planet, gestion d'entreprise gratuite pour TPE / PME

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    253
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 253
    Points : 90
    Points
    90
    Par défaut
    Salut nico84 Merci pour ta réponse,
    voici un exemple de ce que j'ai en appliquant ton code:

    pour datprevue=02/04/2012 10:06:17 et datreelle=31/03/2012 19:43:00

    margedate=.

    Je ne vois pas comment interpreter ce résultat, je ne peux dire le nombre de jours écoulés entre les 2 dates ni dire à quoi correspondent les 14:23.

    L'idéeal serait d'avoir par exemple:

    4-10:15 (4 jours, 10heures et 15minutes d'écoulés entre datprevue et datreelle).

  4. #4
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 089
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 089
    Points : 5 206
    Points
    5 206
    Par défaut
    14:23 c'est juste par contre le format ddd n'a pas été compris

    Ainsi cela fera comme ton exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int(dateprevue - datereelle) & "-" & format(dateprevue - datereelle,"HH:MM")
    Utilisez Planet, gestion d'entreprise gratuite pour TPE / PME

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    253
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 253
    Points : 90
    Points
    90
    Par défaut
    Grand merci nico84 ça marchhhhhe

    Bonne journée .

    A+


    kedmard

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Différence de Date
    Par Poisson59 dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 08/12/2006, 16h23
  2. différence entre date ?
    Par jessy212 dans le forum Oracle
    Réponses: 9
    Dernier message: 30/09/2006, 08h16
  3. Réponses: 1
    Dernier message: 23/06/2006, 19h10
  4. [SQL] Différence de dates
    Par fikou dans le forum Access
    Réponses: 14
    Dernier message: 07/06/2006, 13h41
  5. Fonction de différence de dates
    Par mr.t dans le forum Access
    Réponses: 12
    Dernier message: 21/02/2006, 17h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo