XL 2021 Accélérer la copie du classeur actif faite par vba

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour à toutes et à tous :)
Je vous souhaite un beau WE...
et pour ce fil
Bjr Gérard, Bjr Fipat, Bjr le Fil :)

Dans ce fil, j'ai choisi le code de Gérard qui fonctionne super bien, Merci Gérard :)
Merci aussi à Fipat :) ton code fonctionne aussi et je le garde.

Je reviens en référence au fil ci-dessus pour une autre question.
Est-il possible "d'Accélérer la copie du classeur actif faite par vba ?"

Je m'explique :
Le but de ce code est de faire une copie dans un dossier "sauvegarde",
- Cette copie doit se faire après l'affectation du résultat d'un appel,
- Pour cette mission, chaque appel dure entre 2 et 6mn en moyenne,
(autant dire qu'il y en a beaucoup, donc autant d'affectations.

J'en viens à ma question :
- Si, par exemple, je fais un copier/coller d'un classeur sur le bureau de mon ordi, il m'est demandé si je veux le renommer et la copie est faite quasi instantanément pour un classeur de moins de 2Mo.

- la copie faite par vba avec le code de Gérard
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [B1]) Is Nothing Then Exit Sub
Dim fichier1$, chemin$, fichier2$, a$(), n%
fichier1 = ThisWorkbook.Name
If fichier1 Like "* ## ## ##*" Then Exit Sub
ThisWorkbook.Save 'enregistre le fichier
chemin = ThisWorkbook.Path & "\Sauvegarde\"
If Dir(chemin, vbDirectory) = "" Then MkDir chemin
fichier2 = Dir(chemin & "*.xlsm")
While fichier2 <> ""
    ReDim Preserve a(n) 'base 0
    a(n) = fichier2
    If n Then Kill chemin & a(n - 1) 'vide le dossier
    n = n + 1
    fichier2 = Dir
Wend
ThisWorkbook.SaveCopyAs chemin & Left(fichier1, Len(fichier1) - 5) & Format(Now, " hh mm ss") & ".xlsm" 'sauvegarde
End Sub
Prend environ 3 secondes, et quelques fois jusqu'à 7 secondes.
Et 3/7 secondes X par un nombre de fois important, ça fini par compter et c'est "un peu barbant" d'attendre chaque fois 3/7 secondes avant de continuer le boulot.

Ma question donc (j'y crois pas trop lol)
Est-il possible "d'Accélérer la copie du classeur actif faite par vba ?"
J'ai fait des recherches cette nuit sans rien trouver pour l'instant.

Mais qui sait avec nos ténors......
Merci à toutes et à tous pour m'avoir lu,
:)
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 206
Messages
2 086 226
Membres
103 159
dernier inscrit
FBallea