Opération sur des heures si elles sont dans un créneau définie dans labels [Résolu]

Signaler
Messages postés
151
Date d'inscription
lundi 3 juillet 2017
Statut
Membre
Dernière intervention
25 août 2020
-
Messages postés
151
Date d'inscription
lundi 3 juillet 2017
Statut
Membre
Dernière intervention
25 août 2020
-
Bonsoir
je cherche a faire des opérations sur des heures uniquement si elles sont dans un créneau définie entre 21:00<= et >=05:00
dans des labels
exemple : labels a ="20:00" - labels b ="02:00" résulta labels c ="03:00"
si vous avez une solution merci

7 réponses

Messages postés
12370
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
28 septembre 2020
695
bonjour, peut-être pourrais-tu nous montrer ton code VBA, et, en passant, nous expliquer comment tu arrives à 3h, en prenant ton crénom en considération.
Messages postés
151
Date d'inscription
lundi 3 juillet 2017
Statut
Membre
Dernière intervention
25 août 2020

Re

Oui pardon il faut pendre en compte: résulta labels c ="05:00"
Cordialement
Sub Test()
Dim H1 As Date
Dim H2 As Date
H1 = CDate(Labela.Caption)
H2 = CDate(Labelb.Caption)
If H1 > Format((CDate("21:00") + 1), "hh:mm") And H2 < Format((CDate("05:00") +1), "hh:mm")Then
Labelc.Caption = Format(H2 - H1 + 1, "hh:mm")
End If
End Sub
Messages postés
12370
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
28 septembre 2020
695
tu n'as pas expliqué comment tu arrivais au résultat de 5h.
pour t'aider à comprendre ce que fait le code que tu as écrit, je propose que tu testes ceci:
Sub Test()
  Dim H1 As Date
  Dim H2 As Date, S As String
  H1 = CDate("20:00")
  H2 = CDate("1/1/1 3:00")
  If H1 > CDate("21:00") Then
    If H2 < CDate("05:00") Then
      S = Format(H2 - H1 + 1, "hh:mm")
    Else
       S = " H2 hors créneau"
     End If
    Else
        S = " H1 hors créneau"
    End If
    Debug.Print S
End Sub

pour t'aider à comprendre comment résoudre cet exercice, je propose que tu travailles (papier et crayon) sur d'autres exemples, et que tu détailles comment tu arrives au résultat attendu.
Messages postés
151
Date d'inscription
lundi 3 juillet 2017
Statut
Membre
Dernière intervention
25 août 2020

5h00 est la somme de heures de 20h00 a 02h00 le jour suivant qui sont dans le créneau entre 20h00 et 02h00 le jour suivant
ton test démontre la discrimination dans le créneau
comment je peux récupérer dans le caption du Label c la somme des heures de la discrimination quel que soit les heures saisie
Messages postés
12370
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
28 septembre 2020
695
tu fais de belles phrases avec de beaux mots.
si tu veux arriver à écrire un programme, il faut, peut-être à partir d'exemples, réfléchir concrètement à comment obtenir le résultat attendu.
Messages postés
151
Date d'inscription
lundi 3 juillet 2017
Statut
Membre
Dernière intervention
25 août 2020

Bonjour

a tu une piste pour m'orienter dans la bonne direction
Cordialement
Messages postés
12370
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
28 septembre 2020
695
à partir d'exemples, réfléchis concrètement comment obtenir le résultat attendu.
Messages postés
151
Date d'inscription
lundi 3 juillet 2017
Statut
Membre
Dernière intervention
25 août 2020

re

exemple :
_ Label a = 20:00
_ Label b = 02:00
créneau = 21:00 _ 05:00
dans Label c la somme des heures dans Label a et Label b uniquement si les heures sont
comprise dans le créneau
donc
Label b - Label a = Label c
- de 20:00 a 21:00 hors créneau donc non calculer
- de 21:00 a 00:00 = 03:00 et de 00:00 a 02:00 = 02:00
03:00 + 02:00 = 05:00
Label c = 05:00
j’espère être suffisamment explicite
Cordialement
Messages postés
12370
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
28 septembre 2020
695
il y a plusieurs erreurs dans le calcul, et il n'est pas assez précis.
ce n'est qu'un exemple, je suggère d'en faire plusieurs, pour que tu maîtrises bien les différentes possibilités.
ensuite, quand tu auras bien compris, tu pourras commencer à réfléchir comment le programmer.
Messages postés
151
Date d'inscription
lundi 3 juillet 2017
Statut
Membre
Dernière intervention
25 août 2020

re
j'ai corriger les deux erreurs
je ne vois pas comment être plus précis
ma demande consiste juste a comment récupérer le resultat de la discrimination
dans un troisième label
Messages postés
12370
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
28 septembre 2020
695
je comprends bien ce que tu veux obtenir, et je pense que tu peux réaliser cela toi-même.
Messages postés
151
Date d'inscription
lundi 3 juillet 2017
Statut
Membre
Dernière intervention
25 août 2020

Re
MERCI
Voici ma solution

UserForm1.Labelc.Caption = S