Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Date mensuelle

21 réponses
Avatar
Patou
Bonjour à tous,
Je souhaiterais faire en Visual basic un petit module qui me donnerais les
dates mensuelles en partant d'un jour que j'aurai entré sur un TextBox.
Exemple: entrer le 12 et avoir sur ma feuille correspondante a1=10/01/2009
a2 10/02/2009 etc. en sachant que je sais créer une boucle avec un compteur,
mais le problème est la modif du mois, surtout dans le cas d'un 29, 30 ou
31.
Je pense, que j'arriverais à bidouiller un truc à la flan? Mais j'aimerais
avoir quelque chose de plus "pro".
D'avance merci à vous
Patrick

10 réponses

1 2 3
Avatar
MichDenis
Bonjour Garnote,

Je trouve ta formule un peu longue ....!
;-)
Ceci devrait être suffisant :
ÚTE(2009;LIGNE();MIN(JOUR(DATE(2009;LIGNE()+1;0));quantieme))

Et en vba, on pourrait faire ceci pour insérer les dates dans la plage de cellules

'--------------------------------------
Sub test()
Dim Quantieme As Integer
Dim An As Long

Quantieme = 15 'utilise le nom du textbox contenant ta valeur
An = Year(Date)
With Worksheets("Feuil1")
With .Range("A1:A12")
'Copie la formule dans la plage de cellules
.Formula = "ÚTE(" & An & ",ROW(),MIN(DAY(DATE(" & _
An & ",ROW()+1,0))," & Quantieme & "))"
'Pour remplacer la formule par sa valeur
.Value = .Value
End With
End With
End Sub
'--------------------------------------


"garnote" a écrit dans le message de groupe de discussion :

Salut Patou,

Pour le plaisir, une formule qui semble convenir à ton besoin :
ÚTE(2009;LIGNE();MIN(JOUR(FIN.MOIS(DATE(2009;LIGNE();1);0));quantieme))
Est-ce le cas ?
En supposant que la cellule contenant un nombre entier de 1 à 31 se nomme
"quantieme",
tu copies la formule dans la première ligne d'une colonne et tu la tires
vers le bas.
Si elle donne de bons résultats, il serait sûrement possible de l'utiliser à
partir de ton TextBox.

Serge


"Patou" a écrit dans le message de news:
C699D2A0.27D%
Bonjour à tous,
Je souhaiterais faire en Visual basic un petit module qui me donnerais les
dates mensuelles en partant d'un jour que j'aurai entré sur un TextBox.
Exemple: entrer le 12 et avoir sur ma feuille correspondante a1/01/2009
a2 10/02/2009 etc. en sachant que je sais créer une boucle avec un
compteur,
mais le problème est la modif du mois, surtout dans le cas d'un 29, 30 ou
31.
Je pense, que j'arriverais à bidouiller un truc à la flan? Mais j'aimerais
avoir quelque chose de plus "pro".
D'avance merci à vous
Patrick



Avatar
garnote
Ave Denis,
;-)

Et pour une formule tenant compte de l'année en cours du quantièeme spécifié
:
ÚTE(ANNEE(AUJOURDHUI());LIGNE();MIN(JOUR(DATE(ANNEE(AUJOURDHUI());LIGNE()+1;0));quantieme))
Peux-tu me la simplifier ?

Serge





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

Bonjour Garnote,

Je trouve ta formule un peu longue ....!
;-)
Ceci devrait être suffisant :
ÚTE(2009;LIGNE();MIN(JOUR(DATE(2009;LIGNE()+1;0));quantieme))

Et en vba, on pourrait faire ceci pour insérer les dates dans la plage de
cellules

'--------------------------------------
Sub test()
Dim Quantieme As Integer
Dim An As Long

Quantieme = 15 'utilise le nom du textbox contenant ta valeur
An = Year(Date)
With Worksheets("Feuil1")
With .Range("A1:A12")
'Copie la formule dans la plage de cellules
.Formula = "ÚTE(" & An & ",ROW(),MIN(DAY(DATE(" & _
An & ",ROW()+1,0))," & Quantieme & "))"
'Pour remplacer la formule par sa valeur
.Value = .Value
End With
End With
End Sub
'--------------------------------------


"garnote" a écrit dans le message de groupe de
discussion :

Salut Patou,

Pour le plaisir, une formule qui semble convenir à ton besoin :
ÚTE(2009;LIGNE();MIN(JOUR(FIN.MOIS(DATE(2009;LIGNE();1);0));quantieme))
Est-ce le cas ?
En supposant que la cellule contenant un nombre entier de 1 à 31 se nomme
"quantieme",
tu copies la formule dans la première ligne d'une colonne et tu la tires
vers le bas.
Si elle donne de bons résultats, il serait sûrement possible de l'utiliser
à
partir de ton TextBox.

Serge


"Patou" a écrit dans le message de news:
C699D2A0.27D%
Bonjour à tous,
Je souhaiterais faire en Visual basic un petit module qui me donnerais
les
dates mensuelles en partant d'un jour que j'aurai entré sur un TextBox.
Exemple: entrer le 12 et avoir sur ma feuille correspondante
a1/01/2009
a2 10/02/2009 etc. en sachant que je sais créer une boucle avec un
compteur,
mais le problème est la modif du mois, surtout dans le cas d'un 29, 30 ou
31.
Je pense, que j'arriverais à bidouiller un truc à la flan? Mais
j'aimerais
avoir quelque chose de plus "pro".
D'avance merci à vous
Patrick






Avatar
MichDenis
Je crois que Patou a suffisamment de suggestions !
Moi, je quitte pour la soirée !



"garnote" a écrit dans le message de groupe de discussion :
#
Ave Denis,
;-)

Et pour une formule tenant compte de l'année en cours du quantièeme spécifié
:
ÚTE(ANNEE(AUJOURDHUI());LIGNE();MIN(JOUR(DATE(ANNEE(AUJOURDHUI());LIGNE()+1;0));quantieme))
Peux-tu me la simplifier ?

Serge





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

Bonjour Garnote,

Je trouve ta formule un peu longue ....!
;-)
Ceci devrait être suffisant :
ÚTE(2009;LIGNE();MIN(JOUR(DATE(2009;LIGNE()+1;0));quantieme))

Et en vba, on pourrait faire ceci pour insérer les dates dans la plage de
cellules

'--------------------------------------
Sub test()
Dim Quantieme As Integer
Dim An As Long

Quantieme = 15 'utilise le nom du textbox contenant ta valeur
An = Year(Date)
With Worksheets("Feuil1")
With .Range("A1:A12")
'Copie la formule dans la plage de cellules
.Formula = "ÚTE(" & An & ",ROW(),MIN(DAY(DATE(" & _
An & ",ROW()+1,0))," & Quantieme & "))"
'Pour remplacer la formule par sa valeur
.Value = .Value
End With
End With
End Sub
'--------------------------------------


"garnote" a écrit dans le message de groupe de
discussion :

Salut Patou,

Pour le plaisir, une formule qui semble convenir à ton besoin :
ÚTE(2009;LIGNE();MIN(JOUR(FIN.MOIS(DATE(2009;LIGNE();1);0));quantieme))
Est-ce le cas ?
En supposant que la cellule contenant un nombre entier de 1 à 31 se nomme
"quantieme",
tu copies la formule dans la première ligne d'une colonne et tu la tires
vers le bas.
Si elle donne de bons résultats, il serait sûrement possible de l'utiliser
à
partir de ton TextBox.

Serge


"Patou" a écrit dans le message de news:
C699D2A0.27D%
Bonjour à tous,
Je souhaiterais faire en Visual basic un petit module qui me donnerais
les
dates mensuelles en partant d'un jour que j'aurai entré sur un TextBox.
Exemple: entrer le 12 et avoir sur ma feuille correspondante
a1/01/2009
a2 10/02/2009 etc. en sachant que je sais créer une boucle avec un
compteur,
mais le problème est la modif du mois, surtout dans le cas d'un 29, 30 ou
31.
Je pense, que j'arriverais à bidouiller un truc à la flan? Mais
j'aimerais
avoir quelque chose de plus "pro".
D'avance merci à vous
Patrick






Avatar
garnote
> Moi, je quitte pour la soirée !


Alors Bon vent, je fais de même.

"MichDenis" a écrit dans le message de news:
%
Je crois que Patou a suffisamment de suggestions !
Moi, je quitte pour la soirée !



"garnote" a écrit dans le message de groupe de
discussion :
#
Ave Denis,
;-)

Et pour une formule tenant compte de l'année en cours du quantièeme
spécifié
:
ÚTE(ANNEE(AUJOURDHUI());LIGNE();MIN(JOUR(DATE(ANNEE(AUJOURDHUI());LIGNE()+1;0));quantieme))
Peux-tu me la simplifier ?

Serge





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

Bonjour Garnote,

Je trouve ta formule un peu longue ....!
;-)
Ceci devrait être suffisant :
ÚTE(2009;LIGNE();MIN(JOUR(DATE(2009;LIGNE()+1;0));quantieme))

Et en vba, on pourrait faire ceci pour insérer les dates dans la plage de
cellules

'--------------------------------------
Sub test()
Dim Quantieme As Integer
Dim An As Long

Quantieme = 15 'utilise le nom du textbox contenant ta valeur
An = Year(Date)
With Worksheets("Feuil1")
With .Range("A1:A12")
'Copie la formule dans la plage de cellules
.Formula = "ÚTE(" & An & ",ROW(),MIN(DAY(DATE(" & _
An & ",ROW()+1,0))," & Quantieme & "))"
'Pour remplacer la formule par sa valeur
.Value = .Value
End With
End With
End Sub
'--------------------------------------


"garnote" a écrit dans le message de groupe de
discussion :

Salut Patou,

Pour le plaisir, une formule qui semble convenir à ton besoin :
ÚTE(2009;LIGNE();MIN(JOUR(FIN.MOIS(DATE(2009;LIGNE();1);0));quantieme))
Est-ce le cas ?
En supposant que la cellule contenant un nombre entier de 1 à 31 se nomme
"quantieme",
tu copies la formule dans la première ligne d'une colonne et tu la tires
vers le bas.
Si elle donne de bons résultats, il serait sûrement possible de
l'utiliser
à
partir de ton TextBox.

Serge


"Patou" a écrit dans le message de news:
C699D2A0.27D%
Bonjour à tous,
Je souhaiterais faire en Visual basic un petit module qui me donnerais
les
dates mensuelles en partant d'un jour que j'aurai entré sur un TextBox.
Exemple: entrer le 12 et avoir sur ma feuille correspondante
a1/01/2009
a2 10/02/2009 etc. en sachant que je sais créer une boucle avec un
compteur,
mais le problème est la modif du mois, surtout dans le cas d'un 29, 30
ou
31.
Je pense, que j'arriverais à bidouiller un truc à la flan? Mais
j'aimerais
avoir quelque chose de plus "pro".
D'avance merci à vous
Patrick









Avatar
Patou
Effectivement j'ai tout ce qu'il me faut.
J'avais un système empirique, qui fonctionnait . Mais c'était pas
satisfaisant, çela travaillait trop feuille basic, basic feuille. Je
souhaite que 90% se passe en basic et uniquement des résultats sur une
feuille. La version de michdenis me convient superbement.
Merci quand même à tous
Patrick


Le 1/08/09 23:24, dans #, « MichDenis »
a écrit :

Je crois que Patou a suffisamment de suggestions !
Moi, je quitte pour la soirée !



"garnote" a écrit dans le message de groupe de
discussion :
#
Ave Denis,
;-)

Et pour une formule tenant compte de l'année en cours du quantièeme spécifié
:
ÚTE(ANNEE(AUJOURDHUI());LIGNE();MIN(JOUR(DATE(ANNEE(AUJOURDHUI());LIGNE()+1;
0));quantieme))
Peux-tu me la simplifier ?

Serge





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

Bonjour Garnote,

Je trouve ta formule un peu longue ....!
;-)
Ceci devrait être suffisant :
ÚTE(2009;LIGNE();MIN(JOUR(DATE(2009;LIGNE()+1;0));quantieme))

Et en vba, on pourrait faire ceci pour insérer les dates dans la plage de
cellules

'--------------------------------------
Sub test()
Dim Quantieme As Integer
Dim An As Long

Quantieme = 15 'utilise le nom du textbox contenant ta valeur
An = Year(Date)
With Worksheets("Feuil1")
With .Range("A1:A12")
'Copie la formule dans la plage de cellules
.Formula = "ÚTE(" & An & ",ROW(),MIN(DAY(DATE(" & _
An & ",ROW()+1,0))," & Quantieme & "))"
'Pour remplacer la formule par sa valeur
.Value = .Value
End With
End With
End Sub
'--------------------------------------


"garnote" a écrit dans le message de groupe de
discussion :

Salut Patou,

Pour le plaisir, une formule qui semble convenir à ton besoin :
ÚTE(2009;LIGNE();MIN(JOUR(FIN.MOIS(DATE(2009;LIGNE();1);0));quantieme))
Est-ce le cas ?
En supposant que la cellule contenant un nombre entier de 1 à 31 se nomme
"quantieme",
tu copies la formule dans la première ligne d'une colonne et tu la tires
vers le bas.
Si elle donne de bons résultats, il serait sûrement possible de l'utiliser
à
partir de ton TextBox.

