OVH Cloud OVH Cloud

Format date + 2 mois en VBA

9 réponses
Avatar
Didier
Bonjour.
J'essaie d'écrire en VBA.

j'ai une date dans textbox1 et si textbox2 est supérieur de 2 mois à
textbox1 alors
textbox3 ="NON", sinon textbox3 ="OUI"

Merci beaucoup
Didier

9 réponses

Avatar
Hervé
Salut Didier,
Peut être ceci ?

TextBox3 = IIf(Month(CDate(TextBox2)) _
- Month(CDate(TextBox1)) > 2, _
"Non", _
"Oui")

Hervé.

"Didier" a écrit dans le message news:
ey6p$
Bonjour.
J'essaie d'écrire en VBA.

j'ai une date dans textbox1 et si textbox2 est supérieur de 2 mois à
textbox1 alors
textbox3 ="NON", sinon textbox3 ="OUI"

Merci beaucoup
Didier





Avatar
Didier
Merci beaucoup Hervé
c'est parfait
Bonne soirée
Didier

"Hervé" a écrit dans le message de news:
%
Salut Didier,
Peut être ceci ?

TextBox3 = IIf(Month(CDate(TextBox2)) _
- Month(CDate(TextBox1)) > 2, _
"Non", _
"Oui")

Hervé.

"Didier" a écrit dans le message news:
ey6p$
Bonjour.
J'essaie d'écrire en VBA.

j'ai une date dans textbox1 et si textbox2 est supérieur de 2 mois à
textbox1 alors
textbox3 ="NON", sinon textbox3 ="OUI"

Merci beaucoup
Didier









Avatar
Didier
Re Hervé
en fait juste un petit pb, il faudrait tenir compte également de l'année
car si j'ai 10/05/04 et 10/05/05 cela ne fonctionne pas car il ne tient
compte que des mois.
Encore merci
Didier

"Hervé" a écrit dans le message de news:
%
Salut Didier,
Peut être ceci ?

TextBox3 = IIf(Month(CDate(TextBox2)) _
- Month(CDate(TextBox1)) > 2, _
"Non", _
"Oui")

Hervé.

"Didier" a écrit dans le message news:
ey6p$
Bonjour.
J'essaie d'écrire en VBA.

j'ai une date dans textbox1 et si textbox2 est supérieur de 2 mois à
textbox1 alors
textbox3 ="NON", sinon textbox3 ="OUI"

Merci beaucoup
Didier









Avatar
Clément Marcotte
Bonjour,

Sub QueMettreDansTextBox3()
'Utilise la fonction DatePlus() pour ajouter 2 mois
'à la date initiale et tester l'écart
If DatePlus(CDate(UserForm1.TextBox1.Value), 2, "m") >
CDate(UserForm1.TextBox2.Value) Then
UserForm1.TextBox3.Value = "NON"
Else
UserForm1.TextBox3.Value = "OUI"
End If
End Sub
Function DatePlus(ladate, nombre As Integer _
, Optional unite As String)
'Clément Marcotte
'Amos (Québec)
'Retourne une date de x unités temporelles
'après une date pré-déterminée
'Si l'unité est omise, le jour est choisi par défaut
'unité a = année
'unité j = jour
'unité m = mois
Dim premieredate As Date, lejour As Integer
Dim lemois As Integer, lannee As Integer
Dim nouvelledate As Date
premieredate = CDate(ladate)
lejour = Day(premieredate)
lemois = Month(premieredate)
lannee = Year(premieredate)
Select Case UCase(unite)
Case "", "J"
nouvelledate = DateSerial(lannee, lemois, lejour + nombre)
Case "M"
nouvelledate = DateSerial(lannee, lemois + nombre, lejour)
Case "A"
nouvelledate = DateSerial(lannee + nombre, lemois, lejour)
Case Else
End Select
DatePlus = FormatDateTime(nouvelledate)
End Function


"Didier" a écrit dans le message de
news:
Re Hervé
en fait juste un petit pb, il faudrait tenir compte également de
l'année

car si j'ai 10/05/04 et 10/05/05 cela ne fonctionne pas car il ne
tient

compte que des mois.
Encore merci
Didier

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

%
Salut Didier,
Peut être ceci ?

TextBox3 = IIf(Month(CDate(TextBox2)) _
- Month(CDate(TextBox1)) > 2, _
"Non", _
"Oui")

Hervé.

"Didier" a écrit dans le message news:
ey6p$
Bonjour.
J'essaie d'écrire en VBA.

j'ai une date dans textbox1 et si textbox2 est supérieur de 2
mois à



textbox1 alors
textbox3 ="NON", sinon textbox3 ="OUI"

Merci beaucoup
Didier













