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

Résolu/Fermé
pyrus2047 Messages postés 153 Date d'inscription lundi 3 juillet 2017 Statut Membre Dernière intervention 22 mai 2023 - 23 août 2020 à 21:24
pyrus2047 Messages postés 153 Date d'inscription lundi 3 juillet 2017 Statut Membre Dernière intervention 22 mai 2023 - 25 août 2020 à 16:06
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

yg_be Messages postés 23329 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 17 novembre 2024 Ambassadeur 1 551
23 août 2020 à 22:00
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.
0
pyrus2047 Messages postés 153 Date d'inscription lundi 3 juillet 2017 Statut Membre Dernière intervention 22 mai 2023
23 août 2020 à 22:38
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
0
yg_be Messages postés 23329 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 17 novembre 2024 1 551
24 août 2020 à 09:06
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.
0
pyrus2047 Messages postés 153 Date d'inscription lundi 3 juillet 2017 Statut Membre Dernière intervention 22 mai 2023
24 août 2020 à 18:44
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
0
yg_be Messages postés 23329 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 17 novembre 2024 1 551
24 août 2020 à 21:56
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.
0
pyrus2047 Messages postés 153 Date d'inscription lundi 3 juillet 2017 Statut Membre Dernière intervention 22 mai 2023
25 août 2020 à 10:11
Bonjour

a tu une piste pour m'orienter dans la bonne direction
Cordialement
0
yg_be Messages postés 23329 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 17 novembre 2024 1 551
25 août 2020 à 10:13
à partir d'exemples, réfléchis concrètement comment obtenir le résultat attendu.
0

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

Posez votre question
pyrus2047 Messages postés 153 Date d'inscription lundi 3 juillet 2017 Statut Membre Dernière intervention 22 mai 2023
Modifié le 25 août 2020 à 11:54
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
0
yg_be Messages postés 23329 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 17 novembre 2024 1 551
25 août 2020 à 11:24
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.
0
pyrus2047 Messages postés 153 Date d'inscription lundi 3 juillet 2017 Statut Membre Dernière intervention 22 mai 2023
25 août 2020 à 12:11
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
0
yg_be Messages postés 23329 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 17 novembre 2024 1 551
25 août 2020 à 12:49
je comprends bien ce que tu veux obtenir, et je pense que tu peux réaliser cela toi-même.
0
pyrus2047 Messages postés 153 Date d'inscription lundi 3 juillet 2017 Statut Membre Dernière intervention 22 mai 2023
25 août 2020 à 16:06
Re
MERCI
Voici ma solution

UserForm1.Labelc.Caption = S
0