MANIPULER LES DATES ET HEURES (ADDITION ET SOUSTRACTION)

reivon Messages postés 81 Date d'inscription lundi 18 février 2002 Statut Membre Dernière intervention 4 février 2005 - 8 mai 2002 à 20:27
olyonnais76 Messages postés 2 Date d'inscription mercredi 8 novembre 2006 Statut Membre Dernière intervention 17 juin 2011 - 17 juin 2011 à 16:58
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/3230-manipuler-les-dates-et-heures-addition-et-soustraction

olyonnais76 Messages postés 2 Date d'inscription mercredi 8 novembre 2006 Statut Membre Dernière intervention 17 juin 2011
17 juin 2011 à 16:58
Merci pour votre aide à tous mais j'ai résolu mon problème de date
Egalon Messages postés 124 Date d'inscription lundi 26 avril 2004 Statut Membre Dernière intervention 17 juin 2011
17 juin 2011 à 09:03
olyonnais76, tu pourrais poster un extrait de ton tableau, je crains comprendre...
cs_dedian Messages postés 1 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 16 juin 2011
16 juin 2011 à 20:25
ça c'est tout ce qu'il me fallait. Merci
olyonnais76 Messages postés 2 Date d'inscription mercredi 8 novembre 2006 Statut Membre Dernière intervention 17 juin 2011
8 avril 2011 à 10:10
bonjour à tous
Débutant en VBA, je suis devant un problème que je n'arrive pas à résoudre.
dans 1 feuille excel, je dois recueillir les données de fonctionnement de turbines (MW), ces données sont actualisées TOUTES les minutes et ça sur 1 mois (soit environ 45000 lignes).
Il me faut faire la somme de MW produits par JOUR à reporter dans un tableau.
Les dates sont donc variables car l'opération est à faire mensuellement.
Je n'arrive pas à déclarer mes variables (dates) et à écrire le tableau avec par ex 01/03/11,02/03/11,03/03/11... jusqu'à la fin du mois
De plus il faudrait prendre en compte Février...
Si queleques personnes pouvaient m'aider, ce serait magnifique
Merci d'avance
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
16 juil. 2009 à 09:18
pour l'heure actuelle, faire simplement

MonHeure.Text = Now

MonHeure.Text = TimeSerial(Hour(Now), Minute(Now), Second(Now))
se remplace d'ailleurs par:
MonHeure.Text = Now - Date
cs_cruchot59 Messages postés 14 Date d'inscription mardi 14 juillet 2009 Statut Membre Dernière intervention 27 septembre 2009
16 juil. 2009 à 00:38
jsuis méga débutant... et j'ai installé la macro qui donne l'heure sur une cellule A1 de la premiere feuille d'exell

en fait il donne bien l'heure mais la date est 00/01/1900...

si on change la date de la cellule A1, la seconde d'après ca revient pareil

j'en ai besoin car j'ai besoin de faire une soustraction (un timer) entre 18/07/2009 06:17 et maintenant (hh:mm) (un truc qui met à jour hh:mm chaque seconde)

merci bcp pour votre aide...
vixe Messages postés 2 Date d'inscription mardi 1 juillet 2008 Statut Membre Dernière intervention 2 juillet 2008
2 juil. 2008 à 11:02
autant pour moi, j'ai trouvé weekday!
vixe Messages postés 2 Date d'inscription mardi 1 juillet 2008 Statut Membre Dernière intervention 2 juillet 2008
1 juil. 2008 à 15:20
Bonjour tout le monde.
Tout cela est super interessant et m'aide beaucoup. J'ai encore un souci avec les date. Je dois faire un programme qui calcul des delais en jours. Le probleme de la soustraction des date à ete levé par une de vos contribution. Sauf que mes delais doivent etre calculés en jours ouvrables(semaine hors samedis et dimanches me suffit). Il y a sur excel une fonction "joursem" qui permet de differencier les jours mais je ne sais pas si ca existe sur VBA.
MeRcI pour votre aide
NykoKurapika Messages postés 37 Date d'inscription jeudi 10 février 2005 Statut Membre Dernière intervention 10 janvier 2008
13 avril 2007 à 12:38
Juste une petite indication ! je ne sais pas si ca marche en VB6 mais en .NET toujours bien que oui ^^

Pour l'ajout de jours (ou de mois etc ...) DateResult=DateAdd("d",15,Date1) OK !

Mais pour la soustraction, au lieu d'utilisé dateDiff : DateResult=DateAdd("d",-15,Date1)

l'ajout du signe " - " permet à lui seul de passer d'une addition à une soustraction !

Voilou !

