Creation nouveau fichier Excel pour nouveau mois

Bonjour à tous,

J'ai réalisé un fichier Excel, et j'aimerais qu'à chaque début de mois, en cliquant sur le bouton "nouveau mois" :

  • cela crée un nouveau fichier avec comme nom le mois et l'année (pour l'instant le fichier créé s'appelle coucou3)
  • à la création du fichier, il y ait déjà quatre feuilles préremplies

Pour faire ça, j'ai décidé d'enregistrer sous le 1er document et de supprimer les onglets qui ne m’intéressent pas.

Je pense que je suis pas trop loin du résultat, mais ça beugue lors de la suppression des onglets et je ne comprends pas pourquoi...

De plus, ma ligne ActiveWorkbook.SaveAs Filename:="C:\Users\9605296P\Desktop\coordi"&a+m&".xlsm",_ n'est pas écrite correctement, pourtant je l'ai relue 15 fois...

31coucou2.xlsm (189.50 Ko)

mdp : coordi

Merci pour votre aide,

Elsa

Bon jour Elsa, bonjour le forum,

Peut-être comme ça :

Sub nouveau_mois()

Dim WS_Count As Integer
Dim I As Byte
Dim Dte As Date
Dim m As Byte
Dim a As Integer

Dte = DateValue(Date)
m = Month(Dte)
a = Year(Dte)
MsgBox " - mois: " & Format(m, "00") & " - année: " & a
ActiveWorkbook.Save
ActiveWorkbook.SaveAs Filename:="C:\Users\9605296P\Desktop\coordi" & "-" & a & "-" & Format(m, "00") & ".xlsm", _
FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
WS_Count = ActiveWorkbook.Worksheets.Count
Application.DisplayAlerts = False
For I = 1 To WS_Count
    Worksheets(I).Visible = True
    Select Case Worksheets(I).Name
        Case "Feuil2", "Matrice", "Recapmois"
        Case Else
            ActiveSheet.Delete
    End Select
Next I
Application.DisplayAlerts = True
Worksheets("Matrice").Copy after:=Worksheets(Worksheets.Count)
ActiveSheet.Name = Format(Date, "dd-mm-yyyy")
ActiveWindow.DisplayGridlines = False
Range("F2").Value = Date
ActiveSheet.Protect
Sheets("Matrice").Visible = False
Sheets("Feuil2").Visible = False
End Sub

Salut,

Merci pour ton aide, le code est très clair, je ne connaissais pas la fonction case

Cependant, lorsque je lance la macro ça marche penant les 4 premières itérations, mais après ça m'affiche une erreur d’exécution 9

sans rien justifier .

D'après lui, c'est la ligne Worksheets(I).Visible = True qui bloque, j'ai regardé un peu sur internet, d'après eux il faut préciser dans quel workbook on est, mais j'ai essayé et ça ne change rien...

J'ai remis mes feuilles dans l'ordre (genre : "feuil2","recapmois","matrice", et ensuite les dates par ordre chrono)

mais la macro bloque et ne supprime pas tous les onglets que je voudrais supprimer, je ne comprends pas

26coucou.xlsm (188.00 Ko)

Re,

Oui, en effet. Une boucle sur le nombre d'onglet avec, à l'intérieur de cette boucle, des onglets qui sont supprimés, ça plante forcément... Essaye comme ça :

Sub nouveau_mois()

Dim WS As Worksheet
Dim Dte As Date
Dim m As Byte
Dim a As Integer

Dte = DateValue(Date)
m = Month(Dte)
a = Year(Dte)
MsgBox " - mois: " & Format(m, "00") & " - année: " & a
ActiveWorkbook.Save
ActiveWorkbook.SaveAs Filename:="C:\Users\9605296P\Desktop\coordi" & "-" & a & "-" & Format(m, "00") & ".xlsm", _
FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
Application.DisplayAlerts = False
For Each WS In Worksheets
    WS.Visible = True
    Select Case WS.Name
        Case "Feuil2", "Matrice", "Recapmois"
        Case Else
            WS.Delete
    End Select
Next WS
Application.DisplayAlerts = True
Worksheets("Matrice").Copy after:=Worksheets(Worksheets.Count)
ActiveSheet.Name = Format(Date, "dd-mm-yyyy")
ActiveWindow.DisplayGridlines = False
Range("F2").Value = Date
ActiveSheet.Protect
Sheets("Matrice").Visible = False
Sheets("Feuil2").Visible = False
End Sub

YESS !

C'est super, ça marche parfaitement !

Merci thau Theme

Rechercher des sujets similaires à "creation nouveau fichier mois"