Astuce pour gagner en temps d'enregistrement

Fermé
bitbit - 31 juil. 2015 à 19:58
 bibit - 4 août 2015 à 10:13
Bonjour, Chers experts

Dans mon projet excel pour guichet de caisse, juste avant le lancement de chaque réçu, le code suivant est exécuté "ActiveWorkbook.Save"

Problème:
Il met 40s au moins pour finir
Y a t il autre astuce pour pour gagner en temps?

Merci d'avance pour votre concours

A voir également:

5 réponses

via55 Messages postés 14502 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 9 décembre 2024 2 737
31 juil. 2015 à 20:38
Bonsoir

Desactive déjà en début de macro le rafraichissement écran et surtout met le calcul en manuel :
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual

et en fin de macro tu remets normal :
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic

Tu devrais peut-être déjà gagner un peu de temps

Mais si le fichier est important, il faut le temps pour la sauvegarde

Cdlmnt
Via
0
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 247
31 juil. 2015 à 22:51
Bonjour,

à mon avis c'est surtout la taille qui joue.
Si tu as mis de photos dedans c'est déconseillé.
Il fait combien ?

eric
0
Merci via55
Je pense à autre chose. les informations à sauvegarder concernent 2 colonnes [E et F]. Est il possible de créer un classeur caché sur lequel est stockées ces informations (N°d'ordre et Date de règlement) qui est rapidement enregistré. Ceci étant ont crée une macro évènementiel qui copie ces 2 colonnes et les colle dans mon classeur à l'ouverture de celui-ci.


Est ce possible?
0
via55 Messages postés 14502 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 9 décembre 2024 2 737
3 août 2015 à 10:55
Bonjour bibit

Tu peux ouvrir un nouveau classeur et le nommer
Copier dans ce classeur les 2 colonnes
Fermer et sauvegarder le classeur avec un mot de passe :
Workbooks.SaveAs "nom du classeur.xls", , "mot de passe"
Ce mot de passe sera demandé à l'ouverture du classeur

Cdlmnt
Via
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Merci pour l'intérêt porté à ma requête

Je pense n'avoir pas été très claire.
Mon fichier est très lourd et l'enregistrement à la fin de chaque action demande beaucoup de temps. Or la plage à renseigné dans l'application est [E12: F50000]

Mon astuce est le suivant

Dans un classeur caché, on poste les données des 2 colonnes puis l'enregistrer automatiquement.
Lorsqu'il y a arrêt inattendu du classeur, à la réouverture de l'application, une macro événementielle, copie les deux colonnes du classeur caché et les colle dans mon projet. de ce fait, mon projet est à jour.

C'est pour parer à une faille qui peut permettre à l'utilisateur du classeur de délivrer le reçu puis provoquer un arrêt anormales de l'application (à l'arrêt normal une macro événement enregistre automatiquement l'application)

Voyez encore quelle aide vous pouvez apporter dans ce sens? Merci d'avance.
0