Variables Dates - Amélioration code

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

La braise

XLDnaute Occasionnel
Bonjour à Tous,

Je fais appel à votre science pour optimiser une de mes macros.

A partir d'un n° de mois, je cherche à obtenir le nom du mois, le nom du mois précédent et le nb de jour du mois.

J'utilise le code suivant (on ne rigole pas...) :

If Mois = 2 Then Mois_Last = "01"
If Mois = 3 Then Mois_Last = "02"
If Mois = 4 Then Mois_Last = "03"
If Mois = 5 Then Mois_Last = "04"
If Mois = 6 Then Mois_Last = "05"
If Mois = 7 Then Mois_Last = "06"
If Mois = 8 Then Mois_Last = "07"
If Mois = 9 Then Mois_Last = "08"
If Mois = 10 Then Mois_Last = "09"
If Mois = 11 Then Mois_Last = "10"
If Mois = 12 Then Mois_Last = "11"
If Mois = 1 Then moislong = "Janvier"
If Mois = 2 Then moislong = "Février"
If Mois = 3 Then moislong = "Mars"
If Mois = 4 Then moislong = "Avril"
If Mois = 5 Then moislong = "Mai"
If Mois = 6 Then moislong = "Juin"
If Mois = 7 Then moislong = "Juillet"
If Mois = 8 Then moislong = "Août"
If Mois = 9 Then moislong = "Septembre"
If Mois = 10 Then moislong = "Octobre"
If Mois = 11 Then moislong = "Novembre"
If Mois = 12 Then moislong = "Décembre"
If Mois = 2 Then moislonglast = "Janvier"
If Mois = 3 Then moislonglast = "Février"
If Mois = 4 Then moislonglast = "Mars"
If Mois = 5 Then moislonglast = "Avril"
If Mois = 6 Then moislonglast = "Mai"
If Mois = 7 Then moislonglast = "Juin"
If Mois = 8 Then moislonglast = "Juillet"
If Mois = 9 Then moislonglast = "Août"
If Mois = 10 Then moislonglast = "Septembre"
If Mois = 11 Then moislonglast = "Octobre"
If Mois = 12 Then moislonglast = "Novembre"
If Mois = 1 Then Nbjourmois = 31
If Mois = 2 Then Nbjourmois = 28
If Mois = 3 Then Nbjourmois = 31
If Mois = 4 Then Nbjourmois = 30
If Mois = 5 Then Nbjourmois = 31
If Mois = 6 Then Nbjourmois = 30
If Mois = 7 Then Nbjourmois = 31
If Mois = 8 Then Nbjourmois = 31
If Mois = 9 Then Nbjourmois = 30
If Mois = 10 Then Nbjourmois = 31
If Mois = 11 Then Nbjourmois = 30
If Mois = 12 Then Nbjourmois = 31


Est-il possible d'améliorer ce code?

D'avance merci pour votre aide toujours aussi efficace. 😀
 
Re : Variables Dates - Amélioration code

Bonjour

MonthName(i) donne le nom du mois, il faut faire attention à l'écriture.
pour le nombre de jour
Code:
Select case i
 case 1,3,5,7,8,10,12
 '31 jours
 case 2
 if (annee mod 4 ) <> 0 
   ' 28 jours
 else
   '29 jours
 end if
case else
 ' 30 jours
end select

Ce code n'est valable que pour les années comprises entre le 1 er janvier 1901 et 2099, sinon c'est le bug.


JP
 
Dernière édition:
Re : Variables Dates - Amélioration code

Bonjour,

Voila le code :

Code:
Sub dudule()
annee = 2010
mois = 1
tmp = DateSerial(annee, mois, 1)
nom_mois = Format(tmp, "mmmm")
nb_jour = Format(DateSerial(annee, mois + 1, 0), "d")
mois_precedent = Format(DateSerial(annee, mois - 1, 1), "mmmm")
End Sub
 
Re : Variables Dates - Amélioration code

Re bonjour à tous,

Pour une autre macro je demande à l'utilisateur la date du fichier.

Pour cela je récupère la date en string et je la découpe pour avoir,le jour, le mois et l'année.

Est-ce qu'il y a plus simple ??? (on ne rigole pas ! 😀)


Range("M2").Value = F_Var01
Range("M3").Select
ActiveCell.FormulaR1C1 = "=value(LEFT(R[-1]C,2))"
F_Jour = Range("M3").Value
Range("m4").Select
ActiveCell.FormulaR1C1 = "=value(mid(R[-2]C,4,2))"
F_Mois = Range("M4").Value
Range("m5").Select
ActiveCell.FormulaR1C1 = "=value(RIGHT(R[-3]C,4))"
F_Annee = Range("M5").Value
Range("m6").Select
ActiveCell.FormulaR1C1 = "=value(mid(R[-4]C,9,2))"
F_Annee2 = Range("M6").Value
Range("m2:m6").ClearContents
If F_Jour < 10 Then F_Jour_T = "0" & F_Jour Else: F_Jour_T = F_Jour
If F_Mois < 10 Then F_Mois_T = "0" & F_Mois Else: F_Mois_T = F_Mois
If F_Annee2 < 10 Then F_Annee_2T = "0" & F_Annee2 Else: F_Annee_2T = F_Annee2


D'avance merci pour votre aide toujours aussi efficace!
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
184
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
664
Retour