XL 2016 Renommer le fichier ouvert (pas de copie)

Leché

XLDnaute Junior
Bonjour,

Je souhaiterais renommer automatiquement mon fichier ouvert (via un clic bouton) en fonction d'une cellule.
Cela fonctionne très bien avec le code :

VB:
Option Explicit

Sub enregistrer_classeur()

Dim chemin As String, fichier As String

chemin = ThisWorkbook.Path

fichier = chemin & "\" & Range("B2") & ".xlsm"

ActiveWorkbook.SaveAs Filename:=fichier

End Sub

Cependant, cela me créer une simple copie du fichier, qui est bien renommé en fonction de ma cellule.
Avez vous une solution afin de simplement renommer le fichier sans dupliquer, ou alors de supprimer le fichier en suite ?

Cordialement,
 
Solution
Bonjour Leché, Hasco, le forum
Bonjour,

Rajouter un Kill de l'ancien fichier
VB:
VB:
Sub enregistrer_classeur()

Dim chemin As String, fichier As String, old As String
old = ThisWorkbook.FullName
chemin = ThisWorkbook.Path

fichier = chemin & "\" & Range("B2") & ".xlsm"
ActiveWorkbook.SaveAs Filename:=fichier
Kill old
End Sub
Cordialement
Si le code de départ est correct, la suppression ne s'effectue pas forcément sur le classeur contenant la macro mais sur le classeur actif enregistré au même endroit que le classeur contenant la macro sinon pourquoi utiliser activeworkbook au lieu de rester avec thisworkbook.

Bien cordialement, @+
VB:
Sub enregistrer_classeur()

Dim chemin As String, fichier As String, Mem_Fichier$

chemin =...

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

Rajouter un Kill de l'ancien fichier
VB:
Sub enregistrer_classeur()

    Dim chemin As String, fichier As String, old As String
    old = ThisWorkbook.FullName
    chemin = ThisWorkbook.Path

    fichier = chemin & "\" & Range("B2") & ".xlsm"
    ActiveWorkbook.SaveAs Filename:=fichier
    Kill old
End Sub

Cordialement
 
Bonjour Leché, Hasco, le forum
Bonjour,

Rajouter un Kill de l'ancien fichier
VB:
VB:
Sub enregistrer_classeur()

Dim chemin As String, fichier As String, old As String
old = ThisWorkbook.FullName
chemin = ThisWorkbook.Path

fichier = chemin & "\" & Range("B2") & ".xlsm"
ActiveWorkbook.SaveAs Filename:=fichier
Kill old
End Sub
Cordialement
Si le code de départ est correct, la suppression ne s'effectue pas forcément sur le classeur contenant la macro mais sur le classeur actif enregistré au même endroit que le classeur contenant la macro sinon pourquoi utiliser activeworkbook au lieu de rester avec thisworkbook.

Bien cordialement, @+
VB:
Sub enregistrer_classeur()

Dim chemin As String, fichier As String, Mem_Fichier$

chemin = ThisWorkbook.Path

fichier = chemin & "\" & Range("B2") & ".xlsm"

Mem_Fichier = ActiveWorkbook.FullName
ActiveWorkbook.SaveAs Filename:=fichier
Kill Mem_Fichier
End Sub
 
Dernière édition:

Discussions similaires

  • Question
Microsoft 365 Code VBA
Réponses
10
Affichages
748

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
315 098
Messages
2 116 189
Membres
112 679
dernier inscrit
Yupanki