XL pour MAC Enregistrer automatiquement toutes les 30 minutes

  • Initiateur de la discussion Initiateur de la discussion Valter
  • Date de début Date de début

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 !

Valter

XLDnaute Occasionnel
Bonjour le forum ,
Après de nombreux essais je bute sur un problème dont je n'ai pas trouvé la solution, j'aimerai que toutes 30 minutes, automatiquement s'affiche un msgbox de rappel en disant ceci : "cela fait 30 minutes que tu n'as pas sauvé ton travail, veux tu le sauver maintenant ?" et que l'utilisateurs puisse choisir oui ou non, si oui la sauvegarde s'exécute, si non : Exit Sub.
Mais ce qui es le plus difficile, c'est que j'aimerai que le msgBox s'affiche uniquement si le travail n'as pas été sauvegardé auparavant durant ou moins 30 minutes, si le travail est sauvegardé manuellement par l'utilisateur toutes les 15 minutes par exemple, he bien ... pas besoin d'afficher automatiquement le msgBox.
Merci pour votre aide.
 
Bonjour,
Pourquoi ne pas utiliser l'enregistrement auto ?
Ce lien n'existe plus
enregistrement auto.png
 
Dernière édition:
Bonjour
Essayons de ne pas confondre récupération avec sauvegarde

Je verrais plutôt les choses de cette manière :
dans un module standard :
VB:
Public prochain As Date
Const delai As Long = 10


Public Sub sauve_qui_veut()
  If prochain <= Now Then
  msg = delai & " secondes " & " se sont écoulés sans sauvegarde depuis ta dernière modification" & _
  "veux tu sauvegarder maintenant  maintenant ?"
    If MsgBox(msg, vbYesNo) = vbYes Then
       'instructions de sauvegarde (saveas) ici
       MsgBox "classeur sauvegardé"
    End If
    prochain = DateAdd("s", delai, Now)
  End If
End Sub

et dans le module de ThisWorkBook

VB:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
   If prochain = 0 Then prochain = DateAdd("s", delai, Now)
    If prochain <= Now Then
      prochain = DateAdd("s", delai, Now)
      Application.OnTime prochain, "sauve_qui_veut"
    End If
End Sub

Inutile de sauvegarder si pas de modif faite
On évite également l'utilisation en boucle de Ontime
 
Merci, c'est exactement ce que je désirais, il y a cependant juste un problème, la macro se met en route chaque fois que j'écris quelque chose, je voudrais que elle se mette en route disons 20 minutes après la dernière sauvegarde. J'ai essayé de mettre une valeur dans "s" comme par exemple 60 pour dire chaque 60 secondes, mais un message d'erreur s'affiche...
 
je voudrais que elle se mette en route disons 20 minutes après la dernière sauvegarde
Aucun problème pour qu'elle "se mette en route" dans ces conditions, mais (réfléchissons ensemble)elle se déclencherait alors sans cesse, à chaque instant, dès lors que chaque "instant" suivant serait au-delà du délai accepté !
Prends un café et penses-y calmement, logiquement, sans le moindre code, ... tu vas vite comprendre. 🙂
Pour le reste (l'utilisation du délai dans la méthode/fonction Dateadd), je te laisse ouvrir ton aide VBA interne et lire, analyser et appliquer ce que tu trouveras à la rubrique DateAdd, fonction.
C 'est ainsi, que l'on se forme et ainsi, que je me suis formé
Amitiés
 
- 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

Discussions similaires

Réponses
7
Affichages
2 K
Compte Supprimé 979
C
Réponses
6
Affichages
3 K
Retour