Changement de nom incrémenté d'un classeur

  • Initiateur de la discussion Initiateur de la discussion PhP
  • 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 !

PhP

XLDnaute Nouveau
Bonjour,

Voici un petit sujet de macro (je travaille avec Excel 2007).

J'ai un classeur dont le nom est "Classeur N", où N est une année, par exemple 2013.

Je veux le faire migrer vers l'année N+1.

Pour ce faire, j'ai rédigé une macro qui va bien, sauf le départ qui justement ne fonctionne pas.

Je joins donc le début de cette syntaxe boiteuse.

Le problème :

Je commence par enregistrer Classeur N sous le nom de Classeur N+1. C'est ça qui ne marche pas.

J'ai déclaré une variable "Année". Mais la machine ne la prend pas en compte, et appelle mon classeur "Classeur Année" et non pas "Classeur 2014".

Sub MigrClasseur

Dim Année As Integer

Sheets("Aperçu général").Select
Range("E1").Select
Année = ActiveCell.Value
ActiveWorkbook.Save
Année = Année + 1
ChDir _
"C:\Users\PhP\Documents\Sauvegarde générale\Budget"
ActiveWorkbook.SaveAs Filename:= _
"C:\Users\P\Documents\Sauvegarde générale\Budget\Classeur Année.xlsm" _
, FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False

.............................................

Bien sûr, je pourrais régler ce détail manuellement après coup, mais, tant qu'à faire ...

Voilà, si quelqu'un veut bien m'éclairer, je le remercie.

Bien à vous
 
Re : Changement de nom incrémenté d'un classeur

Bonjour PhP, bonjour le forum,

Je te propose le code suivant :

Sub MigrClasseur()
'
Dim Année As Integer

Année = Sheets("Aperçu général").Range("E1") +1
ActiveWorkbook.Save
nomfic$ = ActiveWorkbook.Name
chemin$ = Left(ActiveWorkbook.FullName, (Len(ActiveWorkbook.FullName) - Len(nomfic$)))
i = InStr(ActiveWorkbook.Name, ".")
lfic = Len(nomfic$)
ext$ = ".xlsm"
debutnom$ = Left(nomfic$, i - 5)
Année = Année + 1
newnomfic$ = debutnom$ & Année & ext$
ActiveWorkbook.SaveAs Filename:=chemin$ & newnomfic$ _
, FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
End Sub

bonne fin de journée
 
Re : Changement de nom incrémenté d'un classeur

Bonjour PhP,

voici un code à tester


Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
dim i as Integer, n as Integer, chemin as String, nom as String
With Feuil1
For i = 1 To 1
n = n + 1
.Range("e1").Value = .Range("e1").Value + n
Application.DisplayAlerts = False
ActiveWorkbook.Save
Next
Set annee = .Range("e1")
chemin = ThisWorkbook.Path & "\"    'à changer
nom = "Classeur " & annee & ".xls"
End With
ActiveWorkbook.SaveAs Filename:=chemin & nom
End Sub

A+ 😎
 
Dernière édition:
- 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

Retour