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

Access Discussion :

séparer heures et minutes


Sujet :

Access

  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Décembre 2012
    Messages : 2
    Points : 3
    Points
    3
    Par défaut séparer heures et minutes
    Bonjour,

    Je dois additionner des heures et minutes, les convertir en décimales pour ensuite les multiplier par un taux horaire.

    Nombre d'heures travaillées dans une journée X nombre de jours X taux horaire = 00,00$

    exemple : 8:30 + 10:15 + 5:30 = 24:15 (soit 24heures et 15 minutes)X 23,00$ = 557,75$

    Existe-t-il une formule VBA Access simple ???

    Merci

  2. #2
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 636
    Points : 14 607
    Points
    14 607
    Par défaut
    Bonsoir,
    Si tes heures sont de type date/heure, il suffit de les multiplier par 24.
    08:30 *24 donnera 8.5
    10:15 *24 donnera 10.25
    reste ensuite à les multiplier par le taux horaire
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  3. #3
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Si tu as plus de 24h alors tu ne peux pas utiliser le type Date (qui est en realite Date/Heure).
    Le plus simple est de stocker tes minutes ou tes heures dans un reel double.
    Si tu stocke des heures, la partie decimale est une fraction d'heure pas des minutes.
    Ex : 10:15 devient 10.25

    Pour convertir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public function HeureDecimal(prmHeure as date) as double
       dim result as double
       result=hour(prmHeure)+(minute(prmHeure)/60)
       HeureDecimal=result
    end function
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public function InverseHeureDecimal(prmNbHeure as double) as string
       dim result as string
       dim heure as double=int(prmNbHeure)
       dim minute as double:minute=(prmNbHeure-heure)*60
       result=heure & ":" & format(minute,"00")
       InverseHeureDecimal=result
    end function
    Attention, le resultat de Inverse est une chaine de caracteres pas un nombre. C'est juste pour de l'affichage.

    A mettre dans un module.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  4. #4
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 636
    Points : 14 607
    Points
    14 607
    Par défaut
    bonsoir marot_r
    Si tu as plus de 24h alors tu ne peux pas utiliser le type Date (qui est en realite Date/Heure).
    quelle législation autorise de travailler 24 heures et plus dans une journée ?
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  5. #5
    Membre éprouvé Avatar de Ric500
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 956
    Points : 1 139
    Points
    1 139
    Par défaut séparer heures et minutes
    Salut,

    Pour les besoins d'une appli, j'avais élaboré ces fonctions qui convertissent des heures/minutes en centièmes ou inversement ce qui permet de faire des opérations en base 10 sur les chiffres obtenus:

    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 ConvH2Centi(H)
        Dim PEnt As Integer, PEntM As Integer, PEntS As Integer, PDimM As Double, PDimS As Double
        'H
        PEnt = Int(Val(Left(H, 2)))
        'mn
        PEntM = Int(Mid(H, 4, 2))
        PDimM = (PEntM / 60)
        's
        If Len(H) > 5 Then
            PEntS = Int(Mid(H, 7, 2))
            PDimS = (PEntS / 60) / 60
        End If
        ConvH2Centi = CDbl(PEnt + PDimM + PDimS)
    End Function
    ...Conversion en HH -> Centièmes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Function ConvCenti2H(Centi)
        Dim PEnt As Long, PDimM As Double, PEntM As Long, PDimS As Double, PEntS As Long
        If Nz(Centi, 0) = 0 Then
            ConvCenti2H = "00:00:00"
            Exit Function
        End If
     
        'H
        PEnt = Int(Centi)
        'Mn
        PDimM = Centi - PEnt
        PDimM = Int((PDimM) * 60)
        'S
        PDimS = (Centi * 3600) - (PEnt * 3600) - (PDimM * 60)
     
        ConvCenti2H = Format(PEnt, "#00") & ":" & Format(PDimM, "00") & ":" & Format(PDimS, "00")
    End Function
    ...Conversion Centièmes -> Heures

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Function TpsHH2Mn(tps) As Long
        TpsHH2Mn = 0
        If tps <> 0 Then
            TpsHH2Mn = (Format(tps, "hh") * 60) + Format(tps, "nn")
        End If
    End Function
    ...Conversion HH:NN -> Minutes

    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Function TpsDiffTxt(tps As Long) As String
        Dim H As String, mn As String
        Dim Hl As Long, mnl As Double
        Hl = Int(tps / 60)
        mnl = tps Mod 60
        H = Format(Trim(str(Hl)), "00")
        mn = Format(Trim(str(mnl)), "00")
        TpsDiffTxt = H & ":" & mn
    End Function
    ...Conversion Minutes -> HH:NN

    Si çà répond à ton besoin...
    Essayer. Rater. Essayer encore. Rater encore. Rater mieux. (Samuel Beckett)
    Ou encore:
    Quand ça ne tourne pas rond dans le carré de l'hypothénuse , c'est signe qu'il est grand temps de prendre les virages en ligne droite.(Pierre Dac)
    ... Des principes qui m'ont beaucoup aidé en informatique...

  6. #6
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Citation Envoyé par tee_grandbois Voir le message
    bonsoir marot_r

    quelle législation autorise de travailler 24 heures et plus dans une journée ?
    Dans une meme journee, 24 c'est le max mais si tu cumules des heures sur la semaine c'est assez facile de depasser.

    Et l'exemple donne 24h15 soit plus d'une jounee.

    Mais en effet on peut contourner en partie le probleme en faisant la somme (heures du jour x Taux horaire).

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  7. #7
    Expert éminent
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 262
    Points : 6 559
    Points
    6 559
    Par défaut
    Citation Envoyé par tee_grandbois Voir le message
    bonsoir marot_r

    quelle législation autorise de travailler 24 heures et plus dans une journée ?
    Salut,
    L'exemple donné par pgay56 évoque une périodicité hebdomadaire, base légale du Droit du travail en France (35h/hebdo)
    C'est ainsi que fonctionne la paie en France.
    @+
    "Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
    UR - ESIROI - GPME/CG/DCG8
    QTH :21°19'18"S - 055°25'32"E
    Inutile de me contacter par MP
    Merci de cliquer sur si la réponse vous a permis de résoudre votre problème et n'oubliez pas de clôturer le fil en cliquant sur

  8. #8
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 636
    Points : 14 607
    Points
    14 607
    Par défaut
    bonsoir hyperion13,
    L'exemple donné par pgay56 évoque une périodicité hebdomadaire, base légale du Droit du travail en France (35h/hebdo)
    oui, et pour brouiller un peu plus les pistes, il a mis un montant en $
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  9. #9
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Décembre 2012
    Messages : 2
    Points : 3
    Points
    3
    Par défaut Merci à tous
    Je suis du Canada, c'est pour cette raison que j'utilise le signe $.

    Je me suis cassé le bicycle pour rien. Il m'arrive parfois de faire compliqué lorsque c'est si simple.

    La réponse de tee_grandbois a très bien fait le travail.

    Merci à tous

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

Discussions similaires

  1. Fixer l'heure, les minutes et les secondes d'une date
    Par pyxosledisciple dans le forum Access
    Réponses: 2
    Dernier message: 22/02/2006, 08h02
  2. [Dates] Heure et minute
    Par theanswerdu40 dans le forum Langage
    Réponses: 3
    Dernier message: 11/02/2006, 17h05
  3. Conversion des heures en minutes
    Par lacrevette dans le forum Langage SQL
    Réponses: 3
    Dernier message: 28/02/2005, 17h50
  4. Probleme comparaison heure et minutes
    Par innosang dans le forum Bases de données
    Réponses: 5
    Dernier message: 13/05/2004, 08h40
  5. recuperer heure et minute de datetime
    Par nora_ora dans le forum Langage SQL
    Réponses: 4
    Dernier message: 08/10/2003, 12h47

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