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 :

Conversion minutes vers Jour:Heure:minute


Sujet :

VBA Access

  1. #1
    jaq
    jaq est déconnecté
    Membre du Club
    Inscrit en
    Mars 2005
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 71
    Points : 45
    Points
    45
    Par défaut Conversion minutes vers Jour:Heure:minute
    Bonjours,

    Est-ce qu'il existe une fonction sous access qui permet de transformé une durée en minutes vers une durée de type Jours/Heures/minutes sacahnt que la durée peut être de plusieurs jours.

    Merci

  2. #2
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Bonjour,

    Je ne crois pas, mais c'est facile à faire avec les opérateurs :
    - division entière,
    - et modulo.

    le plus long c'est de choisir le format du résultat.

    Bon courage,

    pgz

  3. #3
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    C'est un problème tout simple de mathématique

    Code VBA : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub test()
    MsgBox ConvertMinToDay(14592)
    End Sub
     
     
    Function ConvertMinToDay(lngTime As Integer) As String
    ConvertMinToDay = lngTime \ 1440 & "j " & _
        (lngTime Mod 1440) \ 60 & ":" & (lngTime Mod 1440) Mod 60
    End Function

  4. #4
    jaq
    jaq est déconnecté
    Membre du Club
    Inscrit en
    Mars 2005
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 71
    Points : 45
    Points
    45
    Par défaut Merci
    Merci pour votre participation,

    Je sais effectivement que c'est un problème de math mais aussi un peu de programmation.

    je vous remercie, j'essaye de me débrouiller avec ça

  5. #5
    jaq
    jaq est déconnecté
    Membre du Club
    Inscrit en
    Mars 2005
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 71
    Points : 45
    Points
    45
    Par défaut Je précise ma demande,
    j'ai un champs temps (en minute) qu eje veux faire apparaître dans un etat et convertir en J/H/M. Pour cela j'ai créer une zone de texte dont la sourcede controle est la suivante (c'est un essai pour obtenir les jours)

    =MOD (Somme([TEMPS]);1440)

    "Temps" est le champs contenant le temps en minute. La zone de texte se situe dans un pied de groupe dont l'opérateueur "somme" sur les enrtegistrements du groupe.

    Seulement cela ne marche pas.

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    la somme d'un champ temps est composée de deux parties
    cachées habituellement par le format date
    on commence par l'afficher au format madate=cdbl(somme(temps))
    on regarde les jours
    monjour=int(madate)
    on regarde les heures
    monheure=int((madate-monjour)*24)
    on regarde les minutes
    maminute=int((madate-monjour-(monheure)/24)*60)

  7. #7
    jaq
    jaq est déconnecté
    Membre du Club
    Inscrit en
    Mars 2005
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 71
    Points : 45
    Points
    45
    Par défaut Précison
    Je crois que je me suis mal fais comprendre.

    Le champs temps est une durée de travail en minute
    . Cette durée, je veux la convertir dans un etat sous un format de type Jour/Heure/minute.

    exemple :

    5000 minutes correspond à une durée de travail de 5 Jours 11 Heures et 20 minutes.

    ce n'est pas une différence entre deux dates mais une conversion.

  8. #8
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    =ent(5000/24/60)
    =ent((5000-((ent(5000/24/60))*60*24))/60)
    =5000-(ent(5000/24/60)*24*60)-(ent((5000-((ent(5000/24/60))*60*24))/60)*60)

  9. #9
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    As-tu essayé ce que t'a donné Tofalu en début d'am?

    Ce n'est pas ce que tu cherches?

    pgz

  10. #10
    jaq
    jaq est déconnecté
    Membre du Club
    Inscrit en
    Mars 2005
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 71
    Points : 45
    Points
    45
    Par défaut Merci
    Youpi ça marche:
    Voila j'ai réussi, merci bien. j'ai utilisé la méthode de ramdom. Petite explication de synthèse pour le prochain qui fera une recherche.

    J'ai crée une zone de texte dans mon etat avec dans la zone de source de donné&es le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    =Ent(SommeDeTEMPS/24/60)&" Jours "
    & ent((SommeDeTEMPS-((ent(SommeDeTEMPS/24/60))*60*24))/60)&" Heures "
    & SommeDeTEMPS-(ent(SommeDeTEMPS/24/60)*24*60)-
    (ent((SommeDeTEMPS-((ent(SommeDeTEMPS/24/60))*60*24))/60)*60)& " Minutes"
    pour info "SommeDeTEMPS" est un champs de base de données qui contient une durée en minutes.

    Autrement pour la méthode de Tofalu avec le bout de code suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Function ConvertMinToDay(lngTime As Integer) As String
    ConvertMinToDay = lngTime \ 1440 & "j " & _
    (lngTime Mod 1440) \ 60 & ":" & (lngTime Mod 1440) Mod 60
    End Function
    Je ne sais pas comment l'exploiter car dans les propriété de ma zone de texte, je n'est pas accés à des procédures événementielles.

    Voila, je vous remercie tous de votre participation.

  11. #11
    Membre à l'essai
    Inscrit en
    Février 2009
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 20
    Points : 19
    Points
    19
    Par défaut
    Bonjour,

    J'ai un problème similaire à celui de jaq alors je resuscite ce très vieux thread. Je tente de stocker la durer d'une absence en minutes. Donc, au lieu d'un champ date, j'ai un champ numérique. Je veux pouvoir afficher ce temps en jours, heures, minutes et je veux aussi avoir la possibilité de saisir ce temps aussi en jours, heures et minutes. À la base, grâce à la formule de Tofalu, tout va bien (excepté que mes journées ont 7h alors je divise par 420 plutôt que 1440). Le problème est que j'utilise des formulaires continus. Ça me cause quelques problèmes au niveau de l'affichage ou de la saisie.

    J'ai 1 champ [Duree] et 3 contrôles pour le manipuler (txtJour, txtHeure, txtMinute)

    Scénario #1: Je mets la propriété ControlSource des champs de cette façon : txtJour =Round(Duree / 420; 0), txtHeure = Round((([Duree] Mod 420) \ 60); 0), txtMinute = (([Duree] Mod 420) Mod 60). Tout marche nickel et l'affichage est parfait. Le problème est que je ne peux saisir du temps car ça me dit que le contrôle ne peut pas être modifié car il est lié à l'expression "round(blablabla).

    Scénario #2: Je laisse les champs indépendants et je fais afficher les mêmes formules dans la propriété Form Current du formulaire. Je mets une formule pour reconvertir les 3 champs jours, heures, minutes en un seul champ minute sur la propriété Before Update. Ça marche aussi, mais le problème est comme j'utilise un formulaires continus, toutes mes lignes affichent le même temps!

    Scénario #3: Je laisse tomber le champ [Duree] et je crée 3 champs différents à la place. Je trouve ça nettement moins élégant et je trouve que ces données seront plus difficiles à manipuler par la suite.

    Quelqu'un sait comment je pourrais afficher et saisir le temps de 1 champ correctement dans 3 contrôles différents et ce, dans un formulaire en continu?

    Merci à l'avance de votre aide!

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

Discussions similaires

  1. [XL-2010] Conversion secondes en Jours/Heures/Minutes/Secondes
    Par Chtulus dans le forum Excel
    Réponses: 2
    Dernier message: 11/01/2013, 14h40
  2. Conversion de minute en jours, heures et minute
    Par RobertP dans le forum Langage
    Réponses: 1
    Dernier message: 09/10/2008, 15h57
  3. Réponses: 12
    Dernier message: 03/01/2007, 13h55
  4. Conversion minutes en jours heures minutes
    Par elsuket dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 09/11/2006, 04h32
  5. Réponses: 1
    Dernier message: 01/06/2006, 23h12

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