Bonjour à tous,
J'amerais enlever 1 jour à une date lorsque mon heure est compris entre 00h00 et 06h00 du matin.
Sachant que l'heure s'affiche dans un label et la date s'affiche dans un autre label.
Pouvez-vous m'aider?
Merci à tous.
Bonjour à tous,
J'amerais enlever 1 jour à une date lorsque mon heure est compris entre 00h00 et 06h00 du matin.
Sachant que l'heure s'affiche dans un label et la date s'affiche dans un autre label.
Pouvez-vous m'aider?
Merci à tous.
Bonjour,
Utilise la fonction DateAdd().
Peux-tu me dire comment tu fais?
Merci d'avance.
BEn alors? Regarde l'aide en ligne. Tu spécifies ta date de départ, l'unité que tu veux modifier ("d" pour "jour"), et la variation (-1 pour reitrer un jour).
Re,
Un extrait de MSDN :
DateAdd, fonction
Renvoie une valeur de type Variant (Date) contenant une date à laquelle un intervalle de temps spécifié a été ajouté.
Syntaxe
DateAdd(interval, number, date)
La syntaxe de la fonction DateAdd comprend lesarguments nommés suivants :
Élément Description
interval Expression de chaîne correspondant à l'intervalle de temps à ajouter.
number Expression numérique correspondant au nombre d'intervalles à ajouter. Peut être positive (pour obtenir des dates dans le futur) ou négative (pour obtenir des dates dans le passé).
date Variant (Date) ou caractère littéral représentant la date à laquelle l'intervalle est ajouté.
Valeurs
L'argument interval peut prendre les valeurs suivantes :
Valeur Description
yyyy Année
q Trimestre
m Mois
y Jour de l'année
d Jour
w Jour de la semaine
ww Semaine
h Heure
n Minute
s Seconde
Remarques
Utilisez la fonction DateAdd pour ajouter ou soustraire à une date un intervalle de temps spécifié. Par exemple, utilisez DateAdd pour calculer une date située à 30 jours ou une heure située à 45 minutes de l'heure présente.
Pour ajouter des jours à la valeur de l'argument date, vous pouvez utiliser les valeurs Jour de l'année ("y"), Jour ("d") ou Jour de la semaine ("w").
La fonction DateAdd ne renvoie jamais de date incorrecte. Dans l'exemple suivant, un mois est ajouté à la date du 31 janvier :
DateAdd("m", 1, "31-Jan-95")
Dans ce cas, DateAdd renvoie 28/02/95, et non 31/02/95. Si l'argument date a pour valeur le 31-Jan-96, la date 29/02/96 est renvoyée car 1996 est une année bissextile.
Si la date calculée devait être antérieure à l'année 100 (c'est-à-dire, si vous retirez un nombre d'années supérieur à celui indiqué dans l'argument date), une erreur se produit.
Si l'argument number n'est pas une valeur de typeLong, il est arrondi au nombre entier le plus proche avant d'être évalué.
Note Le format de la valeur renvoyée correspondant à la fonction DateAdd est déterminé par les valeurs du Panneau de configuration, non par le format qui est passé à l'argument date.
merci pour la reponse mais comment dire :
Si Label8 est compris entre "00:00" et "06:00"" alors
Enlever un jour à une date 'Pour cette expression là je penses que c'est bon
Fin Si
Merci d'avance.
Re,
Encore un peu de lecture :
DateDiff, fonction
Renvoie une valeur de type Variant (Long) indiquant le nombre d'intervalles de temps entre deux dates données.
Syntaxe
DateDiff(interval, date1, date2[, firstdayofweek[, firstweekofyear]])
La syntaxe de la fonction DateDiff comprend lesarguments nommés suivants :
Élément Description
interval Expression de chaîne correspondant à l'intervalle de temps utilisé pour calculer la différence entre date1 et date2.
date1, date2 De type Variant (Date), représentent les deux dates utilisées dans le calcul.
firstdayofweek Facultatif.Constante précisant le premier jour de la semaine. Si aucune valeur n'est précisée, la valeur par défaut est dimanche.
Firstweekofyear Facultatif. Constante précisant la première semaine de l'année. Si aucune valeur n'est précisée, la première semaine est par défaut celle du 1er janvier.
Valeurs
L'argument interval peut prendre les valeurs suivantes :
Valeur Description
yyyy Année
q Trimestre
m Mois
y Jour de l'année
d Jour
w Jour de la semaine
ww Semaine
h Heure
n Minute
s Seconde
L'argument firstdayofweek peut prendre les valeurs suivantes :
Constante Valeur Description
vbUseSystem 0 Utilise le paramètre de l'API NLS.
vbSunday 1 Dimanche (valeur par défaut)
vbMonday 2 Lundi
vbTuesday 3 Mardi
vbWednesday 4 Mercredi
vbThursday 5 Jeudi
vbFriday 6 Vendredi
vbSaturday 7 Samedi
Constante Valeur Description
vbUseSystem 0 Utilise le paramètre de l'API NLS.
vbFirstJan1 1 Commencer par la semaine du 1er janvier (valeur par défaut).
vbFirstFourDays 2 Commencer par la première semaine comportant au moins quatre jours dans l'année nouvelle.
vbFirstFullWeek 3 Commencer par la première semaine complète de l'année.
Remarques
Utilisez la fonction DateDiff pour déterminer le nombre d'intervalles de temps spécifiés entre deux dates. Par exemple, utilisez DateDiff pour calculer le nombre de jours entre deux dates ou le nombre de semaines entre la date d'aujourd'hui et la fin de l'année.
Pour calculer le nombre de jours entre date1 et date2, vous pouvez utiliser les valeurs Jour de l'année ("y") ou Jour ("d"). Si l'argument interval est Jour de la semaine ("w"), DateDiff renvoie le nombre de semaines entre les deux dates. Si date1 tombe un lundi, DateDiff calcule le nombre de lundi jusqu'à date2. La valeur date2 est prise en compte, mais pas la valeur date1. Si l'argument interval est Semaine ("ww"), la fonction DateDiff renvoie le nombre de semaines calendaires entre les deux dates. Le nombre de dimanches entre date1 et date2 est calculé. DateDiff prend en compte date2 si cette date tombe un dimanche, mais pas date1, même s'il s'agit également d'un dimanche.
Si date1 est postérieure à date2, la fonction DateDiff renvoie un nombre négatif.
L'argument firstdayofweek a une incidence sur les calculs qui utilisent les symboles d'intervalle "w" et "ww".
Si date1 ou date2 est unlittéral date, l'année spécifiée devient un élément permanent de la date. Toutefois, si date1 ou date2 apparaît entre guillemets (" ") et si vous n'indiquez pas l'année, l'année en cours est insérée dans le code chaque fois que l'expression date1 ou date2 est évaluée. Vous pouvez ainsi écrire du code qui sera réutilisable au fil des années.
Lors de la comparaison des dates 31 décembre et 1er janvier de l'année suivante, DateDiff avec la valeur Année ("yyyy") renvoie 1, même si la différence est seulement d'un jour.
Non ce n'est pas ce que je veux :
C'est un code de ce genre là que j'aimerais avoir.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 If Label8.Caption est compris entre "00:00:00" et "06:00:00" Then dat = Format(Date, "mm/dd/yy") Label9.Caption = DateAdd(d, -1, dat) Else Label9.Caption = dat End If
Mais je n'arrive pas à faire l'instruction du si.
Merci d'avance
Ça t'aide:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Sub test2() MsgBox (Time) Heure = Hour(Time) MsgBox (Heure) End Sub
Non désolé je ne vois où tu veux en venir.
Mon Label16.Caption = DateAdd(d, -1, dat) ne marche pas car dat est de forme : Format(Date, "dddd d mmmm yyyy").
Pouvez-vous m'aider?
Merci d'avance.
Regarde ça:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Sub test2() UserForm1.Show vbModeless Dim MyTime As Date MyTime = CDate(UserForm1.Label1.Caption) MsgBox (Hour(MyTime)) If Hour(MyTime) >= 8 Then MsgBox ("Il est plus de huit heure!!") End If End Sub
je n'arrive pas à tester ton code.
Peux-tu me dire où il faut que je le mettre...
Merci d'avance.
C'est bon j'ai reussi mais comment l'adapter à mon code?
En faisant un truc dans ce genre:
Ça doit commencer à ressembler à ce que tu veux faire, non?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Sub Test() Dim MyTime As Date Dim MyDate As Date MyTime = CDate(Label8.Caption) MyDate = CDate(Label9.Caption) If MyTime < 5 Then 'de 00:00:00 à 05::59:59 MyDate = DateAdd("d", -1, MyDate) Label9.Caption = MyDate End If End Sub
C'est bon j'ai trouvé mais j'ai un problème sur :
Il me dit type incompatible et le d n'a rien dedans.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Label6.Caption = DateAdd(d, -1, dat)
Sachant que Label6 et dat sont de la format "dddd d mmmm yyyy", cela donne : vendredi 20 janvier 2006. Comment faire pour enlever un jour et que cela donne jeudi 19 janvier 2006.
Merci d'avance.
Ce n'est pas un problème de format, c'est un problème de type (Integer, String, Long,...)
La fonction DateAdd prend un "Date" en entrée, et donne un "Date" en sortie. Si tu as des "String", tu dois les convertir en "Date" avec la fonction "CDate", comme je l'ai fait dans mon exemple corrigé à la fin de la page 1 de ce post.
C'est bon ça marche.
et à tous le monde.
Bonne journée
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager