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

Macros et VBA Excel Discussion :

Calcul heures dans textbox [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2009
    Messages : 30
    Par défaut Calcul heures dans textbox
    bonjour à tous,

    je coince sur mon code qui veut pas marcher;

    J'ai 3 textbox qui reçoivent des heures et des minutes
    textbox797 heure arrivée
    textbox 798 heure départ
    textbox811 résultat (textbox798 - textbox 797)
    j'ai réussi dans les textbox 797 et 798 à faire afficher l'heure en "hh : mm"
    j'ai un souci avec le textbox811 qui ne m'affiche pas le résultat (il m'affiche 0)

    code textbox797
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub TextBox797_AfterUpdate()
    Dim H1 As Date
      Dim H2 As Date
      H1 = CDate(TextBox797.Value = "hh:mm")
      H2 = CDate(TextBox798.Value = "hh:mm")
      TextBox811.Value = H2 - H1
    End Sub
    code textbox798
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub TextBox798_AfterUpdate()
    Dim H1 As Date
      Dim H2 As Date
      H1 = CDate(TextBox797.Value = "hh:mm")
      H2 = CDate(TextBox798.Value = "hh:mm")
      TextBox811.Value = H2 - H1
    End Sub
    code textbox811 (textbox de résultat)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub TextBox811_AfterUpdate()
    Dim H1 As Date
      Dim H2 As Date
      H1 = CDate(TextBox797.Value = "hh:mm")
      H2 = CDate(TextBox798.Value = "hh:mm")
      TextBox811.Value = Format(H2 - H1, "hh:mm")
    End Sub
    Pouvez vous me donner un coup de main
    merci d'avance

  2. #2
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Bonjour,

    Un coup de main ?
    Oui :
    1) intéresse-toi de près à la fonction DateDiff (à voir dans ton aide en ligne)
    on ne fait pas d'opérations sur les heures... on peut tout au plus calculer la durée écoulée entre deux heures.
    2) la différence entre deux instants t1 et t2 passe nécessairement par la prise en considération, en plus, de la date de t1 et celle de t2. Si tu ne le fais pas, ton résultat sera bien évidemment faux entre un t1 pris avant minuit et un t2 pris le lendremain
    3) les durées ne sont pas des dates (ni des heures, au sens de "quelle heure est-il ?")...

  3. #3
    Membre Expert
    Homme Profil pro
    Développeur VBA Access
    Inscrit en
    Avril 2006
    Messages
    1 109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur VBA Access

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 109
    Par défaut
    3) les durées ne sont pas des dates (ni des heures, au sens de "quelle heure est-il ?")...
    Heu... Pourtant les dates sont des durées.
    Exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    msgbox CDate(39955.71875)

  4. #4
    Membre Expert Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Par défaut
    bonjour mdambreville ilank l'ami ucfoutu le forum essai comme cela

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub TextBox797_AfterUpdate()
    On Error Resume Next
    TextBox811.Value = Format((TimeValue(TextBox797.Value) + 1) - TimeValue(TextBox798.Value), "hh:mm")
    End Sub
    Private Sub TextBox598_AfterUpdate()
    On Error Resume Next
    TextBox811.Value = Format((TimeValue(TextBox797.Value) + 1) - TimeValue(TextBox798.Value), "hh:mm")
    End Sub
    ps je renseigne sous la forme hh:mm

  5. #5
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Citation Envoyé par ilank Voir le message
    Heu... Pourtant les dates sont des durées.
    Exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    msgbox CDate(39955.71875)

    Bonjour, ilank...

    Non, les dates ne sont pas des durées ...
    Nous sommes par exemple aujourd'hui le 22 mai 2009 et il est 18 h 10 ....çà, c'est une date et une heure) et non une durée. Une date, une heure sont représentatifs (repmères) d'un instant, pas d'une durée.

    La durée est l'écart entre deux instants (repères dans le temps et n'est ni une date, ni une heure (qui ne sont que des repères dans le temps)
    Par analogie : une abscisse sur un vecteur est un repère, pas une dimension. La différence entre deux abscisses est, elle, une dimension.
    Te viendrait-il à l'idée de définir une dimension (différence entre les 2 abscisses) par une nouvelle abscisse ? Non, hein ....

    Il en va de même pour ce qui est des dates, des heures et des durées.

    Comment te vient-il alors à l'esprit de représenter une durée par une heure et non des unités de temps ? Si, ensuite, tu veux exprimer cette durée sous la même forme qu'une heure, tu en as le droit, mais ce ne sera jamais une heure !

    Les anglais (entre autres) ont moins de difficultés à comprendre cette différence. l'heure donnée s'exprime différemment, dans leur langue, que la durée écoulée, même lorsqu'ils utilisent des heures et des minutes pour exprimer la durée.

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

Discussions similaires

  1. [Débutant] calcul mathematique dans textbox
    Par zitoune31 dans le forum VB.NET
    Réponses: 9
    Dernier message: 24/10/2012, 20h50
  2. [XL-2007] Calcul heure dans userform
    Par stephadm dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 09/04/2012, 08h26
  3. calcul heure dans une requête
    Par Daniela dans le forum VBA Access
    Réponses: 11
    Dernier message: 07/07/2009, 18h12
  4. Calcul heure dans une requête
    Par Accessbeotien dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 07/09/2007, 10h12
  5. affichge format heure dans textbox
    Par lio62 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 01/06/2007, 12h53

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