Bonjour,
A tester :
La macro associée :
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim WbName As String, ActivWBname As String 'Déclaration de variables
On Error GoTo Fin: 'Gestion d'erreur
ActivWBname = ThisWorkbook.Name
WbName = Sheets("citron").Range("E5") 'Affectation du nom contenu dans la cellule E5 de la feuille "citron"
ChDir ThisWorkbook.Path 'Changement du répertoire d'enregistrement
If Not ActivWBname = WbName & ".xlsm" Then 'Si le nom actuel est différent du nom souhaité
ThisWorkbook.SaveAs Filename:=WbName, FileFormat:=xlOpenXMLWorkbookMacroEnabled 'Enregistrement sous le nom souhaité
Kill ThisWorkbook.Path & "\" & ActivWBname 'Suppression de l'ancien fichier
Else
ThisWorkbook.Save 'Sinon enregistrement classique
End If
Exit Sub
Fin: 'Gestion d'erreur
MsgBox "Une erreur s'est produite, vérifiez le contenu de la cellule."
Cancel = True 'Annulation fermeture
End Sub
Note :
La macro se déclenche automatiquement à la fermeture du fichier, et contrôle si son nom est identique au contenu de ta cellule E5. Le cas inverse, elle enregistre un fichier à ce nom et supprime l'ancien.