Bonjour Bastien,
Personnellement, je déconseille cette opération, trop risquée à mon goût...
En tout cas, voici un code à tester sur une copie :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
exfilepath$ = ThisWorkbook.FullName
RenommerFichier Target.Value
Kill exfilepath
End If
End Sub
Sub RenommerFichier(skeyword As String)
ThisWorkbook.SaveAs ThisWorkbook.Path & Application.PathSeparator & skeyword & ".xlsm"
End Sub
Le code est à placer dans le module de la feuille qui subira le changement (en A1 ici). Il doit s'agir d'un changement de valeur par saisie et non par formule.
Un nouveau fichier est créé est la copié précédente est supprimée irrémédiablement.
Il manque entre autres, pour le moment, une validation de données car les noms de fichiers excluent certains caractères et une vérification de l'inexistence du nom de fichier dans le répertoire...
Cdlt,