Avatar
Didier
Bonjour Clément et merci, je teste depuis 1 heure, cela ne fonctionne pas.
J'essaie de comprendre le fonctionnement de cette procédure afin d'essayer
d'y remédier.
Encore merci
Didier

"Clément Marcotte" a écrit dans le message
de news: %
Bonjour,

Sub QueMettreDansTextBox3()
'Utilise la fonction DatePlus() pour ajouter 2 mois
'à la date initiale et tester l'écart
If DatePlus(CDate(UserForm1.TextBox1.Value), 2, "m") >
CDate(UserForm1.TextBox2.Value) Then
UserForm1.TextBox3.Value = "NON"
Else
UserForm1.TextBox3.Value = "OUI"
End If
End Sub
Function DatePlus(ladate, nombre As Integer _
, Optional unite As String)
'Clément Marcotte
'Amos (Québec)
'Retourne une date de x unités temporelles
'après une date pré-déterminée
'Si l'unité est omise, le jour est choisi par défaut
'unité a = année
'unité j = jour
'unité m = mois
Dim premieredate As Date, lejour As Integer
Dim lemois As Integer, lannee As Integer
Dim nouvelledate As Date
premieredate = CDate(ladate)
lejour = Day(premieredate)
lemois = Month(premieredate)
lannee = Year(premieredate)
Select Case UCase(unite)
Case "", "J"
nouvelledate = DateSerial(lannee, lemois, lejour + nombre)
Case "M"
nouvelledate = DateSerial(lannee, lemois + nombre, lejour)
Case "A"
nouvelledate = DateSerial(lannee + nombre, lemois, lejour)
Case Else
End Select
DatePlus = FormatDateTime(nouvelledate)
End Function


"Didier" a écrit dans le message de
news:
Re Hervé
en fait juste un petit pb, il faudrait tenir compte également de
l'année

car si j'ai 10/05/04 et 10/05/05 cela ne fonctionne pas car il ne
tient

compte que des mois.
Encore merci
Didier

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

%
Salut Didier,
Peut être ceci ?

TextBox3 = IIf(Month(CDate(TextBox2)) _
- Month(CDate(TextBox1)) > 2, _
"Non", _
"Oui")

Hervé.

"Didier" a écrit dans le message news:
ey6p$
Bonjour.
J'essaie d'écrire en VBA.

j'ai une date dans textbox1 et si textbox2 est supérieur de 2
mois à



textbox1 alors
textbox3 ="NON", sinon textbox3 ="OUI"

Merci beaucoup
Didier
















Avatar
AV
en fait juste un petit pb, il faudrait tenir compte également de l'année
car si j'ai 10/05/04 et 10/05/05 cela ne fonctionne pas car il ne tient
compte que des mois.


A adapter :

If DateSerial(Year(date1), Month(date1) + 2, Day(date1)) _
<= date2 Then MsgBox "OUI" Else MsgBox "NON"

AV

Avatar
Didier
Bonjour AV
Merci beaucoup cela fonctionne impec
j'ai juste un peu adapté et tout roule encore merci, c'est génial
Bonne journée
Didier

If DateSerial(Year(frm_saisie.TextBox1), Month(frm_saisie.TextBox1) + 2,
Day(frm_saisie.TextBox1)) _
<= CDate(frm_saisie.TextBox2) Then TextBox3 = "OUI" Else TextBox3 = "NON"

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

en fait juste un petit pb, il faudrait tenir compte également de l'année
car si j'ai 10/05/04 et 10/05/05 cela ne fonctionne pas car il ne tient
compte que des mois.


A adapter :

If DateSerial(Year(date1), Month(date1) + 2, Day(date1)) _
<= date2 Then MsgBox "OUI" Else MsgBox "NON"

AV





Avatar
Clément Marcotte
Bonjour,

Mon fichier vite fait, pas trop esthétique est là:

http://cjoint.com/?mtqrn1XZd6

Tu lances la macro onpart par les menus


"Didier" a écrit dans le message de
news:ur%
Bonjour Clément et merci, je teste depuis 1 heure, cela ne
fonctionne pas.

J'essaie de comprendre le fonctionnement de cette procédure afin
d'essayer

d'y remédier.
Encore merci
Didier

"Clément Marcotte" a écrit dans le
message

de news: %
Bonjour,