Nyko
begiladss Messages postés 7 Date d'inscription jeudi 1 février 2007 Statut Membre Dernière intervention 1 mars 2007
21 févr. 2007 à 21:41
J'ai par exemples cette heure (12:10:30)afficher dans mon textbox. comment faire pour n'est que récuperer la minute et l'afficher en msgbox
begiladss Messages postés 7 Date d'inscription jeudi 1 février 2007 Statut Membre Dernière intervention 1 mars 2007
1 févr. 2007 à 16:59
Comment faire la difference en deux heures en format hh:mm:ss?
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
18 sept. 2006 à 09:00
Aucun besoin de manip String, une date est un numeric:
Dim Req As String
Dim Date_Deb As String
Dim Date_Fin As String
Req = Req & " WHERE T_FACTURE.FACT_MODIF Between " & CLng(CDate(Date_Deb)) & " AND " & CLng(CDate(Date_Fin))
Devrait aller ainsi.
motimed Messages postés 2 Date d'inscription samedi 5 août 2006 Statut Membre Dernière intervention 18 septembre 2006
18 sept. 2006 à 06:50
oui merci Egalon,,c un pu sa,,mai j'ai résolu lpb a l'aide du code suivant,et sa marché d'un seul coup : (d'ailleur jlai trouvé ds vbfrance)

Function MakeUSDate(dDate As Variant)
If Not IsDate(dDate) Then Exit Function
MakeUSDate = "#" & Month(dDate) & "/" & Day(dDate) & "/" & Year(dDate) & "#"
End Function

Private Sub test_click()

Dim Req As String
Dim Date_Deb As String
Dim Date_Fin As String


Req = "SELECT * FROM T_FACTURE"

Date_Deb = MakeUSDate(Me.Date_Deb)
Date_Fin = MakeUSDate(Me.Date_Fin)

Req = Req & " WHERE T_FACTURE.FACT_MODIF Between " & Date_Deb & " AND " & Date_Fin & ""

DoCmd.RunSQL Req

End Sub
Egalon Messages postés 124 Date d'inscription lundi 26 avril 2004 Statut Membre Dernière intervention 17 juin 2011
13 sept. 2006 à 10:32
tu dois convertir ta date en chaine de caractères au format de access. Par exmple sur MySQL, le format est yyyy-mm-dd hh:mm:ss. Et TOUT mettre en chaine de caractères dans ta requete.
motimed Messages postés 2 Date d'inscription samedi 5 août 2006 Statut Membre Dernière intervention 18 septembre 2006
11 sept. 2006 à 17:08
Merci a tous,..mais j'ai un autre pb à résoudre : jréalise une gestion de stock,arrivé a l'historique des entrées et sorties ,il fo ke jrécupére les données entre 2 dates (du ../../.. au ../../.... )saisie par l' utilisateur. en access la requéte sa marche avec between..and..,mais en vb non,,!!!!! msg genre type incompatible ..helpp!!
cs_poupi91 Messages postés 5 Date d'inscription samedi 18 mars 2006 Statut Membre Dernière intervention 17 décembre 2006
31 août 2006 à 23:14
La syntaxe est MonthName(8) qui donnera août ...
hobbi1 Messages postés 25 Date d'inscription dimanche 29 août 2004 Statut Membre Dernière intervention 14 février 2009
30 août 2006 à 10:44
Je cherchais des infos sur les dates et j'ai trouvé ces explications très claires !

Mais je crois que ca ne répond pas à mon soucis : je récupère un mois en nombre et je voudrais le convertir en texte
Est-ce que c'est la fonction Month() qu'il me faut ?

Ex : je veux que 8 donne "Août".
La syntaxe est : Month(8) ?????
cs_Tioneb Messages postés 193 Date d'inscription dimanche 16 décembre 2001 Statut Membre Dernière intervention 29 juillet 2015
29 juil. 2006 à 11:02
Très bien la source. Juste un petit problème avec l'ajout de jour à une date (je n'ai besoin que de cette fonction donc je n'ai testé que ça!!!). En effet, il ne faut pas mettre (par exemple):

DateAdd("j", 5, Date)
mais
DateAdd("d", 5, Date)
Car VB est "anglais"

