Heures

Résolu
cs_coyote06 Messages postés 2 Date d'inscription vendredi 13 octobre 2006 Statut Membre Dernière intervention 14 octobre 2006 - 14 oct. 2006 à 13:39
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 - 14 oct. 2006 à 16:15
Bonjour a tout le monde, je me nomme nanard . J'ai des problemes et je cherche la solution si quelqu'un pouvait me venir en aide .(je me prend la tete depuis plusieurs jours!)
je cherche la formule capable de gerer c'est trois cas:
A1= heure début
B1=heure fin
C1=heure de nuit (a partir de minuit/jusqu'a 5h)
D1=heure de jour
1°cas
A1=9h;B1=16h; C1=Formule a trouver(reponse doit etre (0);D1=7h(formulre a trouver)
2°cas
A1=20h;B1=1h;C1=Formule a trouver(reponsedoit etre (4);D1=1h(formule a trouver)
 Merci d'avance !

5 réponses

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
14 oct. 2006 à 14:36
salut

VB6 ???

Option Explicit

Private Sub Form_Load()
    Dim A1 As String, B1 As String
    Dim C1 As Integer, D1 As Integer

'   CAS n°1
    A1 =  "9h"
    B1 = "16h"
    Call GetHoursNightDay(A1, B1, C1, D1)
    MsgBox "De " & A1 & " à
" & B1 & vbCrLf & "NUIT " & C1 & vbCrLf & "JOUR " & D1
    'A1=9h;B1=16h; C1=Formule a trouver(reponse doit etre
(0);D1=7h(formulre a trouver)
    
'   CAS n°2
    A1 = "20h"
    B1 = "1h"
    Call GetHoursNightDay(A1, B1, C1, D1)    MsgBox "De " & A1 & " à " & B1 & vbCrLf & "NUIT " & C1 & vbCrLf & "JOUR " & D1
    'A1=20h;B1=1h;C1=Formule a trouver(reponsedoit etre
(4);D1=1h(formule a trouver)
    '******* NON, tu
as inversé tes heures jour et nuit, donc C1 1, D1 4

'   CAS n°3
    A1 = "2h"
    B1 = "10h"
    Call GetHoursNightDay(A1, B1, C1, D1)
    MsgBox "De " & A1 & " à
" & B1 & vbCrLf & "NUIT " & C1 & vbCrLf & "JOUR " & D1

    
'   CAS n°4
    A1 = "4h"
    B1 = "3h"
    Call GetHoursNightDay(A1, B1, C1, D1)    MsgBox "De " & A1 & " à " & B1 & vbCrLf & "NUIT " & C1 & vbCrLf & "JOUR " & D1

'  
CAS n°5
    A1 = "2h"
    B1 = "9h"
    Call GetHoursNightDay(A1, B1, C1, D1)    MsgBox "De " & A1 & " à " & B1 & vbCrLf & "NUIT " & C1 & vbCrLf & "JOUR " & D1
    
    Unload Me
End Sub
'
'
Sub GetHoursNightDay(ByVal A$, ByVal B$, ByRef C%, ByRef D%)
'   B
doit être entre "0h" et "5h" <- lendemain
    Dim A2%, B2%, iRes%
    A2 = Val(Left$(A, Len(A) - 1))
    B2 = Val(Left$(B, Len(B) - 1))
    
    C = 0
    D = 0
    
    If B2 < A2 Then B2 = B2 + 24
    iRes = B2 - A2 'heures
totales (nuit et jour)
    
    If A2 < 5 Then
        C = 5 - A2
        iRes = iRes - C
    End If
    
    If B2 > 24 Then
        D = B2 - 24 'D
utilisé en temporaire
        iRes = iRes - D
        C = C + D
    End If

    D = iRes
End Sub

<small>Coloration
syntaxique automatique [AFCK] </small>
       
++
PCPT   [AFCK]
<hr size ="2" width="100%" />Prenez un instant pour répondre à ce sondage svp
3
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
14 oct. 2006 à 15:20
 Bonjour à tous....

PCPT, brillantissime en moins d'une heure.
0
cs_coyote06 Messages postés 2 Date d'inscription vendredi 13 octobre 2006 Statut Membre Dernière intervention 14 octobre 2006
14 oct. 2006 à 15:32
Se message s'adresse a VB6 ???
Encore merci pour ta reponse mais malheureusement mon niveau sur excel est limité. Impossisible de faire ta manip. Comment te faire parvenir mon classeur ?
Exagére peut etre un peu trop ?
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
14 oct. 2006 à 16:04
Au besoin, change le nom de la procédure Private sub Form_Load par le nom que tu veux

Public Sub MaSub()


Et remplace où c'est marqué

A1 = "9h"

par

A1=Range("A1")
B1=Range("B1")

....


Et si tu es dans un module, tu pourrais spécifier le nom de l'onglet

A1 = Sheets("MaFeuille").Range("A1")

MPi
0

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

Posez votre question
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
14 oct. 2006 à 16:15
salut,
le code étant sous forme de procédure, je doute qu'il y ait beaucoup à adapter pour VBA...
(rubrique modifiée)

essaye avec les conseils de MPi, si tu n'y arrives pas je te donnerai mon mail par MP (même si en effet c'est un peu exagéré)

ps : merci JMO
<hr size="2" width="100%" />Prenez un instant pour répondre à ce sondage svp
0
Rejoignez-nous