MANIPULER LES DATES ET HEURES (ADDITION ET SOUSTRACTION)

Signaler
Messages postés
81
Date d'inscription
lundi 18 février 2002
Statut
Membre
Dernière intervention
4 février 2005
-
Messages postés
2
Date d'inscription
mercredi 8 novembre 2006
Statut
Membre
Dernière intervention
17 juin 2011
-
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

Messages postés
2
Date d'inscription
mercredi 8 novembre 2006
Statut
Membre
Dernière intervention
17 juin 2011

Merci pour votre aide à tous mais j'ai résolu mon problème de date
Messages postés
125
Date d'inscription
lundi 26 avril 2004
Statut
Membre
Dernière intervention
17 juin 2011

olyonnais76, tu pourrais poster un extrait de ton tableau, je crains comprendre...
Messages postés
1
Date d'inscription
vendredi 4 janvier 2008
Statut
Membre
Dernière intervention
16 juin 2011

ça c'est tout ce qu'il me fallait. Merci
Messages postés
2
Date d'inscription
mercredi 8 novembre 2006
Statut
Membre
Dernière intervention
17 juin 2011

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
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
62
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
Messages postés
14
Date d'inscription
mardi 14 juillet 2009
Statut
Membre
Dernière intervention
27 septembre 2009

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...
Messages postés
2
Date d'inscription
mardi 1 juillet 2008
Statut
Membre
Dernière intervention
2 juillet 2008

autant pour moi, j'ai trouvé weekday!
Messages postés
2
Date d'inscription
mardi 1 juillet 2008
Statut
Membre
Dernière intervention
2 juillet 2008

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
Messages postés
37
Date d'inscription
jeudi 10 février 2005
Statut
Membre
Dernière intervention
10 janvier 2008

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
Messages postés
7
Date d'inscription
jeudi 1 février 2007
Statut
Membre
Dernière intervention
1 mars 2007

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
Messages postés
7
Date d'inscription
jeudi 1 février 2007
Statut
Membre
Dernière intervention
1 mars 2007

Comment faire la difference en deux heures en format hh:mm:ss?
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
20
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.
Messages postés
2
Date d'inscription
samedi 5 août 2006
Statut
Membre
Dernière intervention
18 septembre 2006

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
Messages postés
125
Date d'inscription
lundi 26 avril 2004
Statut
Membre
Dernière intervention
17 juin 2011

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.
Messages postés
2
Date d'inscription
samedi 5 août 2006
Statut
Membre
Dernière intervention
18 septembre 2006

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!!
Messages postés
5
Date d'inscription
samedi 18 mars 2006
Statut
Membre
Dernière intervention
17 décembre 2006

La syntaxe est MonthName(8) qui donnera août ...
Messages postés
25
Date d'inscription
dimanche 29 août 2004
Statut
Membre
Dernière intervention
14 février 2009

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) ?????
Messages postés
193
Date d'inscription
dimanche 16 décembre 2001
Statut
Membre
Dernière intervention
29 juillet 2015

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
Messages postés
1
Date d'inscription
jeudi 13 juillet 2006
Statut
Membre
Dernière intervention
19 juillet 2006

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.....
Messages postés
1
Date d'inscription
mardi 20 juin 2006
Statut
Membre
Dernière intervention
22 juin 2006

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 :)
Messages postés
125
Date d'inscription
lundi 26 avril 2004
Statut
Membre
Dernière intervention
17 juin 2011

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.
Messages postés
190
Date d'inscription
vendredi 4 juin 2004
Statut
Membre
Dernière intervention
29 avril 2009
1
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
Messages postés
5
Date d'inscription
jeudi 19 janvier 2006
Statut
Membre
Dernière intervention
1 mars 2006

Super clair et super utile! 10/10
Ca m'enleve une belle épine
grace à DateAdd() notamment
MERCI!
Messages postés
40
Date d'inscription
vendredi 27 décembre 2002
Statut
Membre
Dernière intervention
13 mars 2006

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"))
Messages postés
79
Date d'inscription
lundi 28 mars 2005
Statut
Membre
Dernière intervention
4 juin 2012

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 !
Messages postés
40
Date d'inscription
vendredi 27 décembre 2002
Statut
Membre
Dernière intervention
13 mars 2006

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
Messages postés
18
Date d'inscription
dimanche 13 avril 2003
Statut
Membre
Dernière intervention
27 mai 2005

