Astuce: Les autres langues sont Google-Traduction. Vous pouvez visiter le English version de ce lien.
Se connecter
x
or
x
x
S'enregistrer
x

or

Comment enregistrer et fermer automatiquement un fichier Excel après un certain temps d'inactivité?

Dans certains cas, comme laisser un fichier Excel sur un disque partagé, lorsque le fichier est toujours ouvert par un utilisateur, d'autres ne peuvent pas modifier le classeur. Alors, comment fermer automatiquement le fichier après un certain temps d'inactivité afin de faciliter le travail des autres? Cet article va vous aider avec la méthode VBA.

Enregistrement automatique et fermeture d'un fichier Excel après un certain temps d'inactivité avec le code VBA


Enregistrement automatique et fermeture d'un fichier Excel après un certain temps d'inactivité avec le code VBA


Pour enregistrer automatiquement et fermer un fichier Excel après un certain temps d'inactivité, procédez comme suit.

1. Ouvrez le classeur dont vous avez besoin pour le sauvegarder automatiquement et le fermer après un certain temps d'inactivité. Puis appuyez sur autre + F11 clés ensemble pour ouvrir le Microsoft Visual Basic pour applications fenêtre.

2. dans le Microsoft Visual Basic pour applications fenêtre, s'il vous plaît double-cliquez sur le ThisWorkbook dans le volet de droite pour ouvrir la fenêtre Code. Ensuite, copiez et collez le code VBA ci-dessous dans la fenêtre Code. Voir la capture d'écran:

Code VBA 1: sauvegarde automatique et fermeture d'un fichier Excel après un certain temps d'inactivité

Dim xTime As String
Dim xWB As Workbook

Private Sub Workbook_Open()
'Updated by Extendoffice 2019/1/20
    On Error Resume Next
    xTime = Application.InputBox("Please specify the idle time:", "KuTool For Excel", "00:00:20", , , , , 2)
    Set xWB = ActiveWorkbook
    If xTime = "" Then Exit Sub
    Reset
End Sub
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    On Error Resume Next
    If xTime = "" Then Exit Sub
    Reset
End Sub

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    On Error Resume Next
    If xTime = "" Then Exit Sub
    Reset
End Sub

Sub Reset()
    Static xCloseTime
    If xCloseTime <> 0 Then
        ActiveWorkbook.Application.OnTime xCloseTime, "SaveWork1", , False
    End If
    xCloseTime = Now + TimeValue(xTime)
    ActiveWorkbook.Application.OnTime xCloseTime, "SaveWork1", , True
End Sub

3. Ensuite, continuez à cliquer insérer > module, et copiez et collez le code ci-dessous dans la fenêtre Module. Voir la capture d'écran:

Code VBA 2: sauvegarde automatique et fermeture d'un fichier Excel après un certain temps d'inactivité

Sub SaveWork1()
'Updated by Extendoffice 2019/1/20
    Application.DisplayAlerts = False
    ActiveWorkbook.Save
    ActiveWorkbook.Close
    
    Application.DisplayAlerts = True
End Sub

4. appuie sur le autre + Q touches simultanément pour fermer le Microsoft Visual Basic pour applications fenêtre.

5. Cliquez Fichier > Enregistrer sous > Feuilleter. Voir la capture d'écran:

6. dans le Enregistrer sous boîte de dialogue, sélectionnez un dossier pour enregistrer le fichier, nommez-le comme vous le souhaitez dans la zone Nom de fichier, sélectionnez Cahier de travail Excel avec macro-activé du Enregistrer sous type liste déroulante, et enfin cliquez sur le Épargnez bouton. Voir la capture d'écran:

A partir de maintenant, chaque fois que vous ouvrez ce classeur, un Kutools for Excel La boîte de dialogue apparaîtra. Veuillez entrer l'heure à laquelle vous allez enregistrer et fermer le classeur en fonction de, puis cliquez sur le OK .

Et le classeur sera sauvegardé et fermé automatiquement après ce temps d'inactivité spécifié. Voir la capture d'écran:



Outils de productivité recommandés

Office Tab

étoile d&#39;or1 Apportez des onglets pratiques à Excel et à d'autres logiciels Office, tout comme Chrome, Firefox et Internet Explorer.

Kutools for Excel

étoile d&#39;or1 Incroyable! Augmentez votre productivité dans les minutes 5. Ne nécessite pas de compétences particulières, économisez deux heures par jour!

étoile d&#39;or1 300 Nouvelles fonctionnalités pour Excel, rendent Excel facile et puissant:

  • Fusionner des cellules / lignes / colonnes sans perdre de données.
  • Combiner et consolider plusieurs feuilles et classeurs.
  • Comparez les gammes, copiez plusieurs gammes, convertissez le texte en date, l'unité et la conversion de devise.
  • Compter par couleurs, sous-totaux de recherche, tri avancé et super filtre,
  • Plus Sélectionner / Insérer / Supprimer / Texte / Format / Lier / Commenter / Classeurs / Feuilles de calcul Outils ...

Capture d&#39;écran de Kutools pour Excel

Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    robert · 24 days ago
    Is there a way to make this work so even if you not on the sheet like click over to another window the timmer will still close that sheet? It seems like i have to stay on the file for it to work
  • To post as a guest, your comment is unpublished.
    Mark · 1 months ago
    I would recommend identifying the workbook with the workbook file name. This would allow the users to have multiple workbooks open and closing out only the specific workbook that needs to have the time lock.

    Suggestion: Set xwb = Workbooks("<file name>")
    instead of: Set xwb = ActiveWorkbook

    Also, replace all references to "ActiveWorkbook" to the Xwb in the module

    Great code otherwise.
  • To post as a guest, your comment is unpublished.
    VR · 2 months ago
    This does not work when focus in on a particular cell in a sheet. Use case is when user is typing in a cell and leave the excel open with the cursor inside the cell.
    • To post as a guest, your comment is unpublished.
      Rehan · 1 months ago
      Were you able to find a fix for this by any chance?
  • To post as a guest, your comment is unpublished.
    henry · 5 months ago
    Hi Thanks loads for this code. Just one issue. It seems to try to close all open workbooks thus stalls if another workbook close is cancelled or not responded to. have you any touch-ups that can fix this?
    • To post as a guest, your comment is unpublished.
      crystal · 3 months ago
      Hi Henry,
      The code has been updated with the problem solving. Please have a try. Sorry for the inconvenience and thank you for your comment.
    • To post as a guest, your comment is unpublished.
      Gaston · 4 months ago
      I have the same issue... I tried to open a new workbook, and entered some data.... when the time came, both workbooks were closed, but the new one wasn´t saved... Is there a way to fix this?
      Besides that, it works great!! Thanks a lot!!
      • To post as a guest, your comment is unpublished.
        crystal · 3 months ago
        Hi Gaston,
        The code has been updated with the problem solving. Please have a try. Sorry for the inconvenience and thank you for your comment.