Générer onglets mois différents

Blafi

XLDnaute Occasionnel
Bonjour le forum,

J'ai recherché une réponse à mon problème dans les sujets déja traités mais je ne trouve pas la solution, aussi je m'adresse à vous...
Voilà : j'ai un fichier avec un onglet qui porte le nom "comptabilité septembre 2017" et qui contient en C2 l'expression "septembre 2017".
Je voudrais avec une macro, créer les onglets d'octobre 2017 à juin 2018 qui porteraient chacun leur nom et dont la cellule C2 serait remplie du mois voulu.
Je demande cela car tous les ans je dois recréer tous ces onglets pour le club de ma femme et de ses bénévoles qui n'y connaissent pas grand chose...
Si en plus je pouvais choisir l'année scolaire en début de macro, ce serait merveilleux et je pourrai m'en servir tous les ans, ce qui m'éviterait un gros travail...
Je précise que j'ai en outre un autre onglet du même genre à créer en autant d'exemplaires mais si j'ai la solution pour celui là, je n'aurai qu'à modifier un peu la macro...
Ci-joint mon fichier avec l'onglet...

Merci d'avance de vos solutions... et à bientôt.
 

Pièces jointes

  • Modèle Comptabilité.xlsx
    14.9 KB · Affichages: 22

eriiic

XLDnaute Barbatruc
Bonjour,

Garder l'original. L'année à créer n'est demandée que si le classeur n'a qu'une feuille.
eric

PS : je viens de voir Je précise que j'ai en outre un autre onglet du même genre
Si le classeur à plusieurs onglets il va falloir adapter
 

Pièces jointes

  • Modèle Comptabilité.xlsm
    22.5 KB · Affichages: 32

Blafi

XLDnaute Occasionnel
Merci Eriiiic,
ça marche très bien. Cependant, un deuxième onglet septembre se crée au lancement de la macro, comment cela se fait-il ? (ce n'est pas grave, je le supprime ensuite, mais s'il y a une solution...)
Cordialement, A +
 

eriiic

XLDnaute Barbatruc
Inattention de ma part, désolé :)
VB:
Sub generer(annee As Long)
    Dim dat As Date, i As Long
    dat = DateValue("01/09/" & annee)
    Application.ScreenUpdating = False
    With ActiveSheet
        .Name = "Compta " & Application.Proper(Format(dat, "mmmm yyyy"))
        .[C2] = Application.Proper(Format(dat, "mmmm yyyy"))
    End With
    For i = 1 To 11
        Feuil1.Copy After:=Sheets(Sheets.Count)
        dat = DateAdd("m", 1, dat)
        With ActiveSheet
            .Name = "Compta " & Application.Proper(Format(dat, "mmmm yyyy"))
            .[C2] = Application.Proper(Format(dat, "mmmm yyyy"))
        End With
    Next i
    Feuil1.Select
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 104
Messages
2 085 335
Membres
102 865
dernier inscrit
FreyaSalander