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

XL 2016 enregistrer sur le bureau chaque 5mn classeur actif sous son nom +1

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour à toutes et à tous,

Afin d'éviter ou de réduire les risques de pertes de données saisies, je voudrais faire ce qui suit :

Enregistrement automatique chaque 5 mn (ou à paramétrer selon besoin) du fichier sous un autre nom
actuellement : nom du fichier = valeur A1

J'ai relevé le code sur : https://forum.excel-pratique.com/viewtopic.php?t=18819 que je remercie au passage

Le code enregistre dans "mes documents"
J'ai besoin que l'enregistrement se fasse sur le bureau de l'ordinateur (ou autre nom du bureau, quel que soit l'ordinateur)

D'autre part et si possible LOL
en remplacement des codes : Range("b1").Value = Range("b1").Value + 1 et [a1] = "=""enregistrement""&RC[1]"
qui m'obligent à occuper 2 cellules (a1 et b1) de ma feuille … est-il possible d'écrire un code qui enregistre directement sous le nom du classeur actif +1
J'ai cherché et fait des tests sans meilleure réussite.

Comme d'hab, je fais appel à votre expertise pour une solution qui m'arrangerait bien 🙂
Je joins le fichier test paramétré pour tests toutes les 10 secondes.

Un grand merci une fois de plus à toutes et à tous,
Amicalement,
Lionel,
 

Pièces jointes

Dernière édition:
Bonjour Lionel,

Les codes que tu indiques sont inutilement compliqués, vois le fichier joint avec :

- dans le module standard :
VB:
Public t# 'mémorise la variable

Sub Enregistrer()
ThisWorkbook.SaveAs ThisWorkbook.Path & "\enregistrement" & Val(Mid(ThisWorkbook.Name, 15)) + 1
On Error Resume Next
Application.OnTime t, "Enregistrer", , False
t = Now + 5 / 1440 'délai de 5 minutes
Application.OnTime t, "Enregistrer"
End Sub
- dans ThisWorkbook :
VB:
Private Sub Workbook_Open()
t = Now + 5 / 1440 'délai de 5 minutes
Application.OnTime t, "Enregistrer" 'lance le processus
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
Application.OnTime t, "Enregistrer", , False 'arrête le processus
End Sub
A+
 

Pièces jointes

Bonjour lionel et Job75,

La macro 1 peux être aussi changer ainsi
VB:
Sub Macro1()
    'MsgBox Split(ThisWorkbook.Name, ".")(0)
    For i = 1 To Len(Split(ThisWorkbook.Name, ".")(0))
        c = Mid(Split(ThisWorkbook.Name, ".")(0), i, 1)
        If c >= "0" And c <= "9" Or c = "." Then Temp = Temp & c
    Next i
    NumChaine = Val(Temp)
    NumChaine = NumChaine + 1
    Sauvgarde = Replace(ThisWorkbook.Name, Val(Temp), NumChaine)
    'ActiveWorkbook.SaveAs Filename:=[a1].Value
    ActiveWorkbook.SaveAs Filename:=Sauvgarde
    'Range("b1").Value = Range("b1").Value + 1
    '[a1] = "=""enregistrement""&RC[1]"
End Sub
 
Re-Gérard,
Evidemment ça marche 🙂
Un gros MERCI de plus

J'aurais une dernière question sur ce sujet (LOL on ne fera pas 70 posts sur celui-là 🙂)
Je vais revenir pour voir si réponse possible.
Lionel,
 
Re-Gérard,

Nickel de chez nickel 🙂

Je reviens pour dernière question 🙂
Sur le bureau des ordinateurs de mes commerciales, en enregistrant toutes les 5 minutes, il va y avoir une flopée de classeurs qui, mélangés à ce qui est déjà sur leurs bureaux, va mettre pour elles la pagaille et va leur prendre du temps pour les supprimer (pour ne garder que le dernier) avec le risque de supprimer d'autres fichiers ou dossiers importants pour elles.

Serait-il possible par code, dans le fichier ou autre ... de ne garder que les 5 derniers ?
OUI, je sais ... pour les miracles je vais m'adresser vers le ciel ... mais LOL, n'y suis-je pas ? 🙂
 
Effectivement, je comprends la question 🙂

En cas de plantage excel ou ordi et éventuelle perte du fichier ouvert ...
Ces enregistrements chaque 5 minutes sont la certitude d'avoir le travail fait enregistré dans un fichier "distinct" chaque 5 minutes avant.

Mais des dizaines de classeurs : ça va mettre la pagaille sur leurs bureaux.
Et le dernier classeur enregistré est suffisant puisqu'il contient le travail fait. 🙂
 
Dernière édition:
Je dirais même que ne garder que les 2/3 derniers fichiers enregistrés serait suffisant 🙂
En ajoutant cette instruction dans la macro Enregistrer on conserve seulement les 3 derniers fichiers :
VB:
Kill ThisWorkbook.Path & "\enregistrement" & Val(Mid(ThisWorkbook.Name, 15)) - 3 & ".xlsm"
 

Pièces jointes

Bonjour Gérard, le forum,
Je confirme que ton code fonctionne super bien mais il y a une chose que je ne comprends pas :

dans le code le nom du classeur est "\enregistrement"
ThisWorkbook.SaveAs ThisWorkbook.Path & "\enregistrement" & Val(Mid(ThisWorkbook.Name, 15)) + 1
et
Kill ThisWorkbook.Path & "\enregistrement" & Val(Mid(ThisWorkbook.Name, 15)) - 3 & ".xlsm"

Je voudrais modifier le nom (1 nom classeur par Commerciale), par exemple "\Charlotte_isitelImmobProspection" soit :
ThisWorkbook.SaveAs ThisWorkbook.Path & "\Charlotte_isitelImmobProspection" & Val(Mid(ThisWorkbook.Name, 15)) + 1
et
Kill ThisWorkbook.Path & "\Charlotte_isitelImmobProspection" & Val(Mid(ThisWorkbook.Name, 15)) - 3 & ".xlsm"

et là, ça fonctionne plouf plus .... ai-je oublié de modifier qqchose ?

après réflexion, je pense que c'est la mémorisation. Je vais voir 🙂

Bon dimanche 🙂
lionel,
 
Dernière édition:
Bonsoir Lionel, Gérard, laurent 950, le forum,

Il faut que tu remplaces comme ceci :

VB:
Sub Enregistrer()
ThisWorkbook.SaveAs ThisWorkbook.Path & "\Charlotte_isitelImmobProspection" & Val(Mid(ThisWorkbook.Name, 33)) + 1
On Error Resume Next
Application.OnTime t, "Enregistrer", , False
t = Now + 5 / 1440 'délai de 5 minutes
Application.OnTime t, "Enregistrer"
Kill ThisWorkbook.Path & "\Charlotte_isitelImmobProspection" & Val(Mid(ThisWorkbook.Name, 33)) - 3 & ".xlsm"
End Sub

Ici, Val(Mid(ThisWorkbook.Name, 33)), le chiffre doit correspondre au nombre de caractères du nom de ton classeur.

Voilà.

A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…