Macro - Enregistrer fichier avec nom du mois

Hello a tous,

J'ai crée une macro afin d'extraire certains onglets d'un rapport Excel et enregistrer ce nouveau fichier.

Voici le code VBA qui effectue cette tache:

ActiveWorkbook.SaveAs Filename:= _

"S:\Construction\National - Head Office\A Profit and Loss\A01 FY Budgets\08. FY19 P&L\1.Monthly P&L Review\1. NAT CONST CMT P&L.xlsx" _

, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False

Comme vous pouvez le voir, le nom du fichier actuellement est

1. NAT CONST CMT P&L.xlsx

Je souhaiterais rajouter le mois précédent dans le nom du fichier, du coup pour Novembre, cela donnerait

1. Oct18 NAT CONST CMT P&L.xlsx

J'ai essayé pas mal de solutions trouvées sur internet, mais cela ne donne pas ce que je souhaite.

De plus, j'aimerais sauvegarder le fichier chaque mois dans un dossier différent. En effet, dans le chemin suivant, j'ai par la suite des dossiers par mois, ce qui donne:

S:\Construction\National - Head Office\A Profit and Loss\A01 FY Budgets\08. FY19 P&L\1.Monthly P&L Review\Nov18 etc etc

Merci pour votre aide. J’espère avoir été clair dans ma demande, si ce n'est pas le cas n’hésitez pas je peux essayer d’expliquer autrement.

Bonjour,

à tester,

fichier = "1. " & Application.Proper(Format(Date, "mmm yy")) & " NAT CONST CMT P&L.xlsx"

Hello sabV,

J'ai testé, cela donne ca

ActiveWorkbook.SaveAs Filename:= _

"S:\Construction\National - Head Office\A Profit and Loss\A01 FY Budgets\08. FY19 P&L\1.Monthly P&L Review\"1. " & Application.Proper(Format(Date, "mmm yy")) & " NAT CONST CMT P&L.xlsx" _

, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False

Mais cela donne compile error, syntax error

En essayant cela, ca donne un fichier avec Nov18 et cela change le dossier de sauvegarde car cela sauvegarde le fichier dans documents. De plus, je souhaiterais avoir le mois precedent donc Oct18 et non Nov18

ChDir _

"S:\Construction\National - Head Office\A Profit and Loss\A01 FY Budgets\08. FY19 P&L\1.Monthly P&L Review"

ActiveWorkbook.SaveAs Filename:= _

"1. " & Application.Proper(Format(Date, "mmm yy")) & " NAT CONST CMT P&L.xlsx"

En fait, j'ai un onglet Control_Page avec en cellule B12, le mois, donc cela serait ideal d’utiliser un truc du genre

=+"1. "&Control_page!B12&" Monthly P&L Review"

re,

à tester,

rep = "S:\Construction\National - Head Office\A Profit and Loss\A01 FY Budgets\08. FY19 P&L\1.Monthly P&L Review\"
fichier = "1. " & Application.Proper(Format(DateSerial(Year(Date), Month(Date) - 1, 1), "mmmyy")) & " NAT CONST CMT P&L.xlsx"
ActiveWorkbook.SaveAs Filename:=rep & fichier, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False

Re,

En fait je souhaiterais utiliser le mois qui est present dans un autre onglet (Control_Page) en cellule B12

J'ai testé sans succès

ChDir _

"S:\Construction\National - Head Office\A Profit and Loss\A01 FY Budgets\08. FY19 P&L\1.Monthly P&L Review"

ActiveWorkbook.SaveAs Filename:= _

"1. " & Sheets("Control_Page").Range("B12") & " Monthly P&L Review.xlsx" _

, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False

ActiveWindow.Close

re,

est ce qu'il y a une vrai date sur onglet (Control_Page) en cellule B12 ?

Non c'est en texte "Oct-2018"

re,

ok si ce texte te va,

rep = "S:\Construction\National - Head Office\A Profit and Loss\A01 FY Budgets\08. FY19 P&L\1.Monthly P&L Review\"

fichier = "1. " & Sheets("Control_Page").Range("B12") & " NAT CONST CMT P&L.xlsx"

ActiveWorkbook.SaveAs Filename:=rep & fichier, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False

La macro se lance bien mais finit avec un message d'erreur.

re,

sur quel ligne le message d'erreur apparait ?

appuyer sur Debug pour voir cette ligne.

Bonjour Tigrou, Isabelle,

si ça bloque sur cette instruction, c'est que VBA ne trouve pas la feuille "Control_page" !

essaye avec :

Sheets("Control page").Select

ou c'est peut-être que ta feuille est nommée Control_page (avec un espace en trop au bout) ?

dhany

Salut Dhany,

En fait l'erreur apparaît lorsque je rajoute le code pour sauver le fichier avec le nom du mois en B12 de l'onglet Control_page. La partie en erreur que j'ai collée juste précédemment fait partie de la macro au totale et fonctionne très bien sans le code afin de sauvegarder avec le mois dans le nom de fichier.

Le problème ne vient donc pas du nom Control_page

dans ce cas, je laisse Isabelle te répondre pour la suite.

dhany

Bonjour Tigrou25, Salut dhany,

Sans voir ton fichier il est difficile de cibler l'erreur

peut tu le joindre ?

Bonjour Isabelle,

Les macros sont sauvegardées dans le fichier PERSONAL - FY16. Et les donnees extraites de la macro sont dans le fichier CMT P&L report template Oct2018 v Budget.

J'ai créé 10 macros afin de copier certains onglets dans un nouveau fichier et le sauvegarder. Ce sont les macros FY17_CMT_Report_excel_01_NAT_CONST, FY17_CMT_Report_excel_02_NSW_AO etc etc.

Merci pour ton aide.

re,

j'ai le message d'erreur suivant à l'ouverture,

excel msg erreur

aussi, si vous pouvez réduire la taille, seulement un exemple...

Bonjour Isabelle,

j'ai téléchargé les 2 fichiers, moi aussi, et pour le 1er fichier, j'ai eu l'même message d'erreur ! j'ai fait plusieurs essais en renommant l'extension .xlsx en .xlsm puis .xlsb ; rien ! j'ai essayé aussi « Ouvrir et réparer » sur les 3 types d'extension : toujours rien !

dhany

Bonjour,

Le site dont vous me parlez est bloqué de mon travail. Je vais voir pour uploader les fichiers de mon domicile.

Je rencontre cependant un autre soucis, car j'aimerais pouvoir écraser le fichier afin de ne pas avoir à vider le dossier à chaque fois.

Voici le code que j'ai mis

Application.DisplayAlerts = False

J'ai egalement essay avec le code suivant

ActiveWorkbook.Application.DisplayAlerts = False

mais cela me dit que j'ai déjà un fichier avec ce nom et cela me demande si je veux l’écraser ou non.

Voici le code complet

ActiveWorkbook.SaveAs Filename:= _        "S:\Construction\National - Head Office\A Profit and Loss\A01 FY Budgets\08. FY19 P&L\1.Monthly P&L Review\Excel\1. NAT CONST CMT P&L.xlsx" _
        , FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
 ActiveWorkbook.Application.DisplayAlerts = False
        ActiveWindow.Close
Rechercher des sujets similaires à "macro enregistrer fichier nom mois"