Sinon, c'est très bien
cs_benhi Messages postés 1 Date d'inscription jeudi 13 juillet 2006 Statut Membre Dernière intervention 19 juillet 2006
19 juil. 2006 à 10:58
Tes fonctions, c'est super.
Je cherche celle qui permet de retrouver le dernier jour du dernier trimestre complet par rapport à la date du jour. Tu as une idée.....
sanfoura10 Messages postés 1 Date d'inscription mardi 20 juin 2006 Statut Membre Dernière intervention 22 juin 2006
22 juin 2006 à 10:42
c'est un code simple et très utile je l'ai déjà utilisé dans mon code pour afficher la date sur une page word
merci pour votre aide monsieur temps :)
Egalon Messages postés 124 Date d'inscription lundi 26 avril 2004 Statut Membre Dernière intervention 17 juin 2011
2 juin 2006 à 13:00
tu formates, le résultat ma_date (en heures:)
nb_heures = day(ma_date)*24 + hour(my_date)
ensuite si tu veux conserver les minutes il te faudra formater un affichage texte; car si tu gardes des formats d'heures, il passera forcément en gestion date. tu peux aussi travailler en séparant minutes et heures en utilisant des entiers.
ecranbleu27 Messages postés 190 Date d'inscription vendredi 4 juin 2004 Statut Membre Dernière intervention 29 avril 2009 1
30 mai 2006 à 10:10
bjr
moi je souhaite faire une somme d'heures, lorsque celle-ci va au delà de 24h (donc le resultat :sommecolonne) cela se transforme en date,
comment dois -je "formater" sommecolonne pour bien avoir des heures (par ex 28:30)
merci
jo l indien Messages postés 5 Date d'inscription jeudi 19 janvier 2006 Statut Membre Dernière intervention 1 mars 2006
15 mars 2006 à 16:46
Super clair et super utile! 10/10
Ca m'enleve une belle épine
grace à DateAdd() notamment
MERCI!
fcdconnect Messages postés 40 Date d'inscription vendredi 27 décembre 2002 Statut Membre Dernière intervention 13 mars 2006
23 janv. 2006 à 10:17
Moi j'utilise ca pour les jours ds une requete si ca peut t'aider :

Format(DateSerial(Year([req1].date1)-[req1].Duree,Month([req1].date1),Day([req1].date1)),"dd/mm/yyyy"))
cs_ab44 Messages postés 79 Date d'inscription lundi 28 mars 2005 Statut Membre Dernière intervention 4 juin 2012
22 janv. 2006 à 12:22
salut déja merci pour ta source !
je voudrais savoir comment faire pour par exemple quand il est 23:00:00, ajouter par exemple 2 heures et que ca met a jour la date que ca ajoute 1 jour !

merci a vous !
fcdconnect Messages postés 40 Date d'inscription vendredi 27 décembre 2002 Statut Membre Dernière intervention 13 mars 2006
28 janv. 2005 à 12:11
salut pas mal mais je suis novice et j'ai une date au format aaa/mm/jj a lakelle j'aimerai ajouter x année...

merci d'avance
aurelskull Messages postés 18 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 27 mai 2005
26 déc. 2004 à 20:40
tres utile merci
cs_Ouneufe Messages postés 60 Date d'inscription mardi 4 septembre 2001 Statut Membre Dernière intervention 19 janvier 2009
21 nov. 2004 à 05:49
Merci pour ce précieux turorial :)
Egalon Messages postés 124 Date d'inscription lundi 26 avril 2004 Statut Membre Dernière intervention 17 juin 2011
4 août 2004 à 08:49
Ok, merci BruNews...
Vais essayer dans pas longtemps, je commencais à avoir sérieusement besoin de cette petite fonction.
;-)
cs_teddy_bear Messages postés 34 Date d'inscription vendredi 30 juillet 2004 Statut Membre Dernière intervention 1 octobre 2005
3 août 2004 à 20:10
c ok ca marche vraiment je n sai pa commen te remercier t'es trop gentil
merci bbbbccccccccccccpppppppppppppppppp
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
3 août 2004 à 19:38
Sub Test()
Dim dt1 As Date, dt2 As Date
Dim nbrJoursEcart As Long
dt1 = Date
dt2 = CDate("5/6/2004")
nbrJoursEcart = CLng(dt1) - CLng(dt2)
MsgBox nbrJoursEcart
End Sub

