[RESOLU]Passage des heures après minuit

xhudi69

XLDnaute Accro
Bonsoir le Forum

Si un poste de travail commence à 19h00 et finit à 04h00 le lendemain, il faut bien comptabilisé:
05h00 pour le jour même et
04h00 pour le lendemain :confused:

Sachant qu'il y a un problème avec le "24:00:00" j'ai utilisé une astuce pour la comptabilité des heures avant minuit, mais pour le reste, je coince.

Auriez-vous une idée pour que ces heures soit validées pour le jour suivant.

un grand merci à vous.

@+
 

Pièces jointes

  • essais_date_1_MINUIT.xlsm
    24 KB · Affichages: 72
  • essais_date_1_MINUIT.xlsm
    24 KB · Affichages: 66
  • essais_date_1_MINUIT.xlsm
    24 KB · Affichages: 67
Dernière édition:

R@chid

XLDnaute Barbatruc
Re : Il est minuit docteur schweitzer

Bonsoir xhudis69,
j'ai pas compris je ne sais rien en VBA...
voir si tu peux traduire les formules
Amicalement
 

Pièces jointes

  • essais_date_1_MINUIT.xlsm
    25.1 KB · Affichages: 68
  • essais_date_1_MINUIT.xlsm
    25.1 KB · Affichages: 87
  • essais_date_1_MINUIT.xlsm
    25.1 KB · Affichages: 91

xhudi69

XLDnaute Accro
Re : Il est minuit docteur schweitzer

Bonsoir R@chid, le Forum

merci pour ces formules qui me servirons pour un autre projet, mais le but est d'avoir le bon code VBA pour mon appli qui en est truffée, merci encore de m'avoir répondu.

Je joint le fichier corrigé d'une erreur dans le TextBox3 Change.

merci à vous.
 

Pièces jointes

  • essais_date_1_MINUIT.xlsm
    24.1 KB · Affichages: 70
  • essais_date_1_MINUIT.xlsm
    24.1 KB · Affichages: 76
  • essais_date_1_MINUIT.xlsm
    24.1 KB · Affichages: 56

Dranreb

XLDnaute Barbatruc
Re : Il est minuit docteur schweitzer

Auriez-vous une idée pour que ces heures soit validées pour le jour suivant.
C'est curieux, parce que c'est le plus simple: c'est l'heure ! (DateHeure - Int(DateHeure))
C'est ce qui est comptabilisé pour le jour précédent qui me parait plus compliqué: c'est la différence entre les DateHeures et ce qui est comptabilisé pour le jour suivant. Moi je sais des truc en VBA, mais j'ai quand même pas compris les ou ça, quoi, comment, etc.
À +
 

xhudi69

XLDnaute Accro
Re : Il est minuit docteur schweitzer

Re:
Bonsoir Dranreb

je pense avoir trouvé, avec l'UserForm tu mets l'heure de début (ex: 19:00:00) puis l'heure de fin (ex: 04:00:00) donc le lendemain; puis tu saisie une date (ex: 01/08/2012) ensuite valider.

05:00:00 seront validées le 01/08/2012 et
04:00:00 seront validées le 02/08/2012.

Les macros sont rustiques mais efficaces, je fait constament du VBA avec des Dates et des Heures, mais là je me prenais le choux pour rien.
Enfin si cela peut servir à d'autres, j'en serais heureux.

Merci à vous tous de m'avoir éclairé.

@+
 

Pièces jointes

  • essais_date_1_MINUIT.xlsm
    23.9 KB · Affichages: 55
  • essais_date_1_MINUIT.xlsm
    23.9 KB · Affichages: 63
  • essais_date_1_MINUIT.xlsm
    23.9 KB · Affichages: 73

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Il est minuit docteur schweitzer

Bonsoir xhudi69,

Il me semble qu'il manque quelques précisions :

Supposons qu'on saisisse 18:00, 2:00 et 01/08/2012. Pour ce que j'en ai compris, il faudrait compter 6h00 pour le 01/08/2012 et 02h00 pour le 02/08/2012.

Si ensuite on saisit 18:00, 21:00 et 02/08/2012 -> que doit on indiquer pour le jour 02/08/2012 ? 3h00 ? 5h00 ?

De plus, rien n'empêche de saisir une 2eme fois la durée pour un même jour! Dans ce cas, il y a des risques soit d'écraser le report soit de cumuler les valeurs des deux saisies (suivant la programmation)
 

xhudi69

XLDnaute Accro
Re : Il est minuit docteur schweitzer

Bonsoir mapomme

J'ai modifié le fichier pour la saisie le même jour, je m'étais un peu emmélé les pinceaux.
La modification concerne la saisie le jour même.

Comme les postes sont en 3X8 on ne pourra pas écraser les données du matin d'autan plus que la personne ne travaillera pas le matin où elle a arrèté.

Evidement si l'on ressaisie pour le jour même on vat écraser les données et on ne pourra pas effacer celles qui auront été validées pour le jour suivant dans le cas d'un poste finissant le lendemain.
Dans mon cas cela n'est pas important car en amont j'ai une validation.

Voir le fichier en PJ

merci à toi.

@+
 

Pièces jointes

  • essais_date_1_MINUIT.xlsm
    26.3 KB · Affichages: 65
  • essais_date_1_MINUIT.xlsm
    26.3 KB · Affichages: 72
  • essais_date_1_MINUIT.xlsm
    26.3 KB · Affichages: 64
Dernière édition:

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Il est minuit docteur schweitzer

(re) Bonsoir,

J'avais commencé un code (en ne gardant que les 3 textbox)
VB:
Private Sub CommandButton1_Click()
Dim i As Long, j As Long, H1, H2, D1, D2
Dim DRL As Long

With Sheets("TEST")
DRL = .Range("A400").End(xlUp).Row
H1 = CDate(TextBox1): H2 = CDate(TextBox2)
D1 = CDate(TextBox3): D2 = D1 + 1
For i = 2 To DRL
  If .Cells(i, 1) = D1 Then
    If H1 <= H2 Then
      .Cells(i, 2) = H2 - H1
      Exit For
    Else
      .Cells(i, 2) = 1 - H1
      For j = 2 To DRL
        If .Cells(j, 1) = D2 Then
          .Cells(j, 2) = H2
          Exit For
        End If
      Next j
    End If
  End If
Next i
End With
End Sub
 

Pièces jointes

  • essais_date_1_MINUIT V1.xlsm
    26.4 KB · Affichages: 64

Discussions similaires

Statistiques des forums

Discussions
311 725
Messages
2 081 940
Membres
101 845
dernier inscrit
annesof