Forcer l'AutuoRecover sous Excel par une ligne de commande VBA

Résolu
Signaler
Messages postés
64
Date d'inscription
jeudi 3 mars 2005
Statut
Membre
Dernière intervention
2 septembre 2010
-
Messages postés
1488
Date d'inscription
mercredi 5 février 2003
Statut
Membre
Dernière intervention
3 décembre 2007
-
Bonjour à tous,

Il existe sous Excel une fonction Autorecover qui permet de faire un back-up des données. Cette fonction s'active toutes les 10 minutes par défaut (paramétrage accessible par le menu 'tools'>'options' -> onglet 'save'). Je souhaiterais pouvoir activer la sauvegarde de back-up quand je le veux et pas seulement toutes les x minutes. Savez-vous si cela est possible et connaissez-vous la commande en VBA pour activer la sauvegarde?

Merci

5 réponses

Messages postés
1488
Date d'inscription
mercredi 5 février 2003
Statut
Membre
Dernière intervention
3 décembre 2007
24
hum... Attend, dit moi si je me trompe mais il me semble que tous les scripts VBA appartiennent forcément à un fichier !!! Vrai ou faux (autrement dit, est-ce qu'une macro peut appartenir directement à Excel ???) ?

Si c'est bien vrai, si j'hallucine pas, tu es donc obligé, pour coder un tel script, d'avoir préalablement enregistré le fichier Excel sur le disque!!! Donc on peut se contenter de la méthode Save non ???

Mais sinon, généralement, lorsqu'un user fait du Excel le CPU/HD est à un niveau d'utilisation minimal!!! Donc, rien ne t'empêche de paramêtrer, sur tous les Excels (cf. fichier normal.dot) de ton boulot, sur un auto-save de 1 minute !!! Puisqu'en plus, c'est totalement transparent! Ca garantira un niveau de sécurité optimum !

Sinon, pour être tout à fait honnête avec toi, j'en sais foutrement rien! Peut-être y'a-t-il a gratter du coté de la manipulation des menus... Mais franchement, je pense que le processus est totalement automatique. C'est à dire que je pense que le seul contrôle que tu puisses avoir dessus reste le timer qui doit pouvoir se paramêtrer... si on peut paramétrer les Options d'Excel!!!

Voilà. Désolé de ne pouvoir faire plus pour toi. Mais j'espère avoir quand même pu te mettre sur une voie...

Enjoy

<hr size="2" width="100%">
( Si une réponse vous convient, cliquez sur le bouton "Réponse acceptée". )
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 109 internautes nous ont dit merci ce mois-ci

Messages postés
64
Date d'inscription
jeudi 3 mars 2005
Statut
Membre
Dernière intervention
2 septembre 2010
1
Salut ScSami,

En fait, on peut intégrer une macro directement à Excel: il suffit pour cela de l'enregistrer en *.xla. Là, tu peux distribuer ta macro et n'importe qui peut l'installer sur son Excel, elle sera lancée automatiquement au démarrage d'Excel.

Par exemple, celle que j'ai développée ajoute des boutons dans la barre d'Excel qui permettent d'effectuer certaines opération: elle permet de rapatrier des données issues d'appareil de mesures via le réseau Ethernet. Et parfois, à cause d'une couille sur le réseau, eh bien ça plante... D'où ma question !

Effectivement, tu as raison, je pourrais paramétrer l'autosave à 1mn, mais je n'aime pas trop cette solution car il faudrait que les utilisateurs le fasse manuellement, ça fait une étape de plus dans l'installation et ça donne pas trop confiance (ça fait un peu style: attention, l'application que vous allez installer marche pas très bien et plante régulièrement).

Alors j'ai cherché dans l'aide d'Excel, mais bon, je t'avouerai que j'ai rien trouvé du tout... Donc du coup j'ai fait un petit sytème à la mano: j'ai édité une variable que j'initialise à 1 lorsque Excel démarre et que je remet à 0 lorsque Excel est coupée proprement et j'enregistre cette donnée dans un fichier *.ini. Par ailleurs, à chaque fois que je rapatrie des données, je fait une copie de la feuille Excel dans un fichier temporaire autre que celui de l'utilisateur. Lorsque Excel crashe et est redémarré, la macro lit que la variable du fichier *.ini n'a pas été remise à 0 (donc que Excel ne s'est pas coupé correctement) et ouvre d'office le fichier de sauvegarde afin de pouvoir récupérer les données éventuellement non enregistrées. Ca prend juste quelques lignes de code en plus.

J'avoue que ma question pouvait paraitre un peu bizzare, mais j'avais vraiment besoin de faire cette fonctionnalité.

En tout cas, merci de ton aide et d'avoir pris un peu de temps pour me répondre.

A+
Chouchen
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 109 internautes nous ont dit merci ce mois-ci

Messages postés
1488
Date d'inscription
mercredi 5 février 2003
Statut
Membre
Dernière intervention
3 décembre 2007
24
<ton classeur>.Save

Tout simplement!

Enjoy

<hr size="2" width="100%">
( Si une réponse vous convient, cliquez sur le bouton "Réponse acceptée". )
Messages postés
64
Date d'inscription
jeudi 3 mars 2005
Statut
Membre
Dernière intervention
2 septembre 2010
1
Salut ScSami,

En fait, la méthode save n'est pas tout a fait adaptée à ce que je veux faire. Je m'explique: la fonction autorecover permet de récupérer les données en cas de crash de Excel. C'est celle-ci que je voudrais activer à ma guise. C'est vrai que c'est semblable à save, mais il y a des petites différences:
- Par exemple, l'autorecover ne force pas l'utilisateur à sauvegarder son fichier, cela fait juste un back-up toutes les x-minutes. Avec l'autorecover, l'utilisateur est libre d'enregistrer ou non les modifications qu'il a apportées à son workbook.
- De plus, si l'utilisateur a crée un nouveau workbook et ne l'a pas encore suavegardé, la fonction autorecover ne lui demandera pas où il veut enregistrer le fichier alors qu'un save le lui demandera.

Bref, ça a l'air un peu con comme ça, mais je voudrais que ça soit complètement transparent pour l'utilisateur (dès que ça devient un peu trop compliqué, mes collègues viennent me voir en me demandant comment ça marche et patati et patata... enfin bref...)

A+
Messages postés
1488
Date d'inscription
mercredi 5 février 2003
Statut
Membre
Dernière intervention
3 décembre 2007
24
Très astucieux ton procédé! Enfin, perso je me serais pas fait "chier" (pardonne l'expression) à mettre l'info dans un fichier .ini! Je pense que j'aurais plutôt opté pour un choix moins "propre" mais plus "simple" comme, par exemple, changer un truc invisible à une cellule (son verrou, ..) ou un point blanc dans une cellule inutile (...). Ce qui m'amène d'ailleurs à me demander cette variable que tu as créé n'existerait pas déjà dans Excel...

Enfin, j'imagine que tu as bien dû chercher partout et je te fait donc confiance si tu nous dis qu'il n'y a rien de tel

Mais tu vois, comme quoi on en apprends tous les jours, j'ignorais qu'on pouvait créer des macros "indépendantes".

Enjoy

<hr size="2" width="100%">
( Si une réponse vous convient, cliquez sur le bouton "Réponse acceptée". )