Serge


"Patou" a écrit dans le message de news:
C699D2A0.27D%
Bonjour à tous,
Je souhaiterais faire en Visual basic un petit module qui me donnerais
les
dates mensuelles en partant d'un jour que j'aurai entré sur un TextBox.
Exemple: entrer le 12 et avoir sur ma feuille correspondante
a1/01/2009
a2 10/02/2009 etc. en sachant que je sais créer une boucle avec un
compteur,
mais le problème est la modif du mois, surtout dans le cas d'un 29, 30 ou
31.
Je pense, que j'arriverais à bidouiller un truc à la flan? Mais
j'aimerais
avoir quelque chose de plus "pro".
D'avance merci à vous
Patrick









Avatar
Patou
Rererebonjour,
J'ai adapté la réponse de michdenis, pour approcher ce que je souhaite, mais
je rencontre un problème que je ne sais pas passer.
Lorsque je rentre dans le textbox une date comprise entre 13/01/09 par
exemple et 31/01/09. PARFAIT.
Mais lorsque ma date est comprise entre 01/01/09 et 12/01/09:ERREUR
Au lieu de donner ex 01/01/09;01/02/09;01/03/09
J'ai les réponses 01/01/09;02/01/09;03/01/09. Tout se passe comme si au lieu
d'incrémenter le mois, le programme incrémente le jour.
Merci de m'apporter une solution
Patrick
Ci dessous ma procédure dans un user form


Private Sub CommandButton1_Click()
Dim Année As Long, mois As Integer, J As Integer
Dim MaDate As Date, A As Integer, jour As Integer

If IsDate(Me.TextBox1) = True Then
MaDate = CDate(Me.TextBox1)
Année = Year(MaDate)
mois = Month(MaDate)
jour = Day(MaDate)

With Worksheets("Feuil1")
For A = 1 To 12
'Dans la colonne A1:A12, la date
'des 12 mois suivants à la date saisie
'dans le textbox (le jour 1 du mois
If Day(DateSerial(Année, mois, jour)) <= 28 Then
With .Range("A" & A)
.NumberFormat = "DD/MM/YYYY"
.Value = Format(DateSerial(Année, mois + A - 1, jour), _
"DD/MM/YYYY")
End With
Else
If Month(DateSerial(Année, mois, 1)) = 2 Then
If jour > 28 Then
If IsBissextile(An) Then
J = 29
End If
Else
J = jour
End If
End If
With .Range("A" & A)
.NumberFormat = "DD/MM/YYYY"
.Value = Format(DateSerial(Année, mois + A, J), _
"DD/MM/YYYY")
End With
End If
Next
End With


Else
MsgBox "La date saisie dans le TextBox est erronée"
End If
End Sub
Avatar
Sam
Bonjour,
je n'y connais pas grand chose en VBA mais

- c'est sans doute un pb de reconnaissance de format MM JJ AA ou JJ MM AA
Si tu tapes un nombre <13 il considère cela comme un mois pris dans le 1er
format
si tu tapes un nombre >13, il ne peut considérer cela que comme un jour au
format JJ MM AA

- pour le pb de la fin de mois, il suffit de faire tous les calcul à partir
du jour suivant puis de retrancher 1
EX tu tapes 28/02/09, tu fais les calculs sur le 01/03/09 puis tu retranches
1 à toutes tes dates trouvées

Cordialement
Michel dit "Sam"

"Patou" a écrit dans le message de news:
C69B1FC7.2B5%
Rererebonjour,
J'ai adapté la réponse de michdenis, pour approcher ce que je souhaite,
mais
je rencontre un problème que je ne sais pas passer.
Lorsque je rentre dans le textbox une date comprise entre 13/01/09 par
exemple et 31/01/09. PARFAIT.
Mais lorsque ma date est comprise entre 01/01/09 et 12/01/09:ERREUR
Au lieu de donner ex 01/01/09;01/02/09;01/03/09
J'ai les réponses 01/01/09;02/01/09;03/01/09. Tout se passe comme si au
lieu
d'incrémenter le mois, le programme incrémente le jour.
Merci de m'apporter une solution
Patrick
Ci dessous ma procédure dans un user form


Private Sub CommandButton1_Click()
Dim Année As Long, mois As Integer, J As Integer
Dim MaDate As Date, A As Integer, jour As Integer

