Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Autres sauvegarde semestriel d'un fichier excel

Tom pouce

XLDnaute Nouveau
Bonjour, Je recherche une macro me permettant la sauvegarde automatique semestrielle d'un fichier excel (nom du fichier >> gestion compte 20) dans un dossier portant pour exemple le nom >> sauvegardes antérieur comptes
Merci
Tom pouce
 
Solution
Bonjour Tom pouce,

Non, si votre classeur est à cet endroit

Sinon il faut modifier la ligne
VB:
sPath = ThisWorkbook.Path & "\" & Range("BackupWhere")
par
VB:
sPath = Range("BackupWhere")

Ainsi la variable "sPath" prendra la valeur du chemin complet

J'espère que ce sera clair

Phil69970

XLDnaute Barbatruc
Bonjour à tous

@Tom pouce

Dans ThisWorkbook: :

VB:
Private Sub Workbook_Open()
Dim MaDate As Date
Dim Fichier As String

MaDate = Range("D1") + 180
If Date > MaDate Then
   
    ' A adapter .........
    Fichier = "C:\Mon chemin qui va bien\Nom de mon fichier.xlsm" 'A adapter bien sur
    ThisWorkbook.SaveAs Fichier
    '******
   
    Range("D1") = Date  ' Mets la date du jour et c'est reparti pour 180 jours
End If
End Sub

Dans l'exemple :
Tu mets la date du 07/06/2024 dans la cellule D1
Tu mets le nom du chemin et le nom du fichier dans le code VBA

Il faut attendre demain pour que le fichier s'enregistre si tu es pressé il faut adapter la date de la cellule D1

Merci de ton retour
 

patricktoulon

XLDnaute Barbatruc
bonjour à tous
je ne sais pas mais perso je ferais ça dans le close
pour au moins sauvegarder les dernières modifs du jour
sinon la dernière sauvegarde correspondra a l’état du classeur 180 jours avant
en bref toujours 180 jour de retard sur l'effectif
 

Phil69970

XLDnaute Barbatruc
Bonjour Patrick

Au pire il perd le travail du jour.
Si il enregistre sa sauvegarde à 8 h 00 du matin (à l'ouverture du fichier) il aura bien tout ce qui c'est passé les 6 derniers mois
Si il enregistre sa sauvegarde à 8 h 00 du soir (à la fermeture du fichier) il aura bien tout ce qui c'est passé les 6 derniers mois + la journée du jour

Evidement si il ouvre son fichier que tous les 6 mois il faut mieux y inclure la journée du jour !!!
Mais perso je vois plus trop bien l'utilité de sa demande dans ce cas là. (D'ouvrir un fichier tous les 6 mois)

Mais si il a peur de foutre en l'air le fichier en l'ouvrant et le bricolant tous les 6 mois il faut mieux faire la sauvegarde à l'ouverture avant bricolage......
 

Tom pouce

XLDnaute Nouveau
Bonsoir Phil69970, j'ai commis deux erreurs, la première erreur la sauvegarde à faire n'est pas semestrielle mais hebdomadaire oups, et effectivement si la sauvegarde pouvait se faire en fermant le fichier serait mieux. La deuxième erreur, le fichier en pièce jointe à plusieurs onglets et ça a une grande importance pour la macro je pense. Je t'ai mis le fichier concerné. Il est protégé en écriture. le code est virema. Merci
 

Pièces jointes

  • gestion compte 2024.xls
    426 KB · Affichages: 3

wDog66

XLDnaute Occasionnel
Bonjour Tom pouce, à tous

Avec une feuilles "Params" que vous pouvez masquer et dans laquelle vous pouvez paramétrer le nombre de jour avant sauvegarde et le dossier (plages nommées)

La backup se fait en fermant le fichier, qu'il y est un onglet ou plusieurs, cela ne change rien puisqu'on sauvegarde le classeur entier

A+
 

Pièces jointes

  • gestion compte 2024.xls
    425 KB · Affichages: 6

Tom pouce

XLDnaute Nouveau
BonsoirWDog66,
Dois-je modifier ou copier le chemin d'accès qui est (C:\Users\Bruno\Documents\Comptabilité\Documents) au fichier de sauvegarde Backup ?
Merci
 

wDog66

XLDnaute Occasionnel
Bonjour Tom pouce,

Non, si votre classeur est à cet endroit

Sinon il faut modifier la ligne
VB:
sPath = ThisWorkbook.Path & "\" & Range("BackupWhere")
par
VB:
sPath = Range("BackupWhere")

Ainsi la variable "sPath" prendra la valeur du chemin complet

J'espère que ce sera clair
 

Discussions similaires

Réponses
5
Affichages
271
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…