Faie une copie de sauvegarde

Bonjour,

Voila, comme je viens juste de débuter en EXCEL, je voudrais créer une copie de sauvegarde de mon fichier à sa fermeture sur mon serveur (reseau) en lui ajoutant la date du jour. Pour information, ce fichier de sauvegarde sur le réseau va etre utilisé par d'autres personnes pour consultation.

Et merci pour la réponse

Bonjour,

Suis ce lien --> https://www.excel-pratique.com/forum/viewtopic.php?t=2069

Le code sera à placer en VBA dasn THISWORKBOOK et entre ces deux instructions :

Private Sub Workbook_BeforeClose(Cancel As Boolean)

....le code

End Sub

Amicalement

Dan

Merci pour la réponse. Comme je suis nouveau dans le domaine de l'EXCEL, vous ne pourriez pas me guider en me donnant la procedure pour inserer le code proposé dans THISWORKBOOK. Car je ne sais pas comment procéder dans EXCEL. Et merci encore.

Re,

Voici la procédure mais également le code modifié par rapport au lien que je t'ai donné.

  • Vas dans VBA par ALT + F11
  • CTRL + R pour afficher VBA project à gauche
  • Dans Microsoft excel project, double clique sur THISWORKBOOK
  • A droite place le code que je te donne ci-après
  • enregistre ton fichier et ce, avant de le fermer, car lorsque tu fermeras ton fichier le code va s'exécuter automatiquement.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
'Macro par Dan pour univers63 - 24/12/07
Dim nomfichier
Dim chemin As String
chemin = "C:\ARCHIVAGE\"
nomfichier = ActiveWorkbook.Name & "_" & Format(Now(), "yymmdd") & ".xls"
MsgBox "Votre sauvegarde porte la référence : " & nomfichier
With ActiveWorkbook
.SaveAs Filename:=chemin & nomfichier
.Close
End With
End Sub

Veille aussi à modifier le "chemin"(ici Archivage étant le dossier dans lequel le fichier sera sauvé) car dans ta demande tu ne donnes pas d'informations à ce sujet..

Amicalement

Dan

Merci beaucoup pour la réponse rapide.

Seulement, j'ai des difficultés a enregistrer le fichier car je ne sais pas lequel.

Ce qui est sure c'est que J'arrive jusqu'à l'insertion du code que tu m'as fournis. Une fois arrivé à cette étape je suis bloqué.

Comment le faire enregister? Et comment cette procédure sera prise en compte lors de l'ouverture et la fermeture du fichier?

Et merci infiniment pour la réponse.

Re,

j'ai des difficultés a enregistrer le fichier car je ne sais pas lequel

Que veux-tu dire ?

La macro enregistre ton fichier sous un autre nom (nom de ton fcihier + date). Cela s'effectue dès que tu fermes ton fichier original.

Il faut que tu enregistres ton fichier de travail avant de le fermer, sinon les modifications seront dans le fichier de sauvegarde mais pas dans le fichier de travail.

Si tu ne comprends pas, tu dois me mettre étape par étape ce que tu fais.

Chaque point est important. sois donc le plus détaillé possible.

A te lire

Dan

Encore une fois merci pour la réponse.

Les étapes effectuées sont :

1 - J'ouvre l'Excel

2 - ALT+F11

3 - Je vais sur VBAProject (classeur2) puis sur ThisWorkbook puis entrée.

4 - Sur la partie droite (classeur 2 - thisWorkBook (code)) j'insere le code que tu m'as envoyé...

Cest à ce niveau que je m'arrete. Après cela, quand j'ouvre un fichier quelconque et que je l'enregistre je retrouve rien dans le repertoire de sauvegarde.

Après l'étape 4 que dois je faire pour continuer. Et je mexcuse enormement pour ce dérrangement car je suis tout nouveau dans l'utilisation de Excel.

Merci

re,

Tu dis : -->

Cest à ce niveau que je m'arrete. Après cela, quand j'ouvre un fichier quelconque et que je l'enregistre je retrouve rien dans le repertoire de sauvegarde..

Une fois placée (ici dans classeur 2), tu enregistres ton fichier (comme je te l'ai dit avant) puis seulement après tu le fermes.

Par contre quand tu parles de "fichier quelconque", je ne comprends pas ce que tu fais. La macro ne concerne que le fichier dans lequel tu l'as placée.

A te lire

Dan

Impeccable elle fonctionne.

Mais cette macro concerne uniquement 1 fichier. Ce que je veux moi, c'est quelle fonctionne sur l'ensemble des fichiers qui seront ouverts. J'en ai 5 fichiers à faire leurs sauvegarde... Y'a pas un moyen d'automatiser cette macro pour tous les fichiers ouverts...?

Et merci

re,

Lol ! tout est toujours possible mais tu n'as pas expliqué cela au départ.

Le plus simple serait que tu places cette macro dans chacun des fichiers. Dans ce cas dès que tu fermes le fichier, il est sauvegardé.

Si tu veux cela pour tous les fichiers ouverts, il faut connaitre le nom des fichiers concernés et que la commande se fasse d'un fichier maître. Ce fichier sera celui qui fermera les autres.

A te lire

Dan

Merci beaucoup Nad-Dan. Mais, y'a t'il une autre macro qui permet d'automatiser cette sauvegarde et qui sera unique pour l'ensemble des fichiers ouverts?...

re,

C'est possible comme je te l'ai dit avant mais il faut savoir :

  • combien de fichiers sont ouverts. (Tu parles de 5)
  • le fichier de référence dans laquelle on devra placer la macro doit être aussi sauvé de la même manière ?
  • l'endroit où tous les fichiers sont sauvegardés. dans le même répertoire ou dans des différents.

en bref, 1 fichier de référence dans lequel doit être mise la macro et de celui-là on ferme les autres.

A te relire

Dan

Re,

En remplaçant la macro que je t'ai donnée par celle-ci :

Private Sub Workbook_BeforeClose(Cancel As Boolean)
'Macro par Dan pour univers63 - 24/12/07
Dim i as byte
Dim nomfichier
Dim chemin As String
chemin = "C:\ARCHIVAGE\"
For i = 1 To Workbooks.Count
If Workbooks(i).Name <> ThisWorkbook.Name Then
nomfichier = Workbooks(i).Name & "_" & Format(Now(), "yymmdd") & ".xls"
MsgBox "Votre sauvegarde porte la référence : " & nomfichier
With Workbooks(i)
.SaveAs Filename:=chemin & nomfichier
.Close
End With
End If
Next i
With ThisWorkbook
nomfichier = .Name & "_" & Format(Now(), "yymmdd") & ".xls"
.SaveAs Filename:=chemin & nomfichier
End With
End sub

Le fichier dans lequel se trouve ta macro sera sauvé et fermé en dernier.

Tous les fichiers sont sauvés dans le même répertoire.

A te lire

Dan

Impeccable. Merci de ton aide Nad-Dan.

Rechercher des sujets similaires à "faie copie sauvegarde"