OVH Cloud OVH Cloud

Comparaison de difference de dates

8 réponses
Avatar
Luis
Bonjour,
Pour =EAtre averti =E0 temps de la validit=E9 d'un permis avec=20
80 jour au moins de d=E9lai, j'ai mis ce-ci:

Dim n As Integer
If ((DateDiff("d", Me.DATE_PERMIS, Int(Now))) <=3D 80) Then
n =3D msgbox("le permis est encore valable " & DateDiff
("d", Int(Now), Me.DATE_PERMIS) & " jours")
Else
Exit Sub
End if.
Le probl=E8me est qu'avec =E7a je suis pr=E9venu m=EAme 200 jours=20
avant et pas seulement =E0 partir de 80 jours et moins.
Qu'est-ce que j'ai encore fait faux?
Luis

8 réponses

Avatar
RaphK34
bonsoir,

Il me semble que ceci fonctionne correctement:

Dim n As Integer
If ((DateDiff("d", Me.DATE_PERMIS, Int(Now()))) <= 80) Then
n = msgbox("le permis est encore valable " & DateDiff
("d", Int(Now), Me.DATE_PERMIS) & " jours")
Else
Exit Sub
End if

ou encore mieux:

If DateDiff("d", Me.DATE_PERMIS, date)<= 80 Then
msgbox("le permis est encore valable " & DateDiff ("d", date, Me.DATE_PERMIS) & " jours")
Else
Exit Sub
End if.

--
--------------------------------------------
Merci de répondre sur le NG
Toutes remarques bienvenues !

Pour un contact direct, utiliser:
en enlevant nospam.

"Luis" a écrit dans le message de news: 044c01c4b839$459006d0$
Bonjour,
Pour être averti à temps de la validité d'un permis avec
80 jour au moins de délai, j'ai mis ce-ci:

Dim n As Integer
If ((DateDiff("d", Me.DATE_PERMIS, Int(Now))) <= 80) Then
n = msgbox("le permis est encore valable " & DateDiff
("d", Int(Now), Me.DATE_PERMIS) & " jours")
Else
Exit Sub
End if.
Le problème est qu'avec ça je suis prévenu même 200 jours
avant et pas seulement à partir de 80 jours et moins.
Qu'est-ce que j'ai encore fait faux?
Luis
Avatar
Eric
Bonjour Luis,

Ceci devrait suffire :

If DateDiff("d", Date, Me.DATE_PERMIS) <= 80 Then
MsgBox "le permis est encore valable " _
& DateDiff("d", Date, Me.DATE_PERMIS) & " jours", vbExclamation
End If

PS : If ((DateDiff("d", Me.DATE_PERMIS, Int(Now))) <= 80) te renvoie une
valeur négative si DATE_PERMIS correspond à la date d'échéance du permis,
postérieure à ce jour, donc le test est vérifié.
Utilises Date plutot que Now

A+
Eric

"Luis" écrivait news:044c01c4b839
$459006d0$:

Bonjour,
Pour être averti à temps de la validité d'un permis avec
80 jour au moins de délai, j'ai mis ce-ci:

Dim n As Integer
If ((DateDiff("d", Me.DATE_PERMIS, Int(Now))) <= 80) Then
n = msgbox("le permis est encore valable " & DateDiff
("d", Int(Now), Me.DATE_PERMIS) & " jours")
Else
Exit Sub
End if.
Le problème est qu'avec ça je suis prévenu même 200 jours
avant et pas seulement à partir de 80 jours et moins.
Qu'est-ce que j'ai encore fait faux?
Luis



Avatar
Ilan
Bonjour,

le test renvoie peut-etre une valeur negaitve donc toujours inferieure a +80.
essaie
If ((DateDiff("d", Me.DATE_PERMIS, Int(Now))) >=- 80)
ou
If ((DateDiff("d", Int(Now),Me.DATE_PERMIS)) <= 80)



Bonjour,
Pour être averti à temps de la validité d'un permis avec
80 jour au moins de délai, j'ai mis ce-ci:

Dim n As Integer
If ((DateDiff("d", Me.DATE_PERMIS, Int(Now))) <= 80) Then
n = msgbox("le permis est encore valable " & DateDiff
("d", Int(Now), Me.DATE_PERMIS) & " jours")
Else
Exit Sub
End if.
Le problème est qu'avec ça je suis prévenu même 200 jours
avant et pas seulement à partir de 80 jours et moins.
Qu'est-ce que j'ai encore fait faux?
Luis



Avatar
RaphK34
Oups, j'ai oublié les parenthèses au 2ème now, donc je reprends:
(de plus lorsque l'on manipule des dates ou heures, n est un mot clé d'access représentant les minutes, donc à mon humble avis,
c'est une variable à éviter ... d'ailleurs sur ce bout de code je ne vois pas àl'utilité de n = msgbox.... mais ...)

| Il me semble que ceci fonctionne correctement:
|
| Dim n As Integer
| If ((DateDiff("d", Me.DATE_PERMIS, Int(Now()))) <= 80) Then
| n = msgbox("le permis est encore valable " & DateDiff
| ("d", Int(Now()), Me.DATE_PERMIS) & " jours")
| Else
| Exit Sub
| End if
|
| ou encore mieux:
|
| If DateDiff("d", Me.DATE_PERMIS, date)<= 80 Then
| msgbox("le permis est encore valable " & DateDiff ("d", date, Me.DATE_PERMIS) & " jours")
| Else
| Exit Sub
| End if.

--
--------------------------------------------
Merci de répondre sur le NG
Toutes remarques bienvenues !

Pour un contact direct, utiliser:
en enlevant nospam.

"RaphK34" a écrit dans le message de news:
Avatar
RaphK34
Oups, bien vu pour l'inversion, je n'avais pas fait gaffe ;) Merci

--
--------------------------------------------
Merci de répondre sur le NG
Toutes remarques bienvenues !

Pour un contact direct, utiliser:
en enlevant nospam.

"Eric" a écrit dans le message de news:
| Bonjour Luis,
|
| Ceci devrait suffire :
|
| If DateDiff("d", Date, Me.DATE_PERMIS) <= 80 Then
| MsgBox "le permis est encore valable " _
| & DateDiff("d", Date, Me.DATE_PERMIS) & " jours", vbExclamation
| End If
|
| PS : If ((DateDiff("d", Me.DATE_PERMIS, Int(Now))) <= 80) te renvoie une
| valeur négative si DATE_PERMIS correspond à la date d'échéance du permis,
| postérieure à ce jour, donc le test est vérifié.
| Utilises Date plutot que Now
|
| A+
| Eric
|
| "Luis" écrivait news:044c01c4b839
| $459006d0$:
|
| > Bonjour,
| > Pour être averti à temps de la validité d'un permis avec
| > 80 jour au moins de délai, j'ai mis ce-ci:
| >
| > Dim n As Integer
| > If ((DateDiff("d", Me.DATE_PERMIS, Int(Now))) <= 80) Then
| > n = msgbox("le permis est encore valable " & DateDiff
| > ("d", Int(Now), Me.DATE_PERMIS) & " jours")
| > Else
| > Exit Sub
| > End if.
| > Le problème est qu'avec ça je suis prévenu même 200 jours
| > avant et pas seulement à partir de 80 jours et moins.
| > Qu'est-ce que j'ai encore fait faux?
| > Luis
| >
|
Avatar
Luis
Bonjour,
Merci je vais essayer tout ça.
Luis
-----Message d'origine-----
Bonjour,
Pour être averti à temps de la validité d'un permis avec
80 jour au moins de délai, j'ai mis ce-ci:

Dim n As Integer
If ((DateDiff("d", Me.DATE_PERMIS, Int(Now))) <= 80) Then
n = msgbox("le permis est encore valable " & DateDiff
("d", Int(Now), Me.DATE_PERMIS) & " jours")
Else
Exit Sub
End if.
Le problème est qu'avec ça je suis prévenu même 200 jours
avant et pas seulement à partir de 80 jours et moins.
Qu'est-ce que j'ai encore fait faux?
Luis
.



Avatar
Luis
Bonjour,
Merci grâce à vous je suis parfaitement arrivé, par contre
vous conseillez Date au lieu de Int(now), chez moi date ne
marche pas.
Simptôme: Aucune réponse.
Luis
-----Message d'origine-----
Oups, bien vu pour l'inversion, je n'avais pas fait
gaffe ;) Merci


--
--------------------------------------------
Merci de répondre sur le NG
Toutes remarques bienvenues !

Pour un contact direct, utiliser:
en enlevant nospam.

"Eric" a écrit dans le message de
news:

| Bonjour Luis,
|
| Ceci devrait suffire :
|
| If DateDiff("d", Date, Me.DATE_PERMIS) <= 80 Then
| MsgBox "le permis est encore valable " _
| & DateDiff("d", Date, Me.DATE_PERMIS) & "
jours", vbExclamation

| End If
|
| PS : If ((DateDiff("d", Me.DATE_PERMIS, Int(Now))) <=
80) te renvoie une

| valeur négative si DATE_PERMIS correspond à la date
d'échéance du permis,

| postérieure à ce jour, donc le test est vérifié.
| Utilises Date plutot que Now
|
| A+
| Eric
|
| "Luis" écrivait
news:044c01c4b839

| $459006d0$:
|
| > Bonjour,
| > Pour être averti à temps de la validité d'un permis
avec

| > 80 jour au moins de délai, j'ai mis ce-ci:
| >
| > Dim n As Integer
| > If ((DateDiff("d", Me.DATE_PERMIS, Int(Now))) <= 80)
Then

| > n = msgbox("le permis est encore valable " & DateDiff
| > ("d", Int(Now), Me.DATE_PERMIS) & " jours")
| > Else
| > Exit Sub
| > End if.
| > Le problème est qu'avec ça je suis prévenu même 200
jours

| > avant et pas seulement à partir de 80 jours et moins.
| > Qu'est-ce que j'ai encore fait faux?
| > Luis
| >
|


.



Avatar
RaphK34
C'est étrange, mais dans ce cas Int(now) sera très bien ;)


--
--------------------------------------------
Merci de répondre sur le NG
Toutes remarques bienvenues !

Pour un contact direct, utiliser:
en enlevant nospam.

"Luis" a écrit dans le message de news: 095c01c4bb6b$5701ff60$
Bonjour,
Merci grâce à vous je suis parfaitement arrivé, par contre
vous conseillez Date au lieu de Int(now), chez moi date ne
marche pas.
Simptôme: Aucune réponse.
Luis
-----Message d'origine-----
Oups, bien vu pour l'inversion, je n'avais pas fait
gaffe ;) Merci


--
--------------------------------------------
Merci de répondre sur le NG
Toutes remarques bienvenues !

Pour un contact direct, utiliser:
en enlevant nospam.

"Eric" a écrit dans le message de
news:

| Bonjour Luis,
|
| Ceci devrait suffire :
|
| If DateDiff("d", Date, Me.DATE_PERMIS) <= 80 Then
| MsgBox "le permis est encore valable " _
| & DateDiff("d", Date, Me.DATE_PERMIS) & "
jours", vbExclamation

| End If
|
| PS : If ((DateDiff("d", Me.DATE_PERMIS, Int(Now))) < 80) te renvoie une
| valeur négative si DATE_PERMIS correspond à la date
d'échéance du permis,

| postérieure à ce jour, donc le test est vérifié.
| Utilises Date plutot que Now
|
| A+
| Eric
|
| "Luis" écrivait
news:044c01c4b839

| $459006d0$:
|
| > Bonjour,
| > Pour être averti à temps de la validité d'un permis
avec

| > 80 jour au moins de délai, j'ai mis ce-ci:
| >
| > Dim n As Integer
| > If ((DateDiff("d", Me.DATE_PERMIS, Int(Now))) <= 80)
Then

| > n = msgbox("le permis est encore valable " & DateDiff
| > ("d", Int(Now), Me.DATE_PERMIS) & " jours")
| > Else
| > Exit Sub
| > End if.
| > Le problème est qu'avec ça je suis prévenu même 200
jours

| > avant et pas seulement à partir de 80 jours et moins.
| > Qu'est-ce que j'ai encore fait faux?
| > Luis
| >
|


.