XL 2016 [VBA] [RESOLU] Copie dans un autre répertoire à la fermeture

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

Zazouha95

XLDnaute Nouveau
Bonjour,
Je souhaite pouvoir copier mon fichier Excel dans un autre répertoire au moment où je quitte mon fichier excel.

J'ai utilisé ceci :

Private Sub Workbook_BeforeClose(Cancel As Boolean)
ThisWorkbook.SaveCopyAs Filename:="D:\Mes Documents\" & "monfichier.xlsm"
End Sub

Malheureusement, c'est mon fichier à l'identique qui s'y copie... et donc quand on le ferme, la macro s'exécute, et provoque une erreur VBA.

J'ai donc tenté de modifier ma macro ainsi :

Private Sub Workbook_BeforeClose(Cancel As Boolean)
ThisWorkbook.SaveCopyAs Filename:="D:\Mes Documents\" & "monfichier.xlsx"
End Sub

Evidemment, ça n'a pas marché.........

Avez-vous une idée pour m'aider svp ?

Merci par avance et bonne fin de journée !
 
Bonjour,

Il faut que tu codes la ligne "Cancel = True" pour arrêter le processus avant de faire la sauvegarde et fermer le fichier :

VB:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
  Cancel = True
  ThisWorkbook.SaveCopyAs...
  Application.EnableEvents = False
  ThisWorkbook.Close
  Application.EnableEvents = True
End Sub

Daniel
 
Bonjour,

Merci pour votre réponse mais malheureusement, ça ne marche toujours pas. En effet, lorsque j'ouvre la copie de mon fichier :

Si je nomme le fichier monfichier.xlsx --> message d'erreur sur le format/extension
Si je nomme le fichier monfichier.xlsm --> toujours une erreur VBA

Merci de votre aide.
 
Tu ne peux pas changer le type du fichier copié. Si le fichier est .xlsm, tu dois le copier en .xlsm. Sinon, poste ton code en indiquant le nom de ton classeur initial. Indique également les libellés et numéros des messages d'erreur.

Daniel
 
Rebonjour,

J'ai finalement opté pour :

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.DisplayAlerts = False
If Not Me.Saved Then Me.Save
Me.SaveAs "D:\Mes documents\" & "Monfichier", 51
'51 => fichier .xlsx
End Sub

Mon fichier est copié en .xlsx sur un autre répertoire.
Merci encore pour vos réponses !
 
- 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