If IsDate(Me.TextBox1) = True Then
MaDate = CDate(Me.TextBox1)
Année = Year(MaDate)
mois = Month(MaDate)
jour = Day(MaDate)

With Worksheets("Feuil1")
For A = 1 To 12
'Dans la colonne A1:A12, la date
'des 12 mois suivants à la date saisie
'dans le textbox (le jour 1 du mois
If Day(DateSerial(Année, mois, jour)) <= 28 Then
With .Range("A" & A)
.NumberFormat = "DD/MM/YYYY"
.Value = Format(DateSerial(Année, mois + A - 1, jour), _
"DD/MM/YYYY")
End With
Else
If Month(DateSerial(Année, mois, 1)) = 2 Then
If jour > 28 Then
If IsBissextile(An) Then
J = 29
End If
Else
J = jour
End If
End If
With .Range("A" & A)
.NumberFormat = "DD/MM/YYYY"
.Value = Format(DateSerial(Année, mois + A, J), _
"DD/MM/YYYY")
End With
End If
Next
End With


Else
MsgBox "La date saisie dans le TextBox est erronée"
End If
End Sub



Avatar
MichDenis
la difficulté que tu rencontres en est une connue lorsque l'on
utilise un textbox pour saisir une date.

Lorsque tu entres par exemple 6 juin 2009 en utilisant ce
format : 06/06/09, il n'y aucune façon de savoir pour excel si l'usager
voulait signifier une date présentée dans le format JJ/MM/AA
ou MM/JJ/AA ou AA/MM/JJ comme le mentionnait Sam.
En utilisant la fonction de conversion Cdate(), Excel utilise le
format Date défini dans le panneau de configuration de Windows
pour interpréter la date. Il n'y a pas nécessairement concordance
entre le format de la date de saisie et le format date du panneau
de configuration de Windows.

En conséquence, l'usager devrait utiliser ce dernier format pour la saisie
de la date. La chose se complique car ce format peut être différent d'un
ordinateur à un autre...ce qui rend très difficile l'homogénisation de la
saisie de la date.

2 solutions :
A ) utilisation du contrôle "Calendar" de la boîte d'outils de l'userform
dans les contrôles supplémentaires.
B ) employer 3 textbox dûment identifiés... un pour le jour, 1 pour le mois
et un pour l'année.




"Patou" a écrit dans le message de groupe de discussion :
C69B1FC7.2B5%
Rererebonjour,
J'ai adapté la réponse de michdenis, pour approcher ce que je souhaite, mais
je rencontre un problème que je ne sais pas passer.
Lorsque je rentre dans le textbox une date comprise entre 13/01/09 par
exemple et 31/01/09. PARFAIT.
Mais lorsque ma date est comprise entre 01/01/09 et 12/01/09:ERREUR
Au lieu de donner ex 01/01/09;01/02/09;01/03/09
J'ai les réponses 01/01/09;02/01/09;03/01/09. Tout se passe comme si au lieu
d'incrémenter le mois, le programme incrémente le jour.
Merci de m'apporter une solution
Patrick
Ci dessous ma procédure dans un user form


Private Sub CommandButton1_Click()
Dim Année As Long, mois As Integer, J As Integer
Dim MaDate As Date, A As Integer, jour As Integer

If IsDate(Me.TextBox1) = True Then
MaDate = CDate(Me.TextBox1)
Année = Year(MaDate)
mois = Month(MaDate)
jour = Day(MaDate)

With Worksheets("Feuil1")
For A = 1 To 12
'Dans la colonne A1:A12, la date
'des 12 mois suivants à la date saisie
'dans le textbox (le jour 1 du mois
If Day(DateSerial(Année, mois, jour)) <= 28 Then
With .Range("A" & A)
.NumberFormat = "DD/MM/YYYY"
.Value = Format(DateSerial(Année, mois + A - 1, jour), _
"DD/MM/YYYY")
End With
Else
If Month(DateSerial(Année, mois, 1)) = 2 Then
If jour > 28 Then
If IsBissextile(An) Then
J = 29
End If
Else
J = jour
End If
End If
With .Range("A" & A)
.NumberFormat = "DD/MM/YYYY"
.Value = Format(DateSerial(Année, mois + A, J), _
"DD/MM/YYYY")
End With
End If
Next
End With


