Hạn chế số ngày sử dụng của File

Liên hệ QC

phuyen89

Thành viên tích cực
Tham gia
20/11/08
Bài viết
870
Được thích
336
Nghề nghiệp
Student
Trong nhung lần copy file.Em thấy có File cho sử dụng bao nhiêu ngày thôi.Do vậy em tự hỏi phải dùng Code như thế nào mà lại hạn chế số ngày sử dụng của File như vây.Em chỉ nói đến 1 cái File bình thường thôi,chứ không phải là phần mềm
 
Mình gửi 1 file vui thôi . Mở file xong, cứ 5 phút chết 1 sheet đến khi còn 1 sheet thì thôi (Khi có thông báo nhớ OK thoát thông báo nhe)
 

File đính kèm

  • Xoa.xls
    35 KB · Đọc: 91
Upvote 0
Mình gửi 1 file vui thôi . Mở file xong, cứ 5 phút chết 1 sheet đến khi còn 1 sheet thì thôi (Khi có thông báo nhớ OK thoát thông báo nhe)

Cám ơn Sealan

Nhưng thực ra mình muốn ấn định chính xác ngày mà file tự động xoá data, vì nếu chỉ ấn định theo thời gian sử dụng file thì vài tháng sau họ mở file lên vẫn đọc dc số liệu.
...vì cứ mỗi tháng mình chỉ định người nào đó được phép đọc file data, những ai copy file về máy của mình rồi thì khi hết hạn sẽ tự động xoá, nếu cần mình sẽ xem xét để cung cấp cho họ file mới.
 
Lần chỉnh sửa cuối:
Upvote 0
Cám ơn Sealan

Nhưng thực ra mình muốn ấn định chính xác ngày mà file tự động xoá data, vì nếu chỉ ấn định theo thời gian sử dụng file thì vài tháng sau họ mở file lên vẫn đọc dc số liệu.
...vì cứ mỗi tháng mình chỉ định người nào đó được phép đọc file data, những ai copy file về máy của mình rồi thì khi hết hạn sẽ tự động xoá, nếu cần mình sẽ xem xét để cung cấp cho họ file mới.

Việc định ngày giờ có gì đâu mà khó hả bạn? Copy Code của Sealand vào rồi tuỳ chỉnh ngày giờ thôi. Nhưng tôi khuyên bạn, đừng quá tập trung vào cái này, chỉ là vui thôi, còn bảo mật thì chọn phần mềm khác hỗ trợ đi. Bảo mật trong Excel không đáng tin tưởng lắm đâu.
 
Upvote 0
Bạn để ý sẽ thấy mình đã có ý đưa ra một số cách xác định thời gian. Bài trước là khống chế thời gian từ khi tạo file, bài này là từ khi mở file. Bạn tham khảo rồi lựa theo ý mình nhé.
 
Upvote 0
Việc định ngày giờ có gì đâu mà khó hả bạn? Copy Code của Sealand vào rồi tuỳ chỉnh ngày giờ thôi. Nhưng tôi khuyên bạn, đừng quá tập trung vào cái này, chỉ là vui thôi, còn bảo mật thì chọn phần mềm khác hỗ trợ đi. Bảo mật trong Excel không đáng tin tưởng lắm đâu.

ừh...cám ơn MinhThien và Sealand nhé

thực ra thì mình cũng có biết nó bảo mật cũng không OK lắm, data của mình là để theo dõi kinh doanh hàng tháng, dựa vào đó có thể dễ dàng thấy những bất thường và điều chỉnh hoạt động của nv bán hàng tức thì, nên nó có thể dc dùng hàng ngày hay vài lần trong 1 tuần nên mình nghĩ là giới hạn theo thời gian mở là không OK lắm,.nên mình mới muốn ấn định cụ thể vào ngày đầu tháng sau là tự động xoá.

...mình thấy phòng nhân sự có 1 file data về lương thưởng hàng tháng và chỉ có giới hạn máy của 1 số người mới mở dc (cty mình mỗi người có 1 user ID riêng, nếu ai đó có copy về máy ở nhà thì cũng không mở dc...không hiểu họ làm cách nào nhỉ

bạn chỉ mình cách sửa code với...mình dốt vụ này lắm

Cám ơn nhiều
 
Lần chỉnh sửa cuối:
Upvote 0
ừh...cám ơn MinhThien và Sealand nhé

thực ra thì mình cũng có biết nó bảo mật cũng không OK lắm, data của mình là để theo dõi kinh doanh hàng tháng, dựa vào đó có thể dễ dàng thấy những bất thường và điều chỉnh hoạt động của nv bán hàng tức thì, nên nó có thể dc dùng hàng ngày hay vài lần trong 1 tuần nên mình nghĩ là giới hạn theo thời gian mở là không OK lắm,.nên mình mới muốn ấn định cụ thể vào ngày đầu tháng sau là tự động xoá.

...mình thấy phòng nhân sự có 1 file data về lương thưởng hàng tháng và chỉ có giới hạn máy của 1 số người mới mở dc (cty mình mỗi người có 1 user ID riêng, nếu ai đó có copy về máy ở nhà thì cũng không mở dc...không hiểu họ làm cách nào nhỉ

bạn chỉ mình cách sửa code với...mình dốt vụ này lắm

Cám ơn nhiều

Bạn thử xem cái File củ chuối của mình nhé! File sẽ không bị xoá, chỉ xoá nội dung thôi. Mong rằng các cao thủ chỉ giáo thêm. Chép File qua máy khác chỉ có hiệu quả khi và chỉ khi máy đó Macro Securities trong trạng thái Low, tôi nghe nói có phần mềm nào đó biến file Excel thành đuôi .exe, có thể chạy mà không cần cài đặt như trên. Không biết thực hư thế nào.
 
Lần chỉnh sửa cuối:
Upvote 0
...mình thấy phòng nhân sự có 1 file data về lương thưởng hàng tháng và chỉ có giới hạn máy của 1 số người mới mở dc (cty mình mỗi người có 1 user ID riêng, nếu ai đó có copy về máy ở nhà thì cũng không mở dc...không hiểu họ làm cách nào nhỉ

Nếu chỉ không cho mở file thôi thì tại sao bạn không dùng Password khống chế mở hoặc Password hạn chế sửa. Mọi người nói vậy chứ phá Pass dạng này thường không đơn giản đâu. Bạn thử làm như sau xem có được không:

1/Mở file của bạn ra như bình thường.
2/Vào Menu File-->Save As
Trong Dialog Save As chọn Tools( Ở góc trên bên phải ấy)-->Chọn General Options
3/Cửa sổ Save Option mở ra:
-Dòng trên là nhập Pass để mở.
-Dòng dưới là Pass để sửa.
Bạn nhập Pass với độ khó cần thiết. Sau đó nhấn OK. Cửa sổ Confirm Pass mở ra yêu cầu bạn nhập xác nhận lại Pass nếu khớp thì tự động thoát ra. Bạn nhấn Save là xong. Tuy nhiên chương trình có hỏi là file đã có, có ghi đè khônng thì bạn cứ chọn OK.
Từ giờ chỉ khi biết Pass mới mở được (Lưu ý có phân biệt chữ thường và chữ hoa)
Chúc bạn vừa ý.
 
Upvote 0
Bạn thử đoạn code sau sẽ thấy làm thế nào để biết máy nào, server nào mở file, từ đó bạn sẽ tìm cách hạn chế những máy nào và server nào mở file.

PHP:
Sub thu()
MsgBox Environ("COMPUTERNAME")
MsgBox Environ("LOGONSERVER")
End Sub
Công dụng của hàm
Environ("COMPUTERNAME") Cho biết máy nào mở phòng khi chép về máy cũng chặn được.
Environ("LOGONSERVER") cho biết server nào logon qua mạng LAN để chặn.

Bạn nghiên cứu đi, nếu không được sẽ bàn sau.
 
Lần chỉnh sửa cuối:
Upvote 0
Cám ơn các bạn

Có một điều là mình cần ngăn chặn chính nv của mình mang file data này lọt vào tay cty đối thủ, nên để đề phòng trong trường hợp khi có 1 nv nào đó bỏ qua làm việc cho cty đối thủ thì họ chỉ xài dc số liệu trong phạm vi thời gian nhất định...hihi

Mình cũng mới trao đổi với nv IT và họ có giải pháp để bảo vệ rồi.

Cám ơn sự giúp đỡ nhiệt tình của các bạn
Thân
 
Upvote 0
Bạn nghiên cứu file này xem sao nhé!

ừh...cám ơn MinhThien và Sealand nhé

thực ra thì mình cũng có biết nó bảo mật cũng không OK lắm, data của mình là để theo dõi kinh doanh hàng tháng, dựa vào đó có thể dễ dàng thấy những bất thường và điều chỉnh hoạt động của nv bán hàng tức thì, nên nó có thể dc dùng hàng ngày hay vài lần trong 1 tuần nên mình nghĩ là giới hạn theo thời gian mở là không OK lắm,.nên mình mới muốn ấn định cụ thể vào ngày đầu tháng sau là tự động xoá.

...mình thấy phòng nhân sự có 1 file data về lương thưởng hàng tháng và chỉ có giới hạn máy của 1 số người mới mở dc (cty mình mỗi người có 1 user ID riêng, nếu ai đó có copy về máy ở nhà thì cũng không mở dc...không hiểu họ làm cách nào nhỉ

bạn chỉ mình cách sửa code với...mình dốt vụ này lắm

Cám ơn nhiều
Theo tôi nghĩ: file ít nhiều cũng hỗ trợ được ý tưởng của bạn. Bạn tải về xem thử nhé!
- File chỉ cho phép nhập liệu chứ không cho sửa (có pass sửa và tất nhiên NV nhập liệu không thể biết), nếu có dùng High security thì cũng không xem được dữ liệu!
- File có thiết kế thêm thời hạn sử dụng, nếu bạn muốn xóa dữ liệu tự động theo định kỳ thì gắn thêm marco nữa là OK thôi. Và ...
- Để mở file bạn chọn mã người dùng là NV01 pass là xuyen; các mã người dùng khác có pass tương ứng với tên gọi của NV đó. Khi đăng nhập thành công, bạn chọn nút Danh mục để xem danh mục các thành viên nhé! Chúc bạn thành công.
 
Lần chỉnh sửa cuối:
Upvote 0
Bạn thử dùng code này
Mã:
Sub auto_open()
On Error Resume Next
Dim myDate As Date
Dim Ws As Worksheet
Application.ScreenUpdating = False
Application.DisplayAlerts = False
myDate = Date
If Sheets("Userlog").Range("a1").Value <= myDate Then [COLOR=darkgreen]'A1 là ngày kết thúc[/COLOR] 
MsgBox "File nay khong mo duoc vi qua han su dung." & vbNewLine _
& "Vui long goi dien thoai cho tui", vbExclamation, "Thong bao"
ThisWorkbook.Close
End If
Application.DisplayAlerts = True
Application.ScreenUpdating = True

End Sub

Xem thêm file nhé
Trong trường hợp này nếu lâu ngày mình không sử dụng file, sau này mở ra thì đã quá hạn không vào file được. Như vậy, làm sao mở lại file để chỉnh sửa ngày giới hạn nhỉ, chẳng lẻ bỏ luôn file này. Có cách nào khắc phục được không các bạn.
 
Upvote 0
Trong trường hợp này nếu lâu ngày mình không sử dụng file, sau này mở ra thì đã quá hạn không vào file được. Như vậy, làm sao mở lại file để chỉnh sửa ngày giới hạn nhỉ, chẳng lẻ bỏ luôn file này. Có cách nào khắc phục được không các bạn.
Mở file ở dạng Dissable Macro
Vào code chỉnh lại, hoặc chỉnh ngày ở A1
 
Lần chỉnh sửa cuối:
Upvote 0
Upvote 0
Mình ví dụ 1 dạng đơn giản:

Mã:
Private Sub Workbook_Open()
ng = Day(Date)
th = Month(Date)
nam = Year(Date)
If ng > 1 And th > 5 And nam >= 2008 Then
        tb = "This program have any problems for used." + Chr(10) + Chr(13)
         tb = tb + "Please close and save avoid to lose data." + Chr(10) + Chr(13)
        tb = tb + "Sorry very much !"
MsgBox (tb)
ActiveWorkbook.Save
Application.Quit
End If
End Sub

Hạn chế của dang này là khi người ta đổi ngày hệ thống vẫn dùng được.
Minh tham gia 1 số cách (Trước đây mình cũng đã làm nay tìm lại không thấy), mình nêu ý tưởng bạn thử xem nhé:
Cách 1:Ta lấy ngày Create file từ thuộc tính của file, ngày này sửa không đơn giản. Mỗi khi mở file kiểm tra ngày hệ thống với ngày tạo file nếu quá hạn thì thông báo và thoát.

Cachs 2: Ta Hide 1 sheet để lưu giờ truy cạp và giờ thoát ra. Tổng thời gian lưu trên sheet này quá thời gian quy định thì thông báo và thoát.
Em thấy code này rất hợp với mục đích sử dụng của em nhưng em muốn sửa thành nếu ngày dùng quá ngày 1-5-2008 thì mình có thể viết code yêu cầu người dùng nhập mật khẩu vào nếu nhập sai mật khẩu thì đóng file lại còn nếu nhập đúng thì cho phép mở file để dùng được không ạ >> xin bác giúp em code chỗ đó ạ >>> mục đích em muốn giới hạn thời gian sử dụng của người khác nếu muốn dùng thì phải xin mật khẩu đăng nhập từ em mới có thể dùng tiếp ạ.
 
Upvote 0
Em thấy code này rất hợp với mục đích sử dụng của em nhưng em muốn sửa thành nếu ngày dùng quá ngày 1-5-2008 thì mình có thể viết code yêu cầu người dùng nhập mật khẩu vào nếu nhập sai mật khẩu thì đóng file lại còn nếu nhập đúng thì cho phép mở file để dùng được không ạ >> xin bác giúp em code chỗ đó ạ >>> mục đích em muốn giới hạn thời gian sử dụng của người khác nếu muốn dùng thì phải xin mật khẩu đăng nhập từ em mới có thể dùng tiếp ạ.
Code vba khó bảo mật lắm bạn ơi!
 
Upvote 0
Em thấy code này rất hợp với mục đích sử dụng của em nhưng em muốn sửa thành nếu ngày dùng quá ngày 1-5-2008 thì mình có thể viết code yêu cầu người dùng nhập mật khẩu vào nếu nhập sai mật khẩu thì đóng file lại còn nếu nhập đúng thì cho phép mở file để dùng được không ạ >> xin bác giúp em code chỗ đó ạ >>> mục đích em muốn giới hạn thời gian sử dụng của người khác nếu muốn dùng thì phải xin mật khẩu đăng nhập từ em mới có thể dùng tiếp ạ.
Bạn có thể tham khảo đoạn mã:
Mã:
Dim strPass As String
strPass = InputBox("Nhap mat khau: hoangtuan.net", "Your Password")
If strPass <> "hoangtuan.net" Then
        MsgBox "Mat khau khong chinh xac. File se duoc dong.", vbCritical
        ThisWorkbook.Close False
    End If
 
Upvote 0
Bạn có thể tham khảo đoạn mã:
Mã:
Dim strPass As String
strPass = InputBox("Nhap mat khau: hoangtuan.net", "Your Password")
If strPass <> "hoangtuan.net" Then
        MsgBox "Mat khau khong chinh xac. File se duoc dong.", vbCritical
        ThisWorkbook.Close False
    End If
em dùng code riêng của bác ra 1 file thì rất ok nhưng ý của em ở trên là em muốn thêm vào phần code của bác sealand ở trên sau cái đoạn "If ng > 1 And th > 5 And nam >= 2008 Then". tức là sửa code chỗ đó nếu ngày mở sau ngày 1-5-2008 thì không phải đóng file đó nữa mà là hỏi tiếp ng mở mật khẩu nếu họ điền đúng mật khẩu thì cho họ vào còn không mới đóng file lại.

Em tự ghép nối mà không được, em mới tìm hiểu về code mong bác giúp em nối nốt chỗ đó thành 1 code hoàn thiện. Cảm ơn bác nhiều
 
Upvote 0
em dùng code riêng của bác ra 1 file thì rất ok nhưng ý của em ở trên là em muốn thêm vào phần code của bác sealand ở trên sau cái đoạn "If ng > 1 And th > 5 And nam >= 2008 Then". tức là sửa code chỗ đó nếu ngày mở sau ngày 1-5-2008 thì không phải đóng file đó nữa mà là hỏi tiếp ng mở mật khẩu nếu họ điền đúng mật khẩu thì cho họ vào còn không mới đóng file lại.

Em tự ghép nối mà không được, em mới tìm hiểu về code mong bác giúp em nối nốt chỗ đó thành 1 code hoàn thiện. Cảm ơn bác nhiều
Bạn thử coi:
Mã:
Private Sub Workbook_Open()
Dim strPass As String
ng = Day(Date)
th = Month(Date)
nam = Year(Date)
If ng > 1 And th > 5 And nam >= 2008 Then
strPass = InputBox("Nhap mat khau: hoangtuan.net", "Your Password")
If strPass <> "hoangtuan.net" Then
        MsgBox "Mat khau khong chinh xac. File se duoc dong.", vbCritical
        ThisWorkbook.Close False
    End If       

End If
End Sub
 
Upvote 0
Web KT
Back
Top Bottom