tres utile merci
Messages postés
60
Date d'inscription
mardi 4 septembre 2001
Statut
Membre
Dernière intervention
19 janvier 2009

Merci pour ce précieux turorial :)
Messages postés
125
Date d'inscription
lundi 26 avril 2004
Statut
Membre
Dernière intervention
17 juin 2011

Ok, merci BruNews...
Vais essayer dans pas longtemps, je commencais à avoir sérieusement besoin de cette petite fonction.
;-)
Messages postés
34
Date d'inscription
vendredi 30 juillet 2004
Statut
Membre
Dernière intervention
1 octobre 2005

c ok ca marche vraiment je n sai pa commen te remercier t'es trop gentil
merci bbbbccccccccccccpppppppppppppppppp
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
20
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.
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
20
bizzare, je vais tester de suite dans du Excel, pas de VB installe mais c'est idem.
Messages postés
34
Date d'inscription
vendredi 30 juillet 2004
Statut
Membre
Dernière intervention
1 octobre 2005

malheureusment ca n'a pas marché, j'ai du faire une erreur peut etr
Messages postés
34
Date d'inscription
vendredi 30 juillet 2004
Statut
Membre
Dernière intervention
1 octobre 2005

merci bcp brunews j'apprecie vraiment
je vai l'essaiyer mnt
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
20
Egalon > regarde si passe en VB, sera bien plus rapide:
Dim dbl As Double
SystemTimeToVariantTime MyTime, dbl
mydat = dbl
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
20
nJoursEcart = Clng(dat1) - Clng(dat2)
Messages postés
34
Date d'inscription
vendredi 30 juillet 2004
Statut
Membre
Dernière intervention
1 octobre 2005

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
Messages postés
125
Date d'inscription
lundi 26 avril 2004
Statut
Membre
Dernière intervention
17 juin 2011

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...
Messages postés
3
Date d'inscription
mercredi 19 novembre 2003
Statut
Membre
Dernière intervention
22 décembre 2006

GRAND MERCI au passage !
Messages postés
3
Date d'inscription
mercredi 19 novembre 2003
Statut
Membre
Dernière intervention
22 décembre 2006

GRAND MERCI au passage !
Messages postés
59
Date d'inscription
jeudi 26 décembre 2002
Statut
Membre
Dernière intervention
26 juillet 2007

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
Messages postés
4
Date d'inscription
jeudi 15 avril 2004
Statut
Membre
Dernière intervention
4 juin 2004

Trop bien cette petite explication.
C'est bien utile surtout pour un débutant en VB comme moi
Messages postés
9
Date d'inscription
mercredi 18 décembre 2002
Statut
Membre
Dernière intervention
4 février 2004

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 ;)
Messages postés
249
Date d'inscription
mardi 24 octobre 2000
Statut
Membre
Dernière intervention
28 août 2009

La réponse est dans la source : DateAdd mais avec un nombre négatif au lieu d'un positif
Messages postés
9
Date d'inscription
mercredi 18 décembre 2002
Statut
Membre
Dernière intervention
4 février 2004

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.
Messages postés
4
Date d'inscription
mercredi 17 décembre 2003
Statut
Membre
Dernière intervention
22 décembre 2003

bien, merci :)
Messages postés
148
Date d'inscription
dimanche 13 octobre 2002
Statut
Membre
Dernière intervention
13 novembre 2008

T'aurais pa l'heure stp?
:)
Trés bien c'est exactement ce que je cherchais
Merc
Messages postés
249
Date d'inscription
mardi 24 octobre 2000
Statut
Membre
Dernière intervention
28 août 2009

De rien, c'est tout naturel. J'ai aussi fait un tutorial sur le SQL et les bases de donne
Messages postés
81
Date d'inscription
lundi 18 février 2002
Statut
Membre
Dernière intervention
4 février 2005

et bien, t'as l'air d'aimer les dates et heures toi ! merci pour toutes les explications ci-dessus, ca aide