Sauvegarde d'un classeur depuis 1 macro d'un autre

Bonjour, je débute depuis quelque temps en VBA et jusque là j'ai réussi à me débrouiller tout seul mais là je suis face à un problème qui m'énerve depuis quelques jours c'est pourquoi je viens de m'inscrire pour demander votre aide :

J'ai un classeur par année, pour l'instant en fait j'en ai qu'un seul dont le nom est "2014.xlsm" , grâce à un bouton, je génère l'année suivante. Donc dans mon code j'ai :

Dim Sh As Worksheet

Dim classeur2 As String

Dim classeur1 As String

classeur1 = ActiveWorkbook.Name

ancienneannee = ActiveWorkbook.Sheets(12).Range("Y2").Formula (qui me retourne : "2014")

ensuite j'ai du code qui m'exporte toutes mes macros dans un dossier temporaire

Workbooks.Add

classeur2 = ActiveWorkbook.Name

puis du code qui remplit les cellules des feuilles de mon nouveau classeur comme je le désire

et bien sur l'importation des macros et effacement du dossier temporaire

jusqu'ici tout marche nickel et bien sûr le nouveau classeur créé porte un nom du type "Classeur " suivi d'un nombre (comme par défaut ds Excel)

Et là patatra, je veux sauvegarder ce nouveau classeur sous le nom de l'année suivante (donc ici : 2015) dans le même dossier que 2014.xlsm :

j'ai tenté plusieurs choses voilà ou j'en suis :

Dim chemin As String

Dim nomfichier As String

chemin = ThisWorkbook.Path

nom = Format(ancienneannee + 1, Text)

nomfichier = chemin & "\" & nom & ".xlsm"

Workbooks(classeur2).SaveAs nomfichier

et là je comprends pas, non seulement, il me sauvegarde rien et il garde ce nouveau classeur avec un nom "classeur" n mais il me retourne aucune erreur et quand je lance une recherche d'un éventuel fichier "2015.xlsm" sur tous mes hdd : rien !!!!

Qu'est ce qui m'échappe

D'avance merci pour votre aide

Bonjour

Une macro qui sauve le fichier actuel au format .xlsm

Sub test()
Dim Sh As Worksheet
Dim classeur2 As String
Dim classeur1 As String
classeur1 = ActiveWorkbook.Name
ancienneannee = ActiveWorkbook.Sheets(12).Range("Y2").Formula     '(qui me retourne : "2014")

'ensuite j 'ai du code qui m'exporte toutes mes macros dans un dossier temporaire

Workbooks.Add
classeur2 = ActiveWorkbook.Name

'puis du code qui remplit les cellules des feuilles de mon nouveau classeur comme je le désire
'et bien sur l'importation des macros et effacement du dossier temporaire

'jusqu 'ici tout marche nickel et bien sûr le nouveau classeur créé porte un nom du type "Classeur " suivi d'un nombre (comme par défaut ds Excel)
'
'Et là patatra, je veux sauvegarder ce nouveau classeur sous le nom de l'année suivante (donc ici : 2015) dans le même dossier que 2014.xlsm :
'j 'ai tenté plusieurs choses voilà ou j'en suis :

Dim chemin As String
Dim nomfichier As String
chemin = ThisWorkbook.Path
nom = Format(ancienneannee + 1, Text)
nomfichier = chemin & "\" & nom             '& ".xlsm"
Workbooks(classeur2).SaveAs nomfichier, FileFormat:=xlOpenXMLWorkbookMacroEnabled
End Sub

merci pour cette réponse rapide mais ça ne marche pas

J'ai un message d'erreur "Erreur de compilation : Argument nommé introuvable" et il me souligne "filemormat:=" dans le code

Bonjour

Avec quelle version as tu essayé cette macro ?

Fonctionne très bien avec 2010

avec excel 2007

Bonjour

Je n'ai pas 2007 mais je crois que ces paramètres ont été rajoutés avec 2007

Tu as fais une erreur

tyver666 a écrit :

il me souligne "filemormat:="

c'est
fileformat:=

Arf, je suis étourdi, donc j'ai corrigé

Je n'ai plus de message d'erreur mais ça ne marche toujours pas, pas de fichier 2015.xlsm enregistré et mon nouveau classeur s'appelle toujours "Classeur2"

Bonjour

Bizarre

J'ai testé cette macro et j'obtiens un fichier 2015.xlsm

Joins ton fichier en cause

152014.xlsm (154.17 Ko)

OK voici mon fichier (les valeurs des cellules sont fictives, c'est juste pour test) , c'est un petit classeur de calcul de budget, très simple, avec protection des cellules contenant les formules, il y a 12 feuilles une par mois, et la macro (contenue dans module 2) qui me pose problème est déclenchée par le bouton qui se trouve sur la feuille "Décembre"

Je sais pas si j'ai correctement joint le fichier par contre

Bonsoir

Tu as mal écrit la constante

xlopenXMLWorkboobMacroEnabled

à la place de

xlOpenXMLWorkbookMacroEnabled

Remplaces la ligne correspondante

Workbooks(classeur2).SaveAs nomfichier, FileFormat:=52 

ou alors copies bien la constante

Workbooks(classeur2).SaveAs nomfichier, FileFormat:=xlOpenXMLWorkbookMacroEnabled

Merci mille fois ; décidément je vais m'acheter des doigts pour apprendre à taper au clavier. En tout cas ça marche impec

Bonne soirée et merci

Rechercher des sujets similaires à "sauvegarde classeur macro"