me donne bien 59, semble coherent.
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
3 août 2004 à 19:26
bizzare, je vais tester de suite dans du Excel, pas de VB installe mais c'est idem.
cs_teddy_bear Messages postés 34 Date d'inscription vendredi 30 juillet 2004 Statut Membre Dernière intervention 1 octobre 2005
3 août 2004 à 19:17
malheureusment ca n'a pas marché, j'ai du faire une erreur peut etr
cs_teddy_bear Messages postés 34 Date d'inscription vendredi 30 juillet 2004 Statut Membre Dernière intervention 1 octobre 2005
3 août 2004 à 19:11
merci bcp brunews j'apprecie vraiment
je vai l'essaiyer mnt
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
3 août 2004 à 18:31
Egalon > regarde si passe en VB, sera bien plus rapide:
Dim dbl As Double
SystemTimeToVariantTime MyTime, dbl
mydat = dbl
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
3 août 2004 à 18:26
nJoursEcart = Clng(dat1) - Clng(dat2)
cs_teddy_bear Messages postés 34 Date d'inscription vendredi 30 juillet 2004 Statut Membre Dernière intervention 1 octobre 2005
3 août 2004 à 16:59
merci bcp ca m'a vraiment aidée (je suis encore débutante) mais je voudrai savoir si c'etai possible biensur comment compter le nombre de jours entre deux dates.
merci encore
Egalon Messages postés 124 Date d'inscription lundi 26 avril 2004 Statut Membre Dernière intervention 17 juin 2011
24 juin 2004 à 10:25
Salut, c'est très pratique tes indications pour la manipulation des date et heures.
J'ai un petit complément à mettre(parce que j'ai du chercher un peu pour trouver la soluce)

Comment convertir un SYSTEMTIME en DATE:

GetLocalTime MyTime

Dim MyDate
MyDate = DateSerial(MyTime.wYear, MyTime.wMonth, MyTime.wDay)
MyDate = MyDate + TimeSerial(MyTime.wHour, MyTime.wMinute, MyTime.wSecond)


Ca peut toujours dépanner quelqu'un...
yaumegui Messages postés 3 Date d'inscription mercredi 19 novembre 2003 Statut Membre Dernière intervention 22 décembre 2006
14 mai 2004 à 15:58
GRAND MERCI au passage !
yaumegui Messages postés 3 Date d'inscription mercredi 19 novembre 2003 Statut Membre Dernière intervention 22 décembre 2006
14 mai 2004 à 15:50
GRAND MERCI au passage !
bibilafrayeur Messages postés 59 Date d'inscription jeudi 26 décembre 2002 Statut Membre Dernière intervention 26 juillet 2007
5 mai 2004 à 16:56
Je vois qu'il y'a des personne qui s'inspirent de la MSDN ;)

Moi je voudrais convertire un nombre très important de secondes (86500 par exemple) pour me renvoyer un affichage comme ceci :
Jour/heure/minutes/secondes

Sais tu comment faire ?

Merci
hoyo22 Messages postés 4 Date d'inscription jeudi 15 avril 2004 Statut Membre Dernière intervention 4 juin 2004
15 avril 2004 à 18:12
Trop bien cette petite explication.
C'est bien utile surtout pour un débutant en VB comme moi
loopingstar Messages postés 9 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 4 février 2004
2 févr. 2004 à 10:16
Oui, sinon il y a cette solution
text1.text = cdate(cdate("15:55:00") - cdate("00:03:00"))
Ce qui revient au même mais bon ;)
magidev Messages postés 249 Date d'inscription mardi 24 octobre 2000 Statut Membre Dernière intervention 28 août 2009
2 févr. 2004 à 09:40
La réponse est dans la source : DateAdd mais avec un nombre négatif au lieu d'un positif
loopingstar Messages postés 9 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 4 février 2004
1 févr. 2004 à 15:15
Bonjour, j'ai un piti souci : Voici un exemple : Comment faire pur enlever "00:03:00" à "15:55:00" ? En fait je voudrai enlever des secondes ou minutes (qui sont sous la forme "hh:mm:ss" à un temps (sous la même forme "hh:mm:ss")
Merci à vous.
iurodivi Messages postés 4 Date d'inscription mercredi 17 décembre 2003 Statut Membre Dernière intervention 22 décembre 2003
22 déc. 2003 à 01:10
bien, merci :)
devsurf Messages postés 148 Date d'inscription dimanche 13 octobre 2002 Statut Membre Dernière intervention 13 novembre 2008
9 mai 2003 à 14:32
T'aurais pa l'heure stp?
:)
Trés bien c'est exactement ce que je cherchais
Merc
magidev Messages postés 249 Date d'inscription mardi 24 octobre 2000 Statut Membre Dernière intervention 28 août 2009
10 mai 2002 à 15:27
De rien, c'est tout naturel. J'ai aussi fait un tutorial sur le SQL et les bases de donne
reivon Messages postés 81 Date d'inscription lundi 18 février 2002 Statut Membre Dernière intervention 4 février 2005
8 mai 2002 à 20:27
et bien, t'as l'air d'aimer les dates et heures toi ! merci pour toutes les explications ci-dessus, ca aide
Rejoignez-nous