histoire de mois...

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
MichDenis
Le #5334961
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é" 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
Philippe.R
Le #5334941
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é" 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




MichDenis
Le #5334931
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" %
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é" 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
ChrisV
Le #5334921
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é"
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




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

;-)



"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" %
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é" 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
Modeste
Le #5334611
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)))

Modeste
Le #5334601
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)))
Modeste
Le #5334591
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)))
Philippe.R
Le #5334561
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é" 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é"
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










Circé
Le #5333351
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


Publicité
Poster une réponse
Anonyme