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

histoire de mois...

16 réponses
Avatar
Circé
Bonjour à tous !

Dans une Userform, j'ai une liste déroulante alimentée par le code
suivant (donné par Modeste) :

Me.combobox1.RemoveItem (ComboBox1.ListIndex)

For j = 0 To (4 * 4)

Me.maliste.AddItem Format(DateSerial(Year(Now()), 4 * Int(Month(Now) /
4) + (3 * j) + 1, 1), "dd-mmm-yy")

Next j

Cette liste me donne le 1er jour de chaque trimestre pour les 4 années
à venir.
Or, tout change ! car maintenant je souhaiterais obtenir le 1er jour du
dernier mois de chaque trimestre pour les 4 (ou 5) années à venir, à
savoir :
1 mars 2008, 1 juin 2008, 1 septembre 2008, 1 décembre 2008, 1 mars
2009, etc.

Je ne parviens pas à modifier le code en conséquence.

Merci par avance à la bonne âme qui me viendra en aide.

Circé
http://faqword.free.fr

10 réponses

1 2
Avatar
MichDenis
Il n'y a quand mettre un 0 à la place du 1 juste devant la parenthèse fermante.

Format(DateSerial(Year(Now()), 4 * Int(Month(Now) / 4) + (3 * j) + 1, 0), "dd-mmm-yy")


"Circé" a écrit dans le message de news:
Bonjour à tous !

Dans une Userform, j'ai une liste déroulante alimentée par le code
suivant (donné par Modeste) :

Me.combobox1.RemoveItem (ComboBox1.ListIndex)

For j = 0 To (4 * 4)

Me.maliste.AddItem Format(DateSerial(Year(Now()), 4 * Int(Month(Now) /
4) + (3 * j) + 1, 1), "dd-mmm-yy")

Next j

Cette liste me donne le 1er jour de chaque trimestre pour les 4 années
à venir.
Or, tout change ! car maintenant je souhaiterais obtenir le 1er jour du
dernier mois de chaque trimestre pour les 4 (ou 5) années à venir, à
savoir :
1 mars 2008, 1 juin 2008, 1 septembre 2008, 1 décembre 2008, 1 mars
2009, etc.

Je ne parviens pas à modifier le code en conséquence.

Merci par avance à la bonne âme qui me viendra en aide.

Circé
http://faqword.free.fr
Avatar
Philippe.R
Bonsoir Circé,

Me.maliste.AddItem Format(DateSerial(Year(Now()), 4 * _
Int(Month(Now) / 4) + (3 * j) +, 1), "dd-mmm-yy")

devrait faire l'affaire
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"Circé" a écrit dans le message de
news:
Bonjour à tous !

Dans une Userform, j'ai une liste déroulante alimentée par le code suivant
(donné par Modeste) :

Me.combobox1.RemoveItem (ComboBox1.ListIndex)

For j = 0 To (4 * 4)

Me.maliste.AddItem Format(DateSerial(Year(Now()), 4 * Int(Month(Now) / 4)
+ (3 * j) + 1, 1), "dd-mmm-yy")

Next j

Cette liste me donne le 1er jour de chaque trimestre pour les 4 années à
venir.
Or, tout change ! car maintenant je souhaiterais obtenir le 1er jour du
dernier mois de chaque trimestre pour les 4 (ou 5) années à venir, à
savoir :
1 mars 2008, 1 juin 2008, 1 septembre 2008, 1 décembre 2008, 1 mars 2009,
etc.

Je ne parviens pas à modifier le code en conséquence.

Merci par avance à la bonne âme qui me viendra en aide.

Circé
http://faqword.free.fr




Avatar
MichDenis
J'oubliais ta boucle débute à 1 plutôt qu'à 0

'-------------
For j = 1 To (4 * 4)
Me.maliste.AddItem Format(DateSerial(Year(Now()), 4 * _
Int(Month(Now) / 4) + (3 * j) + 1, 0), "dd-mmm-yy")Next
'-------------


"MichDenis" a écrit dans le message de news:
%
Il n'y a quand mettre un 0 à la place du 1 juste devant la parenthèse fermante.

Format(DateSerial(Year(Now()), 4 * Int(Month(Now) / 4) + (3 * j) + 1, 0), "dd-mmm-yy")


"Circé" a écrit dans le message de news:
Bonjour à tous !

Dans une Userform, j'ai une liste déroulante alimentée par le code
suivant (donné par Modeste) :

Me.combobox1.RemoveItem (ComboBox1.ListIndex)

For j = 0 To (4 * 4)

Me.maliste.AddItem Format(DateSerial(Year(Now()), 4 * Int(Month(Now) /
4) + (3 * j) + 1, 1), "dd-mmm-yy")

Next j

Cette liste me donne le 1er jour de chaque trimestre pour les 4 années
à venir.
Or, tout change ! car maintenant je souhaiterais obtenir le 1er jour du
dernier mois de chaque trimestre pour les 4 (ou 5) années à venir, à
savoir :
1 mars 2008, 1 juin 2008, 1 septembre 2008, 1 décembre 2008, 1 mars
2009, etc.

Je ne parviens pas à modifier le code en conséquence.

Merci par avance à la bonne âme qui me viendra en aide.

Circé
http://faqword.free.fr
Avatar
ChrisV
Bonjour Circé,

For i = 0 To (4 * 4)
Me.maliste.AddItem Format(DateSerial(Year(Now()), 1 + (4 *
Int(Month(Now)) _
/ 4) + (3 * i) + 1, 1), "d mmmm yyyy")
Next i


ChrisV


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

Bonjour à tous !

Dans une Userform, j'ai une liste déroulante alimentée par le code suivant
(donné par Modeste) :

Me.combobox1.RemoveItem (ComboBox1.ListIndex)

For j = 0 To (4 * 4)

Me.maliste.AddItem Format(DateSerial(Year(Now()), 4 * Int(Month(Now) / 4)
+ (3 * j) + 1, 1), "dd-mmm-yy")

Next j

Cette liste me donne le 1er jour de chaque trimestre pour les 4 années à
venir.
Or, tout change ! car maintenant je souhaiterais obtenir le 1er jour du
dernier mois de chaque trimestre pour les 4 (ou 5) années à venir, à
savoir :
1 mars 2008, 1 juin 2008, 1 septembre 2008, 1 décembre 2008, 1 mars 2009,
etc.

Je ne parviens pas à modifier le code en conséquence.

Merci par avance à la bonne âme qui me viendra en aide.

Circé
http://faqword.free.fr




Avatar
MichDenis
OUPS, j'ai mal lu... ce qui suit donne le dernier jour du dernier mois
du trimestre...

;-)



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

J'oubliais ta boucle débute à 1 plutôt qu'à 0

'-------------
For j = 1 To (4 * 4)
Me.maliste.AddItem Format(DateSerial(Year(Now()), 4 * _
Int(Month(Now) / 4) + (3 * j) + 1, 0), "dd-mmm-yy")Next
'-------------


"MichDenis" a écrit dans le message de news:
%
Il n'y a quand mettre un 0 à la place du 1 juste devant la parenthèse fermante.

Format(DateSerial(Year(Now()), 4 * Int(Month(Now) / 4) + (3 * j) + 1, 0), "dd-mmm-yy")


"Circé" a écrit dans le message de news:
Bonjour à tous !

Dans une Userform, j'ai une liste déroulante alimentée par le code
suivant (donné par Modeste) :

Me.combobox1.RemoveItem (ComboBox1.ListIndex)

For j = 0 To (4 * 4)

Me.maliste.AddItem Format(DateSerial(Year(Now()), 4 * Int(Month(Now) /
4) + (3 * j) + 1, 1), "dd-mmm-yy")

Next j

Cette liste me donne le 1er jour de chaque trimestre pour les 4 années
à venir.
Or, tout change ! car maintenant je souhaiterais obtenir le 1er jour du
dernier mois de chaque trimestre pour les 4 (ou 5) années à venir, à
savoir :
1 mars 2008, 1 juin 2008, 1 septembre 2008, 1 décembre 2008, 1 mars
2009, etc.

Je ne parviens pas à modifier le code en conséquence.

Merci par avance à la bonne âme qui me viendra en aide.

Circé
http://faqword.free.fr
Avatar
Modeste
Bonsour® Circé avec ferveur ;o))) vous nous disiez :

Dans une Userform, j'ai une liste déroulante alimentée par le code
suivant (donné par Modeste) :
Me.combobox1.RemoveItem (ComboBox1.ListIndex)
For j = 0 To (4 * 4)
Me.maliste.AddItem Format(DateSerial(Year(Now()), 4 * Int(Month(Now) /
4) + (3 * j) + 1, 1), "dd-mmm-yy")
Next j
Cette liste me donne le 1er jour de chaque trimestre pour les 4 années
à venir.

Or, tout change ! car maintenant je souhaiterais obtenir le 1er jour
du dernier mois de chaque trimestre pour les 4 (ou 5) années à venir,
à savoir :
1 mars 2008, 1 juin 2008, 1 septembre 2008, 1 décembre 2008, 1 mars
2009, etc.


en quelque sorte, le 1er jour de chaque trimestre + 2 mois !!!!!!
;o)))

On Error Resume Next
Me.ComboBox1.RemoveItem (ComboBox1.ListIndex)
For j = 0 To (4 * 4)
Me.ComboBox1.AddItem Format(DateSerial(Year(Now()), 2 + 4 * Int(Month(Now) / 4)
+ (3 * j) + 1, 1), "dd-mmm-yy")
Next j
--
--
@+
;o)))

Avatar
Modeste
plus dans l'esprit de l'instruction originale


On Error Resume Next
Me.ComboBox1.RemoveItem (ComboBox1.ListIndex)
For j = 0 To (4 * 4)
Me.ComboBox1.AddItem Format(DateSerial(Year(Now()), 4 * Int(Month(Now) / 4) + (3
* j) + 3, 1), "dd-mmm-yy")> Next j



--
--
@+
;o)))
Avatar
Modeste
Bonsour® Modeste avec ferveur ;o))) vous nous disiez :

plus radical :

Private Sub UserForm_Initialize()
On Error Resume Next
annees = 5
Me.ComboBox1.RemoveItem (ComboBox1.ListIndex)
For j = 3 To (4 * annees) Step 3
Me.ComboBox1.AddItem Format(DateSerial(Year(Now()), j, 1), "dd-mmm-yy")
Next j
End Sub

--
@+
;o)))
Avatar
Philippe.R
Bonjour Circé,

La formule initiale,

Me.maliste.AddItem Format(DateSerial(Year(Now()), 4 * _
Int(Month(Now) / 4) + (3 * j) + 1, 1), "dd-mmm-yy")

que tu souhaites faire évoluer, peut être traduite (la fonction colonne()
remplaçant la variable j) en une formule de feuille Excel comme ceci :

ÚTE(ANNEE(MAINTENANT());4*ENT(MOIS(MAINTENANT())/4)+(3*COLONNE())+1;1)

pour les colonnes A à D dans lesquelles elle affiche 01/04/2008 en A,
01/07/2008 en B .......

On y vois que dans le calcul du mois :
4*ENT(MOIS(MAINTENANT())/4)+(3*COLONNE())+1
on termine en ajoutant 1, d'où ma proposition de ne plus l'ajouter, ce qui
donnera ceci :

Me.maliste.AddItem Format(DateSerial(Year(Now()), 4 * _
Int(Month(Now) / 4) + (3 * j) , 1), "dd-mmm-yy")

correspondant dans la feuille à :
ÚTE(ANNEE(MAINTENANT());4*ENT(MOIS(MAINTENANT())/4)+(3*COLONNE());1)

Le plantage observé devant provenir du signe "+" que j'avais laissé traîner
à la fin du calcul du mois
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"Circé" a écrit dans le message de
news:
Bonsoir !

Ben je vois que c'est pas si simple !! :D

MichDenis me fait commencer par le dernier jour du mois du trimestre, la
formule de Philippe me fait un plantage (j'ai pas regardé de près mais j'y
retourne)...
Quant à ChriV, ta formule me fait bien commencer le 1er du mois mais dans
3 mois à partir de la date du jour. Or j'ai besoin de dates fixes, à
savoir le 1er jour du dernier mois du trimestre, avec une incrémentation
au fur et à mesure du temps qui passe.

Si je n'y arrive pas, tant pis, je crééerai une liste en dur... Mais je
trouvais ça plus fun ou plus pro ;))) de l'insérer avec une formule !

Circé
http://faqword.free.fr


Bonjour Circé,

For i = 0 To (4 * 4)
Me.maliste.AddItem Format(DateSerial(Year(Now()), 1 + (4 *
Int(Month(Now)) _
/ 4) + (3 * i) + 1, 1), "d mmmm yyyy")
Next i


ChrisV


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

Bonjour à tous !

Dans une Userform, j'ai une liste déroulante alimentée par le code
suivant (donné par Modeste) :

Me.combobox1.RemoveItem (ComboBox1.ListIndex)

For j = 0 To (4 * 4)

Me.maliste.AddItem Format(DateSerial(Year(Now()), 4 * Int(Month(Now) /
4) + (3 * j) + 1, 1), "dd-mmm-yy")

Next j

Cette liste me donne le 1er jour de chaque trimestre pour les 4 années à
venir.
Or, tout change ! car maintenant je souhaiterais obtenir le 1er jour du
dernier mois de chaque trimestre pour les 4 (ou 5) années à venir, à
savoir :
1 mars 2008, 1 juin 2008, 1 septembre 2008, 1 décembre 2008, 1 mars
2009, etc.

Je ne parviens pas à modifier le code en conséquence.

Merci par avance à la bonne âme qui me viendra en aide.

Circé
http://faqword.free.fr










Avatar
Circé
Hello Modeste !

Plus radical, je ne sais pas... Mais en tous les cas, je dirais...
cherchez l'erreur... que je suis infichue de trouver !!:D
J'ai beau mettre : années = 5

le résultat ne me donne que deux ans de dates... sinon, pour les jours
c'est bon.

Pas grave, la formule de Philippe fonctionne... donc, pas de soucis...
Bonne fin de week end à toi aussi

Circé
http://faqword.free.fr

Modeste a formulé ce samedi :
Bonsour® Modeste avec ferveur ;o))) vous nous disiez :

plus radical :

Private Sub UserForm_Initialize()
On Error Resume Next
annees = 5
Me.ComboBox1.RemoveItem (ComboBox1.ListIndex)
For j = 3 To (4 * annees) Step 3
Me.ComboBox1.AddItem Format(DateSerial(Year(Now()), j, 1), "dd-mmm-yy")
Next j
End Sub


1 2