sauvegarde auto

  • Initiateur de la discussion Jex Celpas
  • Date de début
J

Jex Celpas

Guest
bonsoir à toutes et à tous.

J'ai vu que l'on peut faire une sauvegarde automatique de son fichier mais voici ma question.
Peut on ne sauvegarder qu'une feuille du fichier ( le fichier d'origine a une 10 de feuilles mais seul celle des datas est importante à sauvegarder).

J'ai mis en place la macro pour que lors de chaque enregistrement du fichier
il me sauvergarde une copie , le hic c'est que si dans une journée il y a
plusieurs manip de ce type j'aurais autant de copie de sauvegarde ...

Quelqu'un aurait il une idée ?

Merci d'avance.
 
J

Jex Celpas

Guest
Salut Renato,

J'y ai bien pensé mais le problème s'est si la personne fait une grosse bourre sur le fichier d'origine et le sauvegarde ....
Je sauvegarde la bourre et je perds mes données.
 
R

RENATO

Guest
Re JEX

Excellente remarque !!!

Tu peux envisager de coller une msgbox avant la fermeture et la sauvegarde du fichier afin de sensibiliser ton utilisateur au risque de "bourre" éventuelle et l'encourager ainsi à faire de l'auto-contrôle.

A+

RENATO
 
R

RENATO

Guest
RE JEX,

voici un projet en VBA qui peut satisfaire ta demande

Dans mon exemple : ton classeur de travail se nomme "MonClasseur"
l'idée c'est qu'à chaque fermeture de ce dernier, il va venir se dupliquer dans un classeur nommé "Sauvegarde", ce dernier s'étant au préalable dupliqué dans un autre classeur nommé "OldSauvegarde"
A partir de là tu conserves ton dernier classeur (Sauvegarde) et l'avant dernier (OldSauvegarde)

ATTENTION : avant de coller les lignes de script ci-dessous, veille à créer les deux classeurs précités (même si ils sont vides c'est sans importance).
D'autre part, si tu dois exploiter l'une ou l'autre des deux sauvegardes, ne pas activer les macros à l'ouverture du fichier.

Voilà les lignes de code, je te laisse le soin de changer les directory

Sub Auto_close()

Workbooks.Open Filename:= _
"C:\Documents and Settings\Mes documents\Sauvegarde.xls"
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:= _
"C:\Documents and Settings\Mes documents\OldSauvegarde.xls", FileFormat _
:=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:= _
False, CreateBackup:=False
ActiveWorkbook.Close
Windows("MonClasseur").Activate
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:= _
"C:\Documents and Settings\Mes documents\Sauvegarde.xls", FileFormat _
:=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:= _
False, CreateBackup:=False

End Sub

Salut

Rénato
 
J

Jex Celpas

Guest
Salut Renato

je viens de tester ta macro , super cela répond à mon besoin.
Je m'imaginais un truc complexe alors que ta solution est très simple
et très logique.

Par contre aurais tu une astuce pour ne sauvegarder qu'une feuille
(ex: Feuil1) à partir du fichier source.

Merci encore pout ton aide
 
R

RENATO

Guest
Salut Jex,

Pour ne sauvegarder qu'une feuille, voici une solution.

Ce script peut même je pense remplacer totalement le premier en ce sens qu'à chaque fermeture du fichier de travail, l'onglet "datas" est sauvegardé dans une fichier de sauvegarde "sauv" un numéro d'ordre est affecté automatiquement sur le nouvel onglet généré. (ça c'est pas la macro...c'est excel)

Avantage : 1 seul fichier de sauvegarde contenant autant d'onglets "datas" que le fichier de travail a été refermé.
Inconvénient : nécessité d'aller faire le ménage de temps à autre pour purger les plus "vieux onglets" du fichier de sauvegarde



Sub auto_close()

Workbooks.Open Filename:= _
"C:\Documents and Settings\Mes documents\Sauv.xls"
Windows("MonAutreClasseur.xls").Activate
Sheets("datas").Select
Sheets("datas").Copy After:=Workbooks("sauv.xls").Sheets(1)
ActiveWorkbook.Save
ActiveWorkbook.Close

End Sub

A bientôt

Rénato
 

Discussions similaires

Réponses
19
Affichages
634

Statistiques des forums

Discussions
312 393
Messages
2 087 961
Membres
103 686
dernier inscrit
maykrem