Voila sur mon userform j'ai un champ appel=E9 "valid=E9 conforme le" o=F9
j'inscris une date, sur cette userform j'ai un autre champ appel=E9
"prochain contr=F4le le" et l=E0 je dois ajouter un an par rapport =E0 la
date que j'ai inscrit dans le champs "valid=E9 conforme".
Comment puis faire pour ajouter un an =E0 ma premi=E8re date ?
Un exemple qui rajoute 1 an. A adapter à votre contexte :
Sub test() Var = "12/5/2006" Var2 = Day(Var) & "/" & Month(Var) & "/" & Year(Var) + 1 MsgBox Var2 'ou MsgBox CDate(Var2) End Sub
lSteph
Bonjour, Dans une feuille le pb des années bisextiles est contourné selon le résultat da la fonction date(Année;Mois;Jour) Ce n'est pas une bijection car 29 Fév et 01 Mars font indépendament de la durée en jours 01er Mars sur l'année suivante.
Dans un textbox ajouter un an en vba doit-il s'interprèter par sa durée réelle en jour ou une correspondance date à date à cet effet le 29/2 va planter si on utilise dans le contexte d'un textbox ce que proposé par Garette et qui pourtant me semblerait préférable si cela pouvait marcher comme dans la fonction de feuille. Aussi ce code part du postulat d'ajouter simplement 365 jours. Tu peux adapter un test dans le calcul d'un datediff suivant le choix que tu retiendrais av ou après 29 Février pour le cas où l'année de départ ou celle d'après soit bisextile.
Private Sub TextBox1_AfterUpdate() Dim tst As Boolean
On Error Resume Next tst = IsDate(DateValue(TextBox1)) On Error GoTo 0 If tst = True Then TextBox2 = DateValue(TextBox1) + 365 TextBox1 = DateValue(TextBox1) Else MsgBox "Format de date incorrect" Application.SendKeys "+{TAB}", 1 End If End Sub
'Cdlt.
'lSteph
Bonjour à tous,
Voila sur mon userform j'ai un champ appelé "validé conforme le" où j'inscris une date, sur cette userform j'ai un autre champ appelé "prochain contrôle le" et là je dois ajouter un an par rapport à la date que j'ai inscrit dans le champs "validé conforme".
Comment puis faire pour ajouter un an à ma première date ?
Merci de votre aide
A++
-- - -
Bonjour,
Dans une feuille le pb des années bisextiles
est contourné selon le résultat da la fonction
date(Année;Mois;Jour)
Ce n'est pas une bijection car 29 Fév et 01 Mars font indépendament de
la durée en jours 01er Mars sur l'année suivante.
Dans un textbox ajouter un an en vba doit-il s'interprèter par sa durée
réelle en jour ou une correspondance date à date à cet effet le 29/2 va
planter si on utilise dans le contexte d'un textbox ce que proposé par
Garette et qui pourtant me semblerait préférable si cela pouvait
marcher comme dans la fonction de feuille.
Aussi ce code part du postulat d'ajouter simplement 365 jours.
Tu peux adapter un test dans le calcul d'un datediff suivant le choix
que tu retiendrais av ou après 29 Février pour le cas où l'année de
départ ou celle d'après soit bisextile.
Private Sub TextBox1_AfterUpdate()
Dim tst As Boolean
On Error Resume Next
tst = IsDate(DateValue(TextBox1))
On Error GoTo 0
If tst = True Then
TextBox2 = DateValue(TextBox1) + 365
TextBox1 = DateValue(TextBox1)
Else
MsgBox "Format de date incorrect"
Application.SendKeys "+{TAB}", 1
End If
End Sub
'Cdlt.
'lSteph
Bonjour à tous,
Voila sur mon userform j'ai un champ appelé "validé conforme le" où
j'inscris une date, sur cette userform j'ai un autre champ appelé
"prochain contrôle le" et là je dois ajouter un an par rapport à la
date que j'ai inscrit dans le champs "validé conforme".
Comment puis faire pour ajouter un an à ma première date ?
Bonjour, Dans une feuille le pb des années bisextiles est contourné selon le résultat da la fonction date(Année;Mois;Jour) Ce n'est pas une bijection car 29 Fév et 01 Mars font indépendament de la durée en jours 01er Mars sur l'année suivante.
Dans un textbox ajouter un an en vba doit-il s'interprèter par sa durée réelle en jour ou une correspondance date à date à cet effet le 29/2 va planter si on utilise dans le contexte d'un textbox ce que proposé par Garette et qui pourtant me semblerait préférable si cela pouvait marcher comme dans la fonction de feuille. Aussi ce code part du postulat d'ajouter simplement 365 jours. Tu peux adapter un test dans le calcul d'un datediff suivant le choix que tu retiendrais av ou après 29 Février pour le cas où l'année de départ ou celle d'après soit bisextile.
Private Sub TextBox1_AfterUpdate() Dim tst As Boolean
On Error Resume Next tst = IsDate(DateValue(TextBox1)) On Error GoTo 0 If tst = True Then TextBox2 = DateValue(TextBox1) + 365 TextBox1 = DateValue(TextBox1) Else MsgBox "Format de date incorrect" Application.SendKeys "+{TAB}", 1 End If End Sub
'Cdlt.
'lSteph
Bonjour à tous,
Voila sur mon userform j'ai un champ appelé "validé conforme le" où j'inscris une date, sur cette userform j'ai un autre champ appelé "prochain contrôle le" et là je dois ajouter un an par rapport à la date que j'ai inscrit dans le champs "validé conforme".
Comment puis faire pour ajouter un an à ma première date ?
Merci de votre aide
A++
-- - -
Garette
Re,
Effectivement, je n'avais pas géré les années bisextiles. La solution de ISteph est préférable, elle permet de gérer une durée fixe.
Toutefois, pour un affichage date à date, la fonction DateAdd gère les années bisextiles de la façon suivante : 28/2/2004 + 1 an = 28/2/2005 29/2/2004 + 1 an = 28/2/2005 1/3/2004 + 1 an = 1/3/2005
Sub test2() Var = "29/2/2004" Var2 = DateAdd("yyyy", 1, Var) MsgBox CDate(Var2) End Sub
Re,
Effectivement, je n'avais pas géré les années bisextiles.
La solution de ISteph est préférable, elle permet de gérer une durée fixe.
Toutefois, pour un affichage date à date, la fonction DateAdd gère les
années bisextiles de la façon suivante :
28/2/2004 + 1 an = 28/2/2005
29/2/2004 + 1 an = 28/2/2005
1/3/2004 + 1 an = 1/3/2005
Sub test2()
Var = "29/2/2004"
Var2 = DateAdd("yyyy", 1, Var)
MsgBox CDate(Var2)
End Sub
Effectivement, je n'avais pas géré les années bisextiles. La solution de ISteph est préférable, elle permet de gérer une durée fixe.
Toutefois, pour un affichage date à date, la fonction DateAdd gère les années bisextiles de la façon suivante : 28/2/2004 + 1 an = 28/2/2005 29/2/2004 + 1 an = 28/2/2005 1/3/2004 + 1 an = 1/3/2005
Sub test2() Var = "29/2/2004" Var2 = DateAdd("yyyy", 1, Var) MsgBox CDate(Var2) End Sub
lSteph
Bonjour Garette, Bien vu! ce qui nous donne:
Private Sub TextBox1_AfterUpdate() Dim tst As Boolean
On Error Resume Next tst = IsDate(DateValue(TextBox1)) On Error GoTo 0 If tst = True Then TextBox2 = DateAdd("yyyy", 1, DateValue(TextBox1)) TextBox1 = DateValue(TextBox1) Else MsgBox "Format de date incorrect" Application.SendKeys "+{TAB}", 1 End If End Sub
'Cdlt
'lSteph
Garette a exposé le 10/12/2006 :
Re,
Effectivement, je n'avais pas géré les années bisextiles. La solution de ISteph est préférable, elle permet de gérer une durée fixe.
Toutefois, pour un affichage date à date, la fonction DateAdd gère les années bisextiles de la façon suivante : 28/2/2004 + 1 an = 28/2/2005 29/2/2004 + 1 an = 28/2/2005 1/3/2004 + 1 an = 1/3/2005
Sub test2() Var = "29/2/2004" Var2 = DateAdd("yyyy", 1, Var) MsgBox CDate(Var2) End Sub
-- - -
Bonjour Garette,
Bien vu! ce qui nous donne:
Private Sub TextBox1_AfterUpdate()
Dim tst As Boolean
On Error Resume Next
tst = IsDate(DateValue(TextBox1))
On Error GoTo 0
If tst = True Then
TextBox2 = DateAdd("yyyy", 1, DateValue(TextBox1))
TextBox1 = DateValue(TextBox1)
Else
MsgBox "Format de date incorrect"
Application.SendKeys "+{TAB}", 1
End If
End Sub
'Cdlt
'lSteph
Garette a exposé le 10/12/2006 :
Re,
Effectivement, je n'avais pas géré les années bisextiles.
La solution de ISteph est préférable, elle permet de gérer une durée fixe.
Toutefois, pour un affichage date à date, la fonction DateAdd gère les années
bisextiles de la façon suivante :
28/2/2004 + 1 an = 28/2/2005
29/2/2004 + 1 an = 28/2/2005
1/3/2004 + 1 an = 1/3/2005
Sub test2()
Var = "29/2/2004"
Var2 = DateAdd("yyyy", 1, Var)
MsgBox CDate(Var2)
End Sub
Private Sub TextBox1_AfterUpdate() Dim tst As Boolean
On Error Resume Next tst = IsDate(DateValue(TextBox1)) On Error GoTo 0 If tst = True Then TextBox2 = DateAdd("yyyy", 1, DateValue(TextBox1)) TextBox1 = DateValue(TextBox1) Else MsgBox "Format de date incorrect" Application.SendKeys "+{TAB}", 1 End If End Sub
'Cdlt
'lSteph
Garette a exposé le 10/12/2006 :
Re,
Effectivement, je n'avais pas géré les années bisextiles. La solution de ISteph est préférable, elle permet de gérer une durée fixe.
Toutefois, pour un affichage date à date, la fonction DateAdd gère les années bisextiles de la façon suivante : 28/2/2004 + 1 an = 28/2/2005 29/2/2004 + 1 an = 28/2/2005 1/3/2004 + 1 an = 1/3/2005
Sub test2() Var = "29/2/2004" Var2 = DateAdd("yyyy", 1, Var) MsgBox CDate(Var2) End Sub
Voila sur mon userform j'ai un champ appelé "validé conforme le" où j'inscris une date, sur cette userform j'ai un autre champ appelé "prochain contrôle le" et là je dois ajouter un an par rapport à la date que j'ai inscrit dans le champs "validé conforme".
Comment puis faire pour ajouter un an à ma première date ?
Voila sur mon userform j'ai un champ appelé "validé conforme le" où
j'inscris une date, sur cette userform j'ai un autre champ appelé
"prochain contrôle le" et là je dois ajouter un an par rapport à la
date que j'ai inscrit dans le champs "validé conforme".
Comment puis faire pour ajouter un an à ma première date ?
Voila sur mon userform j'ai un champ appelé "validé conforme le" où j'inscris une date, sur cette userform j'ai un autre champ appelé "prochain contrôle le" et là je dois ajouter un an par rapport à la date que j'ai inscrit dans le champs "validé conforme".
Comment puis faire pour ajouter un an à ma première date ?
Merci de votre aide
A++
JB
En utilisant la macro complémentaire Utilitaire Analyse:
Voila sur mon userform j'ai un champ appelé "validé conforme le" où j'inscris une date, sur cette userform j'ai un autre champ appelé "prochain contrôle le" et là je dois ajouter un an par rapport à la date que j'ai inscrit dans le champs "validé conforme".
Comment puis faire pour ajouter un an à ma première date ?
Merci de votre aide
A++
En utilisant la macro complémentaire Utilitaire Analyse:
Voila sur mon userform j'ai un champ appelé "validé conforme le" où
j'inscris une date, sur cette userform j'ai un autre champ appelé
"prochain contrôle le" et là je dois ajouter un an par rapport à la
date que j'ai inscrit dans le champs "validé conforme".
Comment puis faire pour ajouter un an à ma première date ?
Voila sur mon userform j'ai un champ appelé "validé conforme le" où j'inscris une date, sur cette userform j'ai un autre champ appelé "prochain contrôle le" et là je dois ajouter un an par rapport à la date que j'ai inscrit dans le champs "validé conforme".
Comment puis faire pour ajouter un an à ma première date ?
Merci de votre aide
A++
lolo
Salut
j'ai un soucis mes champs sont les suivants daterecep et dateexpe Je voudrais quand je met une date dans daterecep la date s'inscrive dans dateexpe avec un an de plus
je fais donc cela : [CODE] Private Sub dateexpe_Change() datexpe.Text = Format(daterecep.Text, "dd/mm/") & Year(daterecep.Text) + 1 End Sub[/CODE]
Rien à faire rien ne s'affiche dans mon champ dateexpe....
Pouvez vous m'aider
Merci beaucoup
A++
Salut
j'ai un soucis mes champs sont les suivants daterecep et dateexpe
Je voudrais quand je met une date dans daterecep la date s'inscrive
dans dateexpe avec un an de plus
je fais donc cela :
[CODE]
Private Sub dateexpe_Change()
datexpe.Text = Format(daterecep.Text, "dd/mm/") & Year(daterecep.Text)
+ 1
End Sub[/CODE]
Rien à faire rien ne s'affiche dans mon champ dateexpe....
j'ai un soucis mes champs sont les suivants daterecep et dateexpe Je voudrais quand je met une date dans daterecep la date s'inscrive dans dateexpe avec un an de plus
je fais donc cela : [CODE] Private Sub dateexpe_Change() datexpe.Text = Format(daterecep.Text, "dd/mm/") & Year(daterecep.Text) + 1 End Sub[/CODE]
Rien à faire rien ne s'affiche dans mon champ dateexpe....
Pouvez vous m'aider
Merci beaucoup
A++
JB
Voir PJ: http://cjoint.com/?mkuk3IlssK
Private Sub daterecep_AfterUpdate() Temp = DateSerial(Year(Me.dateRecep) + 1, Month(Me.dateRecep), Day(Me.dateRecep)) Me.dateexpe = IIf(Month(Temp) <> Month(Me.dateRecep), Temp - 1, Temp) End Sub
JB
Salut
j'ai un soucis mes champs sont les suivants daterecep et dateexpe Je voudrais quand je met une date dans daterecep la date s'inscrive dans dateexpe avec un an de plus
je fais donc cela : [CODE] Private Sub dateexpe_Change() datexpe.Text = Format(daterecep.Text, "dd/mm/") & Year(daterecep.Text) + 1 End Sub[/CODE]
Rien à faire rien ne s'affiche dans mon champ dateexpe....
Pouvez vous m'aider
Merci beaucoup
A++
Voir PJ: http://cjoint.com/?mkuk3IlssK
Private Sub daterecep_AfterUpdate()
Temp = DateSerial(Year(Me.dateRecep) + 1, Month(Me.dateRecep),
Day(Me.dateRecep))
Me.dateexpe = IIf(Month(Temp) <> Month(Me.dateRecep), Temp - 1, Temp)
End Sub
JB
Salut
j'ai un soucis mes champs sont les suivants daterecep et dateexpe
Je voudrais quand je met une date dans daterecep la date s'inscrive
dans dateexpe avec un an de plus
je fais donc cela :
[CODE]
Private Sub dateexpe_Change()
datexpe.Text = Format(daterecep.Text, "dd/mm/") & Year(daterecep.Text)
+ 1
End Sub[/CODE]
Rien à faire rien ne s'affiche dans mon champ dateexpe....
Private Sub daterecep_AfterUpdate() Temp = DateSerial(Year(Me.dateRecep) + 1, Month(Me.dateRecep), Day(Me.dateRecep)) Me.dateexpe = IIf(Month(Temp) <> Month(Me.dateRecep), Temp - 1, Temp) End Sub
JB
Salut
j'ai un soucis mes champs sont les suivants daterecep et dateexpe Je voudrais quand je met une date dans daterecep la date s'inscrive dans dateexpe avec un an de plus
je fais donc cela : [CODE] Private Sub dateexpe_Change() datexpe.Text = Format(daterecep.Text, "dd/mm/") & Year(daterecep.Text) + 1 End Sub[/CODE]
Rien à faire rien ne s'affiche dans mon champ dateexpe....
Pouvez vous m'aider
Merci beaucoup
A++
lSteph
Bonsoir,
Est-ce que tu as lu ce que Garette et moi t'avons proposé, cela permet d'ajouter une année sans que cela plante dans un textbox avec message erreur si saisie date non valide.
Cdlt.
lSteph
Il se trouve que lolo a formulé :
Salut
j'ai un soucis mes champs sont les suivants daterecep et dateexpe Je voudrais quand je met une date dans daterecep la date s'inscrive dans dateexpe avec un an de plus
je fais donc cela : [CODE] Private Sub dateexpe_Change() datexpe.Text = Format(daterecep.Text, "dd/mm/") & Year(daterecep.Text) + 1 End Sub[/CODE]
Rien à faire rien ne s'affiche dans mon champ dateexpe....
Pouvez vous m'aider
Merci beaucoup
A++
-- - -
Bonsoir,
Est-ce que tu as lu ce que Garette et moi t'avons proposé,
cela permet d'ajouter une année sans que cela plante dans
un textbox avec message erreur si saisie date non valide.
Cdlt.
lSteph
Il se trouve que lolo a formulé :
Salut
j'ai un soucis mes champs sont les suivants daterecep et dateexpe
Je voudrais quand je met une date dans daterecep la date s'inscrive
dans dateexpe avec un an de plus
je fais donc cela :
[CODE]
Private Sub dateexpe_Change()
datexpe.Text = Format(daterecep.Text, "dd/mm/") & Year(daterecep.Text)
+ 1
End Sub[/CODE]
Rien à faire rien ne s'affiche dans mon champ dateexpe....
Est-ce que tu as lu ce que Garette et moi t'avons proposé, cela permet d'ajouter une année sans que cela plante dans un textbox avec message erreur si saisie date non valide.
Cdlt.
lSteph
Il se trouve que lolo a formulé :
Salut
j'ai un soucis mes champs sont les suivants daterecep et dateexpe Je voudrais quand je met une date dans daterecep la date s'inscrive dans dateexpe avec un an de plus
je fais donc cela : [CODE] Private Sub dateexpe_Change() datexpe.Text = Format(daterecep.Text, "dd/mm/") & Year(daterecep.Text) + 1 End Sub[/CODE]
Rien à faire rien ne s'affiche dans mon champ dateexpe....
Pouvez vous m'aider
Merci beaucoup
A++
-- - -
lolo
Bonsoir,
Impec ca fonctionne parfaitement merci de votre coup de main !!!
A++
Bonsoir,
Impec ca fonctionne parfaitement merci de votre coup de main !!!