Làm thế nào để khi mở file excel khoảng 15phút thì tự động lưu và đóng file lại

Liên hệ QC

Lê Duy Thương

Cạo lấy gì gội (Dịch quá không gội được)
Tham gia
14/10/09
Bài viết
3,111
Được thích
4,846
Tôi đang gặp vấn đề về file excel
do file này tôi share nên có thể 2 hay 3 người cùng làm trên file 1 lúc
như các bạn đã biết file share cũng có cái hay của nó nhưng cái dở cũng nhiều
bây giờ xin các bạn có code nào mà khi người dùng sử dụng file này khoảng 5---15 phút là file tự lưu và đÓng lại an toàn
( thoi gian là do mình tự đặt )
mong các ace giúp đỡ
TRÂN TRỌNG CẢM ƠN
 
Tôi đang gặp vấn đề về file excel
do file này tôi share nên có thể 2 hay 3 người cùng làm trên file 1 lúc
như các bạn đã biết file share cũng có cái hay của nó nhưng cái dở cũng nhiều
bây giờ xin các bạn có code nào mà khi người dùng sử dụng file này khoảng 5---15 phút là file tự lưu và đÓng lại an toàn
( thoi gian là do mình tự đặt )
mong các ace giúp đỡ
TRÂN TRỌNG CẢM ƠN
Liên quan đến thời gian, hãy dùng SetTimer mà làm
Ví dụ:
PHP:
Private Declare Function SetTimer Lib "user32" _
  (ByVal hWnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long
Private Declare Function KillTimer Lib "user32" (ByVal hWnd As Long, ByVal nIDEvent As Long) As Long
Public iT As Long
Mã:
Sub Auto_Open()
  SetTimer Application.hWnd, 1, [COLOR=Red][B]1000[/B][/COLOR], AddressOf ScanTimer
End Sub
Mã:
Private Sub ScanTimer()
  iT = iT + 1
  If [B][COLOR=Red]iT = 5[/COLOR][/B] Then Auto_Close
End Sub
PHP:
Sub Auto_Close()
  MsgBox "Het gio"
  KillTimer Application.hWnd, 1
  ThisWorkbook.Close (True)
End Sub
Chú ý số 1000 màu đỏ tương đuơng 1 giây
------------------------------------------
File chứa code trên sẽ tự đóng sau 5 giây
Hãy sửa các giá trị màu đỏ thành số thích hợp để có đựoc thời gian đúng ý
 

File đính kèm

Upvote 0
liên quan đến thời gian, hãy dùng settimer mà làm
ví dụ:
PHP:
private declare function settimer lib "user32" _
  (byval hwnd as long, byval nidevent as long, byval uelapse as long, byval lptimerfunc as long) as long
private declare function killtimer lib "user32" (byval hwnd as long, byval nidevent as long) as long
public it as long
Mã:
sub auto_open()
  settimer application.hwnd, 1, [COLOR=red][B]1000[/B][/COLOR], addressof scantimer
end sub
Mã:
private sub scantimer()
  it = it + 1
  if [B][COLOR=red]it = 5[/COLOR][/B] then auto_close
end sub
PHP:
sub auto_close()
  msgbox "het gio"
  killtimer application.hwnd, 1
  thisworkbook.close (true)
end sub
chú ý số 1000 màu đỏ tương đuơng 1 giây
------------------------------------------
file chứa code trên sẽ tự đóng sau 5 giây
hãy sửa các giá trị màu đỏ thành số thích hợp để có đựoc thời gian đúng ý
lần nào em gặp khó khăn về code bác cũng là người nhanh nhất
BÁC CHO EM HỎI THÊM TÝ
COPY VÀO SHEET HAY LÀ INSERT MODULE ?
 
Lần chỉnh sửa cuối:
Upvote 0
Theo tôi thì với yêu cầu này mà dùng Application.OnTime sẽ đơn giản hơn.
Mã:
Sub Auto_Open()
    Application.OnTime Now() + TimeValue("00:01:00"), "CloseWB"
End Sub

Sub CloseWB()
    ThisWorkbook.Close True
End Sub
 
Upvote 0
Tôi đang gặp vấn đề về file excel
do file này tôi share nên có thể 2 hay 3 người cùng làm trên file 1 lúc
như các bạn đã biết file share cũng có cái hay của nó nhưng cái dở cũng nhiều
bây giờ xin các bạn có code nào mà khi người dùng sử dụng file này khoảng 5---15 phút là file tự lưu và đÓng lại an toàn
( thoi gian là do mình tự đặt )
mong các ace giúp đỡ
TRÂN TRỌNG CẢM ƠN
Theo mình nghĩ không nên dùng cách này, bạn làm cách này là làm khó người sử dụng rồi.
Theo mình thì nên dùng cách là nếu ai đó đang mở, cập nhật hay thao tác trên file đó thì không chạy code, khi không thao tác trên file đó khoảng 10 hay 15 phút.... thì file đó tự đóng. Như vậy không gây khó chịu cho người sử dụng.
Ví dụ nếu như bạn sử dụng 1 file hay 1 chương trình nào đó mà cứ tắt, rồi mở lên rồi tắt ... thì không ổn cho lắm.
 
Upvote 0
Theo mình nghĩ không nên dùng cách này, bạn làm cách này là làm khó người sử dụng rồi.
Theo mình thì nên dùng cách là nếu ai đó đang mở, cập nhật hay thao tác trên file đó thì không chạy code, khi không thao tác trên file đó khoảng 10 hay 15 phút.... thì file đó tự đóng. Như vậy không gây khó chịu cho người sử dụng.
Ví dụ nếu như bạn sử dụng 1 file hay 1 chương trình nào đó mà cứ tắt, rồi mở lên rồi tắt ... thì không ổn cho lắm.
cách này cũng hay
vậy anh DOM có thể cho tôi xin code đó được không ?
 
Upvote 0
cách này cũng hay
vậy anh DOM có thể cho tôi xin code đó được không ?

Bỏ code sau vào ThisWorkbook

Mã:
Private Sub Workbook_Open()
    EndTime = Now + TimeValue("00:00:[B][COLOR=Red]06[/COLOR][/B]") [B][COLOR=Green] 'Trong vòng 6 giây[/COLOR][/B]
    RunTime
End Sub

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
 If EndTime Then
        Application.OnTime _
          EarliestTime:=EndTime, _
          Procedure:="CloseWB", _
          Schedule:=False
        EndTime = Empty
    End If
    EndTime = Now + TimeValue("00:00:[B][COLOR=Red]06[/COLOR][/B]") [B][COLOR=Green] 'Trong vòng 6 giây[/COLOR][/B]
    RunTime

End Sub

Bỏ code sau vào Module

Mã:
Public EndTime
Sub RunTime()
    Application.OnTime _
      EarliestTime:=EndTime, _
      Procedure:="CloseWB", _
      Schedule:=True
End Sub

Sub CloseWB()
    Application.DisplayAlerts = False
    With ThisWorkbook
        .Save
        .Close
    End With
    Application.DisplayAlerts = True
End Sub
 

File đính kèm

Upvote 0
Bỏ code sau vào ThisWorkbook

Mã:
Private Sub Workbook_Open()
    EndTime = Now + TimeValue("00:00:[B][COLOR=Red]06[/COLOR][/B]") [B][COLOR=Green] 'Trong vòng 6 giây[/COLOR][/B]
    RunTime
End Sub

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
 If EndTime Then
        Application.OnTime _
          EarliestTime:=EndTime, _
          Procedure:="CloseWB", _
          Schedule:=False
        EndTime = Empty
    End If
    EndTime = Now + TimeValue("00:00:[B][COLOR=Red]06[/COLOR][/B]") [B][COLOR=Green] 'Trong vòng 6 giây[/COLOR][/B]
    RunTime

End Sub

Bỏ code sau vào Module

Mã:
Public EndTime
Sub RunTime()
    Application.OnTime _
      EarliestTime:=EndTime, _
      Procedure:="CloseWB", _
      Schedule:=True
End Sub

Sub CloseWB()
    Application.DisplayAlerts = False
    With ThisWorkbook
        .Save
        .Close
    End With
    Application.DisplayAlerts = True
End Sub
thanks domfootwear nhiều lắm
code của anh đã đáp ứng đúng yêu cầu của tôi
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom