Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 création automatique d'une copie

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

Fred0o

XLDnaute Barbatruc
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
 

Scrat1964

XLDnaute Nouveau
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
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…