Else
MsgBox "La date saisie dans le TextBox est erronée"
End If
End Sub
Avatar
Patou
C'est bien ce que j'avais cru comprendre. D'ailleurs je préfererai n'entrer
qu'un jour puisque les mois et l'année sont aisément créable par déduction
informatique c'est plus simple et plus rapide à la saisie . j'ai fait ainsi
pour mes saisies date des journaux comptables puisque j'ouvre un document
avril par exemple je tape que la date soit le 5 et je le transforme en 5
avril 2009 .
Merci de tout
Je reprend mon boulot comme cela
Patrick


Le 2/08/09 15:04, dans #, « MichDenis »
a écrit :

la difficulté que tu rencontres en est une connue lorsque l'on
utilise un textbox pour saisir une date.

Lorsque tu entres par exemple 6 juin 2009 en utilisant ce
format : 06/06/09, il n'y aucune façon de savoir pour excel si l'usager
voulait signifier une date présentée dans le format JJ/MM/AA
ou MM/JJ/AA ou AA/MM/JJ comme le mentionnait Sam.
En utilisant la fonction de conversion Cdate(), Excel utilise le
format Date défini dans le panneau de configuration de Windows
pour interpréter la date. Il n'y a pas nécessairement concordance
entre le format de la date de saisie et le format date du panneau
de configuration de Windows.

En conséquence, l'usager devrait utiliser ce dernier format pour la saisie
de la date. La chose se complique car ce format peut être différent d'un
ordinateur à un autre...ce qui rend très difficile l'homogénisation de la
saisie de la date.

2 solutions :
A ) utilisation du contrôle "Calendar" de la boîte d'outils de l'userform
dans les contrôles supplémentaires.
B ) employer 3 textbox dûment identifiés... un pour le jour, 1 pour le mois
et un pour l'année.




"Patou" a écrit dans le message de groupe de discussion :
C69B1FC7.2B5%
Rererebonjour,
J'ai adapté la réponse de michdenis, pour approcher ce que je souhaite, mais
je rencontre un problème que je ne sais pas passer.
Lorsque je rentre dans le textbox une date comprise entre 13/01/09 par
exemple et 31/01/09. PARFAIT.
Mais lorsque ma date est comprise entre 01/01/09 et 12/01/09:ERREUR
Au lieu de donner ex 01/01/09;01/02/09;01/03/09
J'ai les réponses 01/01/09;02/01/09;03/01/09. Tout se passe comme si au lieu
d'incrémenter le mois, le programme incrémente le jour.
Merci de m'apporter une solution
Patrick
Ci dessous ma procédure dans un user form


Private Sub CommandButton1_Click()
Dim Année As Long, mois As Integer, J As Integer
Dim MaDate As Date, A As Integer, jour As Integer

If IsDate(Me.TextBox1) = True Then
MaDate = CDate(Me.TextBox1)
Année = Year(MaDate)
mois = Month(MaDate)
jour = Day(MaDate)

With Worksheets("Feuil1")
For A = 1 To 12
'Dans la colonne A1:A12, la date
'des 12 mois suivants à la date saisie
'dans le textbox (le jour 1 du mois
If Day(DateSerial(Année, mois, jour)) <= 28 Then
With .Range("A" & A)
.NumberFormat = "DD/MM/YYYY"
.Value = Format(DateSerial(Année, mois + A - 1, jour), _
"DD/MM/YYYY")
End With
Else
If Month(DateSerial(Année, mois, 1)) = 2 Then
If jour > 28 Then
If IsBissextile(An) Then
J = 29
End If
Else
J = jour
End If
End If
With .Range("A" & A)
.NumberFormat = "DD/MM/YYYY"
.Value = Format(DateSerial(Année, mois + A, J), _
"DD/MM/YYYY")
End With
End If
Next
End With


Else
MsgBox "La date saisie dans le TextBox est erronée"
End If
End Sub



Avatar
MichDenis
As-tu pris le temps de lire ce message ?

Ceci devrait être suffisant :
ÚTE(2009;LIGNE();MIN(JOUR(DATE(2009;LIGNE()+1;0));quantieme))

Et en vba, on pourrait faire ceci pour insérer les dates dans la plage de cellules

'--------------------------------------
Sub test()
Dim Quantieme As Integer
Dim An As Long

Quantieme = 15 'utilise le nom du textbox contenant ta valeur
An = Year(Date)
With Worksheets("Feuil1")
With .Range("A1:A12")
'Copie la formule dans la plage de cellules
.Formula = "ÚTE(" & An & ",ROW(),MIN(DAY(DATE(" & _
An & ",ROW()+1,0))," & Quantieme & "))"
'Pour remplacer la formule par sa valeur
.Value = .Value
End With
End With
End Sub
'--------------------------------------
1 2 3