Sub QueMettreDansTextBox3()
'Utilise la fonction DatePlus() pour ajouter 2 mois
'à la date initiale et tester l'écart
If DatePlus(CDate(UserForm1.TextBox1.Value), 2, "m") >
CDate(UserForm1.TextBox2.Value) Then
UserForm1.TextBox3.Value = "NON"
Else
UserForm1.TextBox3.Value = "OUI"
End If
End Sub
Function DatePlus(ladate, nombre As Integer _
, Optional unite As String)
'Clément Marcotte
'Amos (Québec)
'Retourne une date de x unités temporelles
'après une date pré-déterminée
'Si l'unité est omise, le jour est choisi par défaut
'unité a = année
'unité j = jour
'unité m = mois
Dim premieredate As Date, lejour As Integer
Dim lemois As Integer, lannee As Integer
Dim nouvelledate As Date
premieredate = CDate(ladate)
lejour = Day(premieredate)
lemois = Month(premieredate)
lannee = Year(premieredate)
Select Case UCase(unite)
Case "", "J"
nouvelledate = DateSerial(lannee, lemois, lejour + nombre)
Case "M"
nouvelledate = DateSerial(lannee, lemois + nombre, lejour)
Case "A"
nouvelledate = DateSerial(lannee + nombre, lemois, lejour)
Case Else
End Select
DatePlus = FormatDateTime(nouvelledate)
End Function


"Didier" a écrit dans le message de
news:
Re Hervé
en fait juste un petit pb, il faudrait tenir compte également de
l'année

car si j'ai 10/05/04 et 10/05/05 cela ne fonctionne pas car il ne
tient

compte que des mois.
Encore merci
Didier

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

%
Salut Didier,
Peut être ceci ?

TextBox3 = IIf(Month(CDate(TextBox2)) _
- Month(CDate(TextBox1)) > 2, _
"Non", _
"Oui")

Hervé.

"Didier" a écrit dans le message news:
ey6p$
Bonjour.
J'essaie d'écrire en VBA.

j'ai une date dans textbox1 et si textbox2 est supérieur de 2
mois à



textbox1 alors
textbox3 ="NON", sinon textbox3 ="OUI"

Merci beaucoup
Didier




















Avatar
Didier
Merci beaucoup Clément cela fonctionne parfaitement
Bonne soirée
Didier

"Clément Marcotte" a écrit dans le message
de news:
Bonjour,

Mon fichier vite fait, pas trop esthétique est là:

http://cjoint.com/?mtqrn1XZd6

Tu lances la macro onpart par les menus


"Didier" a écrit dans le message de
news:ur%
Bonjour Clément et merci, je teste depuis 1 heure, cela ne
fonctionne pas.

J'essaie de comprendre le fonctionnement de cette procédure afin
d'essayer

d'y remédier.
Encore merci
Didier

"Clément Marcotte" a écrit dans le
message

de news: %
Bonjour,

Sub QueMettreDansTextBox3()
'Utilise la fonction DatePlus() pour ajouter 2 mois
'à la date initiale et tester l'écart
If DatePlus(CDate(UserForm1.TextBox1.Value), 2, "m") >
CDate(UserForm1.TextBox2.Value) Then
UserForm1.TextBox3.Value = "NON"
Else
UserForm1.TextBox3.Value = "OUI"
End If
End Sub
Function DatePlus(ladate, nombre As Integer _
, Optional unite As String)
'Clément Marcotte
'Amos (Québec)
'Retourne une date de x unités temporelles
'après une date pré-déterminée
'Si l'unité est omise, le jour est choisi par défaut
'unité a = année
'unité j = jour
'unité m = mois
Dim premieredate As Date, lejour As Integer
Dim lemois As Integer, lannee As Integer
Dim nouvelledate As Date
premieredate = CDate(ladate)
lejour = Day(premieredate)
lemois = Month(premieredate)
lannee = Year(premieredate)
Select Case UCase(unite)
Case "", "J"
nouvelledate = DateSerial(lannee, lemois, lejour + nombre)
Case "M"
nouvelledate = DateSerial(lannee, lemois + nombre, lejour)
Case "A"
nouvelledate = DateSerial(lannee + nombre, lemois, lejour)
Case Else
End Select
DatePlus = FormatDateTime(nouvelledate)
End Function


"Didier" a écrit dans le message de
news:
Re Hervé
en fait juste un petit pb, il faudrait tenir compte également de
l'année

car si j'ai 10/05/04 et 10/05/05 cela ne fonctionne pas car il ne
tient

compte que des mois.
Encore merci
Didier

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

%
Salut Didier,
Peut être ceci ?

TextBox3 = IIf(Month(CDate(TextBox2)) _
- Month(CDate(TextBox1)) > 2, _
"Non", _
"Oui")

Hervé.

"Didier" a écrit dans le message news:
ey6p$
Bonjour.
J'essaie d'écrire en VBA.

j'ai une date dans textbox1 et si textbox2 est supérieur de 2
mois à



textbox1 alors
textbox3 ="NON", sinon textbox3 ="OUI"

Merci beaucoup
Didier