Microsoft 365 Vérifier code

Marvin57

XLDnaute Occasionnel
Bonjour tout le monde,

j'ai une question concernant le code ci-joint.

VB:
Sub QUITTE_ET_BACKUP_BTA() ' Ferme le programme et fait une sauvegarde BACKUP
Application.DisplayAlerts = False
ActiveWorkbook.Save
ActiveWorkbook.SaveCopyAs "E:\BACKUP BTA\" + ActiveWorkbook.Name
Application.DisplayAlerts = True
Application.Quit
End Sub

Ce code sert à fermer et créer une sauvegarde de mon fichier.

Il me remplace à chaque fermeture du fichier, le fichier sauvegardé sur le support E.

Alors ma question est la suivante;

Est ce que ce code est bien écrit d'après vous ou non. Moi j'ai l'impression qu'il est lent car il lui faut bien 13, 14 secondes pour le tout .
Mon fichier à une taille de 5,4 Mo.

Merci d'avance pour vos avis.

Cordialement Marvin57
 
Solution
C
Re,
Comment voulez-vous qu'on vous aide si vous n'indiquez pas le message :rolleyes:

Edit : vu, erreur d'exécution 70 : permission refusée... c'est nouveau...
Voici une version testée qui fonctionne
VB:
Sub QUITTE_ET_BACKUP_BTA() ' Ferme le programme et fait une sauvegarde BACKUP
  Dim FsO As Object
  Application.DisplayAlerts = False
  Application.StatusBar = "Veuillez patienter, sauvegarde en cours...."
  ActiveWorkbook.Save
  ' Copier le fichier enregistré
  Set FsO = CreateObject("Scripting.FileSystemObject")
  FsO.CopyFile ActiveWorkbook.FullName, "E:\BACKUP BTA\" & ActiveWorkbook.Name, True
  Application.DisplayAlerts = True
  Application.Quit
End Sub

Mais la prochaine fois soyez plus EXPLICITE 🤨
C

Compte Supprimé 979

Guest
Re,

La réponse est : Oui
mais vous pouvez peut-être gagner du temps en copiant simplement le fichier plutôt que de l'enregistrer sous 🤔

A tester
VB:
Sub QUITTE_ET_BACKUP_BTA() ' Ferme le programme et fait une sauvegarde BACKUP
  Application.DisplayAlerts = False
  Application.StatusBar = "Veuillez patienter, sauvegarde en cours...."
  ActiveWorkbook.Save
  ' Copier le fichier enregistré
  FileCopy ActiveWorkbook.FullName, "E:\BACKUP BTA\" & ActiveWorkbook.Name
  Application.DisplayAlerts = True
  Application.Quit
End Sub

A+
 
Dernière modification par un modérateur:

Marvin57

XLDnaute Occasionnel
Re,

La réponse est : Oui
mais vous pouvez peut-être gagner du temps en copiant simplement le fichier plutôt que de l'enregistrer sous 🤔

A tester
VB:
Sub QUITTE_ET_BACKUP_BTA() ' Ferme le programme et fait une sauvegarde BACKUP
  Application.DisplayAlerts = False
  Application.StatusBar = "Veuillez patienter, sauvegarde en cours...."
  ActiveWorkbook.Save
  ' Copier le fichier enregistré
  FileCopy ActiveWorkbook.FullName, "E:\BACKUP BTA\" + ActiveWorkbook.Name
  Application.DisplayAlerts = True
  Application.Quit
End Sub

A+
Re,

alors je viens d'essayer le code, mais il me place la ligne "
FileCopy ActiveWorkbook.FullName, "E:\BACKUP BTA\" + ActiveWorkbook.Name
en jaune et je ne sais pas si on devrait voir cela mais il n'affiche pas le texte de la StatusBar "
Veuillez patienter, sauvegarde en cours....
Merci A+
 
C

Compte Supprimé 979

Guest
Re,
Comment voulez-vous qu'on vous aide si vous n'indiquez pas le message :rolleyes:

Edit : vu, erreur d'exécution 70 : permission refusée... c'est nouveau...
Voici une version testée qui fonctionne
VB:
Sub QUITTE_ET_BACKUP_BTA() ' Ferme le programme et fait une sauvegarde BACKUP
  Dim FsO As Object
  Application.DisplayAlerts = False
  Application.StatusBar = "Veuillez patienter, sauvegarde en cours...."
  ActiveWorkbook.Save
  ' Copier le fichier enregistré
  Set FsO = CreateObject("Scripting.FileSystemObject")
  FsO.CopyFile ActiveWorkbook.FullName, "E:\BACKUP BTA\" & ActiveWorkbook.Name, True
  Application.DisplayAlerts = True
  Application.Quit
End Sub

Mais la prochaine fois soyez plus EXPLICITE 🤨
 
Dernière modification par un modérateur:

Marvin57

XLDnaute Occasionnel
Re,
Comment voulez-vous qu'on vous aide si vous n'indiquez pas le message :rolleyes:

Edit : vu, erreur d'exécution 70 : permission refusée... c'est nouveau...
Voici une version testée qui fonctionne
VB:
Sub QUITTE_ET_BACKUP_BTA() ' Ferme le programme et fait une sauvegarde BACKUP
  Dim FsO As Object
  Application.DisplayAlerts = False
  Application.StatusBar = "Veuillez patienter, sauvegarde en cours...."
  ActiveWorkbook.Save
  ' Copier le fichier enregistré
  Set FsO = CreateObject("Scripting.FileSystemObject")
  FsO.CopyFile ActiveWorkbook.FullName, "E:\BACKUP BTA\" & ActiveWorkbook.Name, True
  Application.DisplayAlerts = True
  Application.Quit
End Sub

Mais la prochaine fois soyez plus EXPLICITE 🤨
Bonjour BrunoM45,

je suis vraiment désolé, je pensais que mon explication suffisait ! Oups !🙊
C'est promis la prochaine fois je m'appliquerai. ;)

J'ai mis en place votre code modifié et tout fonctionne très bien maintenant.

Je vous Remercie pour votre aide et votre patience.

A une prochaine fois peut-être.

Marvin57
 

Discussions similaires

Réponses
7
Affichages
558

Statistiques des forums

Discussions
314 776
Messages
2 112 835
Membres
111 675
dernier inscrit
Tacteo30