renommage fichier à la fermeture

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

S

steeve

Guest
re-bonsoir,

Je voudrai effectuer l'action suivante sur mon fichier excel:

lors de la fermture du fichier (clic sur la croix ou fichier quitter), je voudrai le sauvegarder sous le nom d'une cellule spécifier dans ma première feuille. De plus je voudrai qu'il s'enregistre sous le répertoire courant.

J'ai utiliser ceci mais qui n'a pas l'air de fonctionner:

dans le ThisWorkbook, j'ai placé cette fonction:
Private Sub Workbook_BeforeClose(Cancel As Boolean)

ActiveWorkbook.SaveAs Filename:= Range('B5').Value
End Sub
(il me manque à indiquer le répertoire courant...)

D'autre part, si j'ouvre et je ferme mon fichier plusieurs fois, il va me dire 'un fichier sous le nom de... existe déjà voulez-vous le remplacer' si je mets non, il m'ouvre le debugger.

Est-ce que quelqu'un a déjà eu ce pb, ou alors pourrait me donner le code adéquat pour faire cela.

Merci par avance pour vos réponses.
 
Bonsoir Steeve, bonsoir à toutes et à tous 🙂

Je ne sais pas ce que tu veux dire par répertoire courant... Alors dans le doute, je te propose 2 instructions (variable Chemin à déclarer en String) :

1) Sélectionner le répertoire du classeur :

Chemin = ThisWorkbook.Path & '\\\\\\\\'

2) Sélectionner le répertoire courant :

Chemin = CurDir & '\\\\\\\\'

Puis, pour sauvegarder ton fichier en premier, puis sous un autre nom :

Application.DisplayAlerts = False
ThisWorkbook.Save
ThisWorkbook.SaveAs FileName = Chemin & Range('B5').Value
Application.DisplayAlerts = True

En espérant que cela réponde à ta demande.

A+ 😉
 
Bonjour Charly2, Bonjour à tous

Pour préciser ma demande: il s'agit du répertoire / dossier dans lequel se trouve le fichier.
J'ai tester ton code: le fichier s'enregistre sous le nom 'false' et dans 'mes documents'...
est-ce normal ? si ce ne pas le cas que faut-il changer ?

Merci
 
Bonjour Steeve, bonjour à toutes et à tous 🙂

Curieux ! As-tu bien un nom de fichier dans la cellule B5 de ta feuille active ?

Voici le code complet - il faut que ton fichier ait déjà été sauvegardé au moins 1 fois, i.e. que ce ne soit pas un nouveau classeur :

Option Explicit

Private Sub Workbook_BeforeClose(Cancel As Boolean)
'
Dim Chemin As String
'

  If ThisWorkbook.Name = Range('B5').Value Then Exit Sub

  ' Répertoire du classeur actuel
  Chemin = ThisWorkbook.Path & '\\\\\\\\'

  ' Il n'y aura pas de message d'alerte
  Application.DisplayAlerts = False

  ' Sauvegarde préalable des modifications du classeur
  ThisWorkbook.Save

  ' Sauvegarde sous un nouveau nom (indiqué en B5 de la feuille active)
  ThisWorkbook.SaveAs FileName:=Chemin & Range('B5').Value

  ' on remet les chose en place avant de partir...
  Application.DisplayAlerts = True

End Sub

Je viens de tester avec SteeveTest.xls en B5 et je n'ai aucun souci. Le fichier principal est sauvegardé avec les modifications et un fichier est créé dans le même répertoire avec SteeveTest.xls pour nom.

Tiens-nous au courant.

A+ 😉
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
2
Affichages
476
Réponses
5
Affichages
755
Réponses
2
Affichages
996
J
Réponses
6
Affichages
2 K
krimoines
K
Retour