XL 2016 création automatique d'une copie

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 !

Scrat1964

XLDnaute Nouveau
Bonjour à tous.
J'ai un soucis avec une macro d'enregistrement d'une copie d'un fichier.
La macro fonctionne, mais elle n'est pas automatique.
Je voudrai qu'a chaque fois que l'on clique sur enregistrer la macro se lance pour faire une copie dans un autre répertoire sur un serveur.
Le fichier étant ouvert en permanence, je ne peux pas une utiliser la fonction "Workbook_BeforeClose" et y mettre ma macro.

Sub sauvegarde()
Dim Chemin As String
Dim Nom_Sauve As String
Application.DisplayAlerts = False
Chemin = "Y:\SrvFER\MAI-FERRAGE\Compte rendu CIR\Zone CDC\"
Nom_Sauve = "Suivie_prod_CDC33&54.xlsm"
ActiveWorkbook.SaveCopyAs Chemin & Nom_Sauve
Application.DisplayAlerts = True
End Sub

Je ne sais pas si il existe une fonction à mettre dans le module "ThisWorkbook" qui lancerai la macro à chaque enregistrement,
habituellement je trouve qqe chose qui corresponde à ce que je veux faire et je l'adapte, mais sur ce coup mes recherches sont restées infructueuses.

Merci pou votre aide

Bien à vous

.
 
Solution
Bonjour Scrat1964

Tu peux essayer avec "Private Sub Workbook_BeforeSave" :

VB:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim Chemin As String
Dim Nom_Sauve As String
    Application.DisplayAlerts = False
    Chemin = "Y:\SrvFER\MAI-FERRAGE\Compte rendu CIR\Zone CDC\"
    Nom_Sauve = "Suivie_prod_CDC33&54.xlsm"
    ActiveWorkbook.SaveCopyAs Chemin & Nom_Sauve
    Application.DisplayAlerts = True
End Sub

A mettre dans le code de ThisWorkBook
Bonjour Scrat1964

Tu peux essayer avec "Private Sub Workbook_BeforeSave" :

VB:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim Chemin As String
Dim Nom_Sauve As String
    Application.DisplayAlerts = False
    Chemin = "Y:\SrvFER\MAI-FERRAGE\Compte rendu CIR\Zone CDC\"
    Nom_Sauve = "Suivie_prod_CDC33&54.xlsm"
    ActiveWorkbook.SaveCopyAs Chemin & Nom_Sauve
    Application.DisplayAlerts = True
End Sub

A mettre dans le code de ThisWorkBook
 
Petit UP
La macro fonctionne nickel avec excel 2016.
Petit problème, le pc sur lequel est le fichier est sous excel 2007 et la macro ne fonctionne plus, elle bloque sur la ligne :
ActiveWorkbook.SaveCopyAs

Je vous joint la macro complète.

Private Sub Workbook_BeforeSave(ByVal SaveasUI As Boolean, cancel As Boolean)
On Error GoTo errorHandler
Dim Chemin As String
Dim Nom_Sauve As String
Application.DisplayAlerts = False
Chemin = "X:\MAI-FERRAGE\Compte rendu CIR\Zone CDC\"
Nom_Sauve = "Suivie_prod_CDC33&54.xlsm"
ActiveWorbook.SaveCopyAs Chemin & Nom_Sauve
Application.DisplayAlerts = True
Exit Sub
errorHandler:
End Sub

Qu'est-ce-que excel 2007 ne comprend pas ?
On Error GoTo fonctionne, puisque je n'ai pas eu d'erreur lors de mon premier essai, bien que la sauvegarde ne se soit pas effectuée.
SaveCopyAs normalement fonctionne sous excel 2007
Je suis un peu bloqué.

Merci de votre aide
 
- 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
Retour