Astuce pour gagner en temps d'enregistrement

bitbit -  
 bibit -
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

5 réponses

  1. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    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
  2. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    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
  3. bibit
     
    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
  4. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. bibit
     
    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