Calcul entre 2 champs Dates et 2 champs Heure

Résolu
svigneault Messages postés 3 Date d'inscription jeudi 18 décembre 2003 Statut Membre Dernière intervention 20 juin 2013 - 19 juin 2013 à 14:30
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 - 20 juin 2013 à 23:09
Voici mon problème.
Je travaille pour une compagnie de transport d'autobus scolaires et j'ai créé un formulaire pour prendre les commandes des clients. Sur le formulaire, il y a 2 champs de format Date, dtDep pour la date du départ et dtRet pour la date du retour. Le plus souvent, ces 2 champs indiquent la même valeur mais il arrive que le départ soit à 20h00 et le retour à 03h00 dans la nuit. C'est là que j'ai un problème. Les champs heures sont hrDep et hrRet, j'ai tout essayé pour calculer, hrRet - hrDep me donne 7 si le valeurs sont 08h00 et 15h00, mais lorque le voyage revient après minuit,ça ne fonctionne pas, je suis vraiment dépassé, la solution doit être tellement évidente que je na la vois pas, comme l'arbre qui cache la forêt...

Est-ce que quelqu'un peut m'aidr là-dessus.
Merci d'avance


SVigneault

7 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
19 juin 2013 à 14:47
Pas bonjour à toi non plus !
Question de logique !
L'intervalle (durée) entre deux moments se mesure non pas en comparant des heures, mais en comparant des dates/heures.
Et le résultat ne saurait s'exprimer en mode calendaire, mais en unités de jours, heures, minutes et secondes (exclusivement), c'est-à-dire e n unités non susceptibles de variations calendaires.


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
3
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
19 juin 2013 à 17:00
Salut,

Pour arriver au résultat dans la colonne "Temps écoulé", mets cette formule
=($B2-$A2+($A2>$B2))-$C2
et copie-la dans la colonne

Début Fin Dîner Temps écoulé
08:00 18:00 00:00 10:00
22:00 06:55 00:15 08:40
08:00 18:05 01:15 08:50
08:00 16:43 00:20 08:23
08:20 17:00 00:30 08:10


MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
19 juin 2013 à 17:56
Mon exemple s'appliquait à des cellules Excel, mais ça devrait pouvoir se transposer à des valeurs de contrôles...


MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
19 juin 2013 à 18:26
Bonjour, MPi
l'algo de ton code est bon, mais implique un seul passage à minuit.
Je pense que cela conviendra au cas de svigneault (je vois en effet mal un autobus scolaire faire un voyage si long qu'il couvrirait deux nuits ou plus)
Je pense également que ce n'est pas là une solution "universellement" orthodoxe.


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
19 juin 2013 à 18:52
Salut ucfoutu
C'est certain qu'il y a place à amélioration ou, du moins, à l'universalité du code...

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
0
svigneault Messages postés 3 Date d'inscription jeudi 18 décembre 2003 Statut Membre Dernière intervention 20 juin 2013
20 juin 2013 à 13:42
Je suis désolé pour mes manières un peut cavalière d'hier, je vais donc commencer par un beau Bonjour à tous

Je veux bien comprendre que les calculs se font sur 2 controles de type Date, sauf que ce controle est formaté pour une entrée horaire comme ça "00:00". Pour l'entrée ça va mais après, l'affichage donne le 30 décembre 1899, je ne crois pas qu'il y avait des autobus scolaires dnas ces années là
voici la composition de mes controls.
hrDep, format Heure, abrégé
hreRet, format Heure, abrégé
Mpi, je n'arrive pas à comprendre ta formule pour la tranférer vers Access
Merci a vous deux...

SVigneault
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
20 juin 2013 à 23:09
Si on avait un bout de ton code, ça aiderait peut-être (?)

Pour le format de tes contrôles, je pense que tu peux changer directement dans leurs propriétés en format heure plutôt que date

Pour les formules, tu pourrais essayer comme ceci
=hrRet - hrDep + (hrDep > hrRet)
On laisse tomber le lunch...

Pour explication, hrDep > hrRet retourne un booléen (1 ou 0)

Le résultat doit être affiché dans un contrôle avec le format heure aussi, en principe... Ça dépend de ce que tu veux faire du/des résultats.

Tu serais peut-être étonné au sujet des autobus puisque le métro de Londres a été créé autour de ces années...

Bonne St-Jean

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
0
Rejoignez-nous