ocejade
Messages postés55Date d'inscriptionjeudi 26 avril 2007StatutMembreDernière intervention 6 avril 2015
-
11 mars 2012 à 09:19
cs_ShayW
Messages postés3253Date d'inscriptionjeudi 26 novembre 2009StatutMembreDernière intervention 3 décembre 2019
-
22 mars 2012 à 21:39
bonjour a tous
je viens ver vous car j ais un problème de calcul d heure avec des dtpiker
je m explique
j ais deux dtpiker un qui m affiche mes heures travailler du jour et l autre qui me fait un calcul du mois l opération ce fait parfaitement mais des que je dépasse 23 h 59 le dtpiker deux se remet a zéro je ne c est pas comment forcer le dtpiker a accepter les heures supérieure a 24 h 00 ?
ma ligne de code est
dtpiker1.value= dtpiker1.value + dtpiker2.value en sachant que dtpiker1 est charger a l ouverture du programme
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 11 mars 2012 à 09:38
Bonjour,
1) Tu as là un problème fondamental de conception.
Un contrôle dtpicker n'est pas fait pour stocker une valeur de date, mais pour sélectionner une date avec confort. Il n'est jamais nécessaire d'utiliser plus d'un contrôle de cette nature !
2) on ne traite pas les heures (temps) comme des durées (ce sont des notions distinctes).
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 12 mars 2012 à 22:40
Oui ! mais à condition d'en extraire des durées (exprimées en unités de temps) et non des "heures" (qui ne sont que l'expression d'un écart par rapport à une origine ... un "relevé", quoi, même s'il s'exprime avec les même mots "heures", "minutes" et "secondes" que les durées).
On peut faire des opérations sur des durées. On ne saurait en faire sur des "heures".
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
ehjoe
Messages postés728Date d'inscriptionsamedi 4 avril 2009StatutMembreDernière intervention30 mars 20144 13 mars 2012 à 09:52
Bonjour Jacques,
En fait il y a tout ce qu'il faut pour calculer ça, on peut aussi directement calculer en valeur "Long" :
dim d1 as date = "12/03/2012 22:57:17"
dim d2 as date = "13/03/2012 09:57:17"
dim ss as long = 0
dim mn as long = 0
dim hh as long = 0
ss = DateDiff(DateInterval.second, d1, d2)
' il y a peut être plus court ?
if ss > 0 then
mn = ss \ 60
ss = ss - (mn * 60)
end if
if mn > 0 then
hh = mn \ 60
mn = mn - (hh * 60)
end if
msgbox(hh & "h" & format(mn,"00") & "'" & format(ss,"00"))
Cordialement, Joe.
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_ShayW
Messages postés3253Date d'inscriptionjeudi 26 novembre 2009StatutMembreDernière intervention 3 décembre 201957 13 mars 2012 à 12:14
Salut ocejade
Explique ce que tu veux faire... pas ce que tu
as fait
pas compris ton explication
j ais deux dtpiker un qui m affiche mes heures travailler du jour
comment ?
le dtpiker est un control qui te permet de choisir une date en définassant le format voulu
tu cliques le dtpicker au début de la journée
sauvegarde la valeur dans un tableau
tu cliques le dtpicker à la fin de la journée
sauvegarde la valeur dans un tableau
c'est tout
je ne c est pas comment forcer le dtpiker a accepter les heures supérieure a 24 h 00 ?
soi logique une journée dure 24 heures
comme si que je disais comment forcer le calendrier après le 31 janvier obtenir le 32 janvier
ocejade
Messages postés55Date d'inscriptionjeudi 26 avril 2007StatutMembreDernière intervention 6 avril 2015 14 mars 2012 à 20:25
bonjour a tous
je vois que mon problème vous met en désaccord
mais l union fait la force
je vous met l ensemble de mon code pour que vous puissiez mieux comprendre
Private Sub AJOUT_Click()
Dim I As Integer
I = Row + 2
MSFlexGrid1.AddItem Calendar1, 2
MSFlexGrid1.TextMatrix(I, 1) = DTPicker1.Value
MSFlexGrid1.TextMatrix(I, 2) = DTPicker2.Value
MSFlexGrid1.TextMatrix(I, 3) = DTPicker3.Value
MSFlexGrid1.TextMatrix(I, 4) = DTPicker4.Value
MSFlexGrid1.TextMatrix(I, 5) = DTPicker8.Value
MSFlexGrid1.TextMatrix(I, 6) = Text2.Text
DTPicker9.Value = DTPicker3.Value + DTPicker9.Value 'le probleme se situe au dtpicker9 qui se remet a zero si le total depasse 23 h 59
DTPicker10.Value = DTPicker4.Value + DTPicker10.Value
DTPicker11.Value = DTPicker8.Value + DTPicker11.Value
End Sub
Private Sub CALCULJ_Click()
DTPicker14.Value = DTPicker6.Value + DTPicker7.Value - DTPicker12.Value
If DTPicker2.Value < DTPicker13.Value Then DTPicker15.Value = DTPicker2.Value
If DTPicker13.Value < DTPicker2.Value Then DTPicker15.Value = DTPicker13.Value
If DTPicker12.Value < DTPicker1.Value Then DTPicker8.Value = DTPicker6.Value + DTPicker7.Value - DTPicker1.Value + DTPicker15.Value
If DTPicker1.Value < DTPicker12.Value Then DTPicker8.Value = DTPicker14.Value + DTPicker15.Value
.TextMatrix(0, 0) = "date "
.TextMatrix(0, 1) = "heure embauche "
.TextMatrix(0, 2) = "fin de service "
.TextMatrix(0, 3) = "total jour "
.TextMatrix(0, 4) = "heure supp "
.TextMatrix(0, 5) = "heure de nuit"
.TextMatrix(0, 6) = "information "
End With
Me.Left = GetSetting(App.Title, "Settings", "MainLeft", 1000)
Me.Top = GetSetting(App.Title, "Settings", "MainTop", 1000)
Me.Width = GetSetting(App.Title, "Settings", "MainWidth", 6500)
Me.Height = GetSetting(App.Title, "Settings", "MainHeight", 6500)
Dim file_name As String
Dim fnum As Integer
Dim max_row As Integer
Dim max_col As Integer
Dim R As Integer
Dim c As Integer
Dim TXT As String
Dim max_len As Single
Dim new_len As Single
file_name = App.Path
If Right$(file_name, 1) <> "" Then file_name = file_name & ""
file_name = file_name & "FlexGrid1.dat"
For R = 0 To max_row
For c = 0 To max_col
Input #fnum, TXT
MSFlexGrid1.TextMatrix(R, c) = TXT
Next c
Input #fnum, TXT
Next R
Close #fnum
Font.Name = MSFlexGrid1.Font.Name
Font.Size = MSFlexGrid1.Font.Size
For c = 0 To max_col
max_len = 0
For R = 0 To max_row
new_len = TextWidth(MSFlexGrid1.TextMatrix(R, c))
If max_len < new_len Then max_len = new_len
Next R
MSFlexGrid1.ColWidth(c) = max_len + 710
MSFlexGrid1.ColAlignment(c) = flexAlignLeftCenter
Next c
MSFlexGrid1.Visible = True
Open App.Path & "\1.txt" For Input As #1
DTPicker9.Value = Input(LOF(1), #1)
Close #1
Open App.Path & "\2.txt" For Input As #1
DTPicker10.Value = Input(LOF(1), #1)
Close #1
Open App.Path & "\3.txt" For Input As #1
DTPicker11.Value = Input(LOF(1), #1)
Close #1
Open App.Path & "\6.txt" For Input As #1
Text1.Text = Input(LOF(1), #1)
Close #1
End Sub
Private Sub MISE_Click()
Form2.Show
End Sub
Private Sub Option1_Click()
If Option1.Value = True Then
Text2.Text = "normal"
Else
If Option2.Value True Then Option1.Value False
Text2.Text = "feries"
If Option3.Value True Then Option1.Value False & Option2.Value = False
Text2.Text = "recuperation"
End If
End Sub
Private Sub Option3_Click()
If Option3.Value = True Then
Option1.Value = False
Option2.Value = False
Text2.Text = "recuperation"
End If
End Sub
Private Sub Option4_Click()
If Option1.Value = True Then
Text2.Text = "maladie"
Else
If Option2.Value True Then Option1.Value False
Text2.Text = "feries"
If Option3.Value True Then Option1.Value False & Option2.Value = False
Text2.Text = "maladie"
End If
End Sub
Private Sub Option5_Click()
If Option5.Value = True Then
Option1.Value = False
Option2.Value = False
Option3.Value = False
Option4.Value = False
Text2.Text = "congé"
If Option5.Value True Then DTPicker3.Value "06:30:00"
End If
End Sub
Private Sub Option2_Click()
If Option1.Value = False Then
Text2.Text = "ferie"
End If
End Sub
Private Sub SAUVEGARDE_Click()
Dim file_name As String
Dim fnum As Integer
Dim max_row As Integer
Dim max_col As Integer
Dim R As Integer
Dim yy As Integer
file_name = App.Path
If Right$(file_name, 1) <> "" Then file_name = file_name & ""
file_name = file_name & "FlexGrid1.dat"
For R = 0 To max_row
For yy = 0 To max_col
Write #fnum, MSFlexGrid1.TextMatrix(R, yy);
Next yy
Write #fnum,
Next R
Close fnum
Dim f As Integer
f = FreeFile
Open "1.txt" For Output As #f
Print #f, DTPicker9.Value
Close #f
Dim a As Integer
a = FreeFile
Open "2.txt" For Output As #a
Print #a, DTPicker10.Value
Close #a
Dim b As Integer
b = FreeFile
Open "3.txt" For Output As #b
Print #b, DTPicker11.Value
Close #b
Dim Z As Integer
Z = FreeFile
Open "6.txt" For Output As #Z
Print #Z, Text1.Text
Close #Z
End Sub
donc mon probleme ce situe au dtpicker 9 , ce que je veut faire c est pouvoir faire un cumul des heures du mois qui doit logiquement s afficher dans ce dtpicker
ps: je c est qu il y a trop de fichiers texte mais j ais pas trouver comment mettre toutes mais sauvegarde sur un seul
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 14 mars 2012 à 20:35
ouais ! ...
Et maintenant : carrément 11 contrôles Dtpickers !
Et cette ligne (lu "au hasqard d'un code non présenté entre balises) qui m'intrigue :
If Option3.Value True Then Option1.Value False & Option2.Value = False
C'est normal, d'écrire cela, en VB.Net ? =>> si oui : que quelqu'un veuille bien avoir la gentillesse de satisfaire ma curiosité : comment est-ce interprété par le compilateur ?
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 14 mars 2012 à 21:07
Juste pour que tu comprennes à quel point il te faut reconsidérer des aspects : ===>>
Tu es chef d'entreprise et tu as 40 employés.
Tu as besoin de contrôler leurs arrivées et leurs départs.
Comment t'y prends-tu ?
- une pointeuse par employé ?
ou
- une seule pointeuse (en mettant en mémoire) l'heure (d'arrivée ou de départ) correspondant à chaque employé ?
Il en va de même en ce qui concerne tes dtpickers. Un seul suffit et il suffit de mettre en mémoire (dans la variable y correspondant) le choix fait dans le dtpicker, lorsque utilisé pour telle ou telle autre fin (= telle ou telle autre variable).
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
ocejade
Messages postés55Date d'inscriptionjeudi 26 avril 2007StatutMembreDernière intervention 6 avril 2015 22 mars 2012 à 20:32
bonsoir et désoler du retard de réponse
alors pour faire court mon code me serre a effectuer un relever d heure imprimable il me calcule mais heures effectuer dans la journée , mes heures supplémentaire , mes heures de nuit et tout cela et additionner pour avoir un total du mois que je peut imprimer
comme le code que j ais déjà mis sur code source sous le nom calcul heure de nuit 2 sauf que je veux le modifier pour avoir une meilleur prise en main a l utilisation c est pour ça que le choix des dtpicker été plus judicieux que les textbox
cs_ShayW
Messages postés3253Date d'inscriptionjeudi 26 novembre 2009StatutMembreDernière intervention 3 décembre 201957 22 mars 2012 à 21:39
Salut
tu veux calculer les heures de travaille
pour le mois
cela serait beaucoup mieux d'utiliser une BDD
et un interface vb au lieu de N datetimepicker
en plus tu pourras effectuer des requetes
statistique
ex combien d'heures suplémentaire j'ai fait
le mois dernier