Excel, makro: zapisz i zamknij plik w przypadku braku aktywności przez 10 (tps, aby zobaczyć)

Witajcie przyjaciele,

Wiem, że są fora poświęcone Excelowi, ale ja próbuję szczęścia na Lynkoa, bo widzę, że są koneserzy i poza tym nie znam się zbytnio na makro.

Celem tego makra jest to, że uruchamia się ono po otwarciu pliku i po pewnym czasie bezczynności pliku jest zapisywane i zamykane. Jest kilku z nas, którzy używają tego pliku i na różnych stronach, a ponadto regularnie opuszczamy nasze stacje robocze, więc jeśli jeden z nas zapomni go opuścić, denerwuje to pozostałych.

Z GÓRY DZIĘKUJĘ ZA ODPOWIEDZI ^_^

Witam

Aby uruchomić makro podczas otwierania programu Excel, na http://www.commentcamarche.net/forum/affich-1903604-vba-executer-une-macro-a-l-ouverture-de-excel znajduje się kilka potencjalnych klientów

i aby ustawić czas na https://www.developpez.net/forums/d24813/logiciels/microsoft-office/excel/macros-vba-excel/timer-feuille-excel/

Pozdrowienia

1 polubienie

Dziękuję d.roger, zobaczę, czy dam radę i czy coś rozumiem. 

Oto plik, który powinien zamknąć się po 30 sekundach bez dotykania go (przynajmniej u mnie działa).

Użyłem w ThisWorkbook:

Sub Workbook_open()
    Licznik = 0
    Arkusz1.Tempo
Koniec subwoofera

A w Feuil1:

Przyciemnij licznik jako liczbę całkowitą

Sub Tempo()
    Application.OnTime Now + TimeValue("00:00:01"), "Arkusz1.mojeMakro"
Koniec subwoofera

Sub myMacro()
    Licznik = Licznik + 1
    Jeśli licznik = 30, to
        Skoroszyty ("Test.xlsm skoroszyt". Zapisać
        Aktywny skoroszyt.Zamknij
        Wyjdź z subwoofera
    Zakończ jeżeli:
    
    Arkusz1.Tempo
Koniec subwoofera

Sub Worksheet_Change(ByVal Target As Range)
    Jeśli Target.Count = 0, to
        Licznik = 0
        Arkusz1.Tempo
    Zakończ jeżeli:
Koniec subwoofera

Oczywiście to tylko test, więc aby sprawdzić, poprawić itp

Pozdrowienia

 


classeur_test.xlsm

Niektóre zmiany po różnych testach:

Użyłem w ThisWorkbook:

Sub Workbook_open()
    Licznik = 0
    Arkusz1.Tempo
Koniec subwoofera

A w Feuil1:

Przyciemnij licznik jako liczbę całkowitą

Sub Tempo()
    Application.OnTime Now + TimeValue("00:01:00"), "Arkusz1.mojeMakro"
Koniec subwoofera

Sub myMacro()
    Licznik = Licznik + 1
    Jeśli licznik = 10, to
        Skoroszyty ("Test.xlsm skoroszyt". Zapisać
        Aktywny skoroszyt.Zamknij
        Wyjdź z subwoofera
    Zakończ jeżeli:
    Arkusz1.Tempo
Koniec subwoofera

Sub Worksheet_Change(ByVal Target As Range)
    Jeśli Target.Count <> 0, to
        Licznik = 0
    Zakończ jeżeli:
Koniec subwoofera

Główne zmiany dotyczą funkcji Worksheet_Change, w której If Target.Count = 0 staje się If Target.Count <> 0, a także usunięcie linii Sheet1.Tempo.

Pozdrowienia


classeur_test.xlsm

Nie rozumiem, nie mogę tego zrobić... Kiedy otwieram twój plik Excela, błędy ...


enregistrement_et_fermeture_du_fichier_en_cas_dinactivite_pendant_10.jpg

Potem powiedział mi, że wskazówka nie należy do wyboru


lindice_nappartient_pas_a_le_selection.png

Wiadomość, której nigdy nie otrzymałem podczas moich testów, korzystam z programu Excel 2010. Nie wiem, czy to może mieć wpływ.

Kod końcowy:

Użyłem w ThisWorkbook:

Sub Workbook_open()
    Licznik = 0
    Arkusz1.Tempo
Koniec subwoofera

A w Feuil1:

Przyciemnij licznik jako liczbę całkowitą

Sub Tempo()
    Application.OnTime Now + TimeValue("00:01:00"), "Arkusz1.mojeMakro"
Koniec subwoofera

Sub myMacro()
    Licznik = Licznik + 1
    Jeśli licznik = 10, to
        Skoroszyty(ThisWorkbook.Name). Zapisać
        Aktywny skoroszyt.Zamknij
        Wyjdź z subwoofera
    Zakończ jeżeli:
    
    Arkusz1.Tempo
Koniec subwoofera

Sub Worksheet_Change(ByVal Target As Range)
    Jeśli Target.Count <> 0, to
        Licznik = 0
    Zakończ jeżeli:
Koniec subwoofera


classeur_test.xlsm
2 polubienia