Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Mois suivant mois précédent

  • Initiateur de la discussion Initiateur de la discussion nakadon
  • Date de début Date de début

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 !

nakadon

XLDnaute Occasionnel
Bonsoir,

Je souhaite écrire une macro qui :
1- récupère le nom de l'onglet en cours, sachant que le nom de l'onglet est une date Janvier 09 ou Février 09 etc.
2- Ensuite, selon le nom de l'onglet (j'allais dire selon la date correspondant au nom de l'onglet) la macro devrait récupérer les valeurs suivantes dans 2 variables : "MoisPrécedent" et "MoisSuivant".

Si l'onglet actif est Janvier 09
Alors je veux récupérer respectivement dans :
MoisPrécedent = Décembre 08
MoisSuivant = Février 09

Merci d'avance pour votre aide.

Ci-joint un fichier exemple.
 

Pièces jointes

Dernière édition:
Re : Mois suivant mois précédent

Bonsoir Nakadon,

Ci-joint un exemple avec 2 macros "Mois_suiv" et "Mois_prec" qui se positionnent sur l'onglet du mois suivant ou précédent.

J'ai renommé les onglets avec une minuscule pour les mois afin qu'ils correspondent au format date Excel.

Le changement d'année est géré dans les 2 sens.

@+

Gael
 

Pièces jointes

Re : Mois suivant mois précédent

Bonsoir
Bonsoir Gael

Ci dessous une macro qui affecte les valeurs aux deux variables.

Code:
Sub tradem()
Dim nomfeuille1 As String
Dim data1 As String
Dim i As Byte
Dim annee As Long
Dim date1 As Date
Dim date2 As Date
Dim date3 As Date
Dim MoisPrécedent As String
Dim MoisSuivant As String


nomfeuille1 = ActiveSheet.Name
data1 = ActiveSheet.Name
For i = 0 To 9
    data1 = Replace(data1, i, "")
Next i
annee = Val(Replace(nomfeuille1, data1, ""))
data1 = LCase(Replace(data1, " ", ""))
    Select Case data1
            Case "janvier"
                i = 1
            Case "février"
                i = 2
            Case "mars"
                i = 3
            Case "avril"
                i = 4
            Case "mai"
                i = 5
            Case "juin"
                i = 6
            Case "juillet"
                i = 7
            Case "août"
                i = 8
            Case "septembre"
                i = 9
            Case "octobre"
                i = 10
            Case "novembre"
                i = 11
            Case "décembre"
                i = 12
               
        End Select

date1 = "01/" & i & " / " & annee
date2 = DateAdd("m", 1, date1)
date3 = DateAdd("m", -1, date1)
MoisPrécedent = MonthName(Month(date3)) & " " & Year(date3)
MoisSuivant = MonthName(Month(date2)) & " " & Year(date2)
MoisPrécedent = UCase(Mid(MoisPrécedent, 1, 1)) & Mid(MoisPrécedent, 2, 1000)
MoisSuivant = UCase(Mid(MoisSuivant, 1, 1)) & Mid(MoisSuivant, 2, 1000)
End Sub

A tester et à simplifier


JP
 
Re : Mois suivant mois précédent

Bonsoir,


Pourquoi du VBA?

Ces formules sont copiables sur tous les onglets:

Mois précédent:
=INDIRECT("'"&TEXTE(DATEVAL("01/"&STXT(CELLULE("filename";A1);TROUVE("]";CELLULE("filename";A1))+1;99))-1;"mmmm aa")&"'!A4")

Mois suivant:
=INDIRECT("'"&TEXTE(DATEVAL("01/"&STXT(CELLULE("filename";A1);TROUVE("]";CELLULE("filename";A1))+1;99))+31;"mmmm aa")&"'!A5")

En VBA:

MoisPrécédent = Format(CDate("01/" & ActiveSheet.Name) - 1, "mmmm yy")
MoisSuivant = Format(CDate("01/" & ActiveSheet.Name) + 31, "mmmm yy")

JB
Formation Excel VBA JB
 

Pièces jointes

Dernière édition:
Re : Mois suivant mois précédent

Re et bonsoir Boisgontier,

En fait, j'avais mal lu la question.

Ci-joint une autre version avec une Msgbox qui affiche les noms des mois précédents et suivants en tenant compte du changement d'année dans les 2 sens.

@+

Gael
 

Pièces jointes

- 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

Réponses
5
Affichages
671
Réponses
12
Affichages
745
Réponses
1
Affichages
807
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…