có cách nào tạo thời gian hết hạn cho 1 file excel ko?

Liên hệ QC

quanghung12

Thành viên chính thức
Tham gia
15/4/10
Bài viết
87
Được thích
8
chào cả nhà.
mình định làm 1 file excel để gửi cho khách hàng.
nhưng muốn cho khách hàng dùng thử dịch vụ của mình cung cấp.
nên muốn gửi cho khách hàng để tầm 1 thời gian nào đó thì khách hàng bị lock hay bị lỗi gì đó... miễn sao nó bị lỗi thời. để khách hàng cảm thấy dịch vụ mình cung cấp tốt và để khách hàng phải tìm đến mình nhỉ?
các huynh có ý kiến nào hay chia sẻ với mình với.
cảm ơn mọi người.
 
chào cả nhà.
mình định làm 1 file excel để gửi cho khách hàng.
nhưng muốn cho khách hàng dùng thử dịch vụ của mình cung cấp.
nên muốn gửi cho khách hàng để tầm 1 thời gian nào đó thì khách hàng bị lock hay bị lỗi gì đó... miễn sao nó bị lỗi thời. để khách hàng cảm thấy dịch vụ mình cung cấp tốt và để khách hàng phải tìm đến mình nhỉ?
các huynh có ý kiến nào hay chia sẻ với mình với.
cảm ơn mọi người.

Bạn muốn Excel không cho nhập liệu quá ngày nào đó (thí dụ: bạn muốn họ chỉ có thể dùng file của của bạn để nhập dữ liệu đến ngày 20/6/2010 hoặc những ngày trước đó bạn có thể dùng validation.xem file mình gửi kèm nhe!
 

File đính kèm

  • Book1.xls
    13.5 KB · Đọc: 1,280
Upvote 0
hay thật đó.
mình dùng office 2007. mình ko biết cách dùng nó như nào bạn hướng dẫn mình với!
à, cho mình hỏi thêm là nếu cài đặt hạn dùng như vậy thì vào tay họ họ có thể sửa lại ngày hết hạn được chứ?
 
Upvote 0
chào cả nhà.
mình định làm 1 file excel để gửi cho khách hàng.
nhưng muốn cho khách hàng dùng thử dịch vụ của mình cung cấp.
nên muốn gửi cho khách hàng để tầm 1 thời gian nào đó thì khách hàng bị lock hay bị lỗi gì đó... miễn sao nó bị lỗi thời. để khách hàng cảm thấy dịch vụ mình cung cấp tốt và để khách hàng phải tìm đến mình nhỉ?
các huynh có ý kiến nào hay chia sẻ với mình với.
cảm ơn mọi người.
Nếu bạn biết lập trình thì tham khảo mấy bài này:
File Excel tự xóa 1
File Excel tự xóa 2
Đếm số lần mở file

Vậy nếu kết hợp 2 món này lại thì ta sẽ có 1 file Excel chỉ cho người dùng mở xem trong 1 số lần nhất định nào đó ---> Quá số lần này, nó tự xóa vĩnh viễn
Dùng thời gian hạn chế không hay cho lắm, vì có trường hợp người ta nhận file nhưng chưa mở xem, đến ngày hết hạn người ta mở ra thì đã bị cấm mất rồi (tức chưa kịp xem đã bị cấm)
 
Upvote 0
hi mình ko hiểu lắm.
có đoạn code này:
Sub Killed()
Application.DisplayAlerts=False
ThisWorkbook.ChangeFileAccess xlReadOnly
Kill ThisWorkbook.FullName
ThisWorkbook.Close False
End Sub
thì mở excel off2007 ra. rồi vào sheet đó chọn view code, sau đó paste đoạn code đó vào.
và sau đó thì sao nhỉ?
bạn hướng dẫn mình cách làm để ngưòi ta mở file của mình 30 lần thì bị xóa hoặc là chỉ mở được đến ngày 30 tháng 7 thì bị xóa với.
mình là dân kinh tế nên kém khoản IT lắm bạn ơi.
chỉ giúp mình với.
 
Upvote 0
hi mình ko hiểu lắm.
có đoạn code này:

thì mở excel off2007 ra. rồi vào sheet đó chọn view code, sau đó paste đoạn code đó vào.
và sau đó thì sao nhỉ?
bạn hướng dẫn mình cách làm để ngưòi ta mở file của mình 30 lần thì bị xóa hoặc là chỉ mở được đến ngày 30 tháng 7 thì bị xóa với.
mình là dân kinh tế nên kém khoản IT lắm bạn ơi.
chỉ giúp mình với.

Mình gửi bạn file VD minh họa xóa file khi mở ra hơn 3 lần.

Trong thisworkbook bạn gõ code sau :
PHP:
Private Sub Workbook_Open()
     Solan = GetSetting("MyCount", "A", "Count", 0) + 1
     MsgBox "File da duoc mo " & Solan & " lan"
     SaveSetting "MyCount", "A", "Count", Solan
     If Solan > 3 Then Call KillFile
End Sub

insert module và nhập code sau :
PHP:
Sub KillFile()
Application.DisplayAlerts = False
ThisWorkbook.ChangeFileAccess xlReadOnly
Kill ThisWorkbook.FullName
ThisWorkbook.Close False
End Sub
 

File đính kèm

  • Kill file.xls
    22 KB · Đọc: 1,442
Upvote 0
sao mình làm ko đc nhỉ?
mình copy và paste code đó vào trong viewcode rồi mà?
bạn ơi cho mình hỏi là khi paste code đó vào thì cứ thế thoát ra hay phải làm gì nữa ko?
mình gửi file đính kèm, bạn xem sao nó ko báo nhỉ?
mình muốn ngấm ngầm cho người ta mở 3 lần là tự xóa, ko cho ng ta biết, ko cần hiện thông báo thì sửa code trên như nào bạn?
giúp mình với, cảm ơn bạn nhé!
 

File đính kèm

  • Book1.xls
    27.5 KB · Đọc: 248
Upvote 0
sao mình làm ko đc nhỉ?
mình copy và paste code đó vào trong viewcode rồi mà?
bạn ơi cho mình hỏi là khi paste code đó vào thì cứ thế thoát ra hay phải làm gì nữa ko?
mình gửi file đính kèm, bạn xem sao nó ko báo nhỉ?
mình muốn ngấm ngầm cho người ta mở 3 lần là tự xóa, ko cho ng ta biết, ko cần hiện thông báo thì sửa code trên như nào bạn?
giúp mình với, cảm ơn bạn nhé!
Bạn xem file mẫu của Hoangdanh, code người ta đặt chổ nào thì bạn cũng phải đặt chổ đó chứ ---> Code người ta đặt trong Thisworkbook mà bạn lại cho vào Sheet1 ---> Cóc chạy là phải rồi còn gì
Tóm lại: Code đã có nhưng phải đặt đúng vị trí
 
Upvote 0
à à, em hiểu ra vấn đề rồi.
nếu code này bỏ đoạn
MsgBox "File da duoc mo " & Solan & " lan"
thì nó sẽ im ỉm xóa đi.
nhưng ko ổn, vì khi em cài đặt cái này và gửi cho khách hàng, trên máy em đã thử nó rồi. giờ khi em cài nó xong cũng ko mở đc nó nữa. vì khi bị xóa đi và tạo file khác thì mở lên lần 1 nó xóa luôn. ví dụ lúc nãy mở 6 lần và xóa rồi.
tạo file khác mở lên thì nó báo là mở 7 lần và kill luôn.
chứ nó ko biết khi tạo file khác nó lại đếm lại từ đầu.
nếu code trên mà mình muốn cho đến hạn ngày 20/6/2010 bị xóa thì sửa như thế nào nhỉ? bạn ndu và bạn hoangdanh đã nghĩ ra thì show lên cho em với.
 
Upvote 0
à à, em hiểu ra vấn đề rồi.
nếu code này bỏ đoạn thì nó sẽ im ỉm xóa đi.
nhưng ko ổn, vì khi em cài đặt cái này và gửi cho khách hàng, trên máy em đã thử nó rồi. giờ khi em cài nó xong cũng ko mở đc nó nữa. vì khi bị xóa đi và tạo file khác thì mở lên lần 1 nó xóa luôn. ví dụ lúc nãy mở 6 lần và xóa rồi.
tạo file khác mở lên thì nó báo là mở 7 lần và kill luôn.
chứ nó ko biết khi tạo file khác nó lại đếm lại từ đầu.
Trong code của Hoangdanh có 1 đoạn cho bạn Reset bộ đếm đấy ---> Dùng nó để reset đếm về 0 là được rồi
nếu code trên mà mình muốn cho đến hạn ngày 20/6/2010 bị xóa thì sửa như thế nào nhỉ? bạn ndu và bạn hoangdanh đã nghĩ ra thì show lên cho em với.
Càng dễ
Sửa code Thisworkbook thành:
PHP:
Private Sub Workbook_Open()
  If Date >= DateSerial(2010, 6, 20) Then
    MsgBox "Het han su dung"
    Call KillFile
  End If
End Sub
 
Upvote 0
cảm ơn anh nhiều lắm,
hi mà mình để định dạng .xlsx thì ko dc nhỉ.
Private Sub Workbook_Open()
Solan = GetSetting("MyCount", "A", "Count", 0) + 1
MsgBox
"File da duoc mo " & Solan & " lan"
SaveSetting "MyCount", "A", "Count", Solan
If Solan > 3 Then Call KillFile
End Sub
trong code này em có thấy chỗ nào là reset bộ đếm đâu ạ?
ví dụ em tạo file giabanv1.0 cho khách, họ mở 3 lần bị delete rồi.
sau em tạo giabanv1.1 thì họ mở lên và bị delete luôn ở lần 1. vì nó vẫn nhớ là quá 3 lần mà.
 
Upvote 0
Hi cảm ơn bạn. mình dùng off2007, vào excel option nhưng ko thấy phần đó đâu :D
hi thôi kệ, cứ chỉnh ngày là ổn rồi.
cảm ơn các anh chị nha.
 
Upvote 0
cảm ơn anh nhiều lắm,
hi mà mình để định dạng .xlsx thì ko dc nhỉ.
Dùng Excel 2007 mà có dùng đến code VBA thì bắt buộc phải lưu ở định dang xlsm ---> Lưu xlsx là Excel sẽ tự động xóa code luôn đấy
trong code này em có thấy chỗ nào là reset bộ đếm đâu ạ?
ví dụ em tạo file giabanv1.0 cho khách, họ mở 3 lần bị delete rồi.
sau em tạo giabanv1.1 thì họ mở lên và bị delete luôn ở lần 1. vì nó vẫn nhớ là quá 3 lần mà.
Trong file của Hoangdanh tại bài số #6 ấy, chẳng phải trong Module có đoạn code:
PHP:
Sub Reset()
   DeleteSetting "MyCount", "A", "Count"
End Sub
Đấy là code reset bộ đếm chứ là cái gì ---> Chạy code này thì bộ đếm sẽ trả về = 0
Lưu ý:
- Khi file đã bị xóa (sau số lần đếm nào đó) mà bây giờ bạn tạo lại file mới thì khi mở lên nó sẽ bị xóa liền... nguyên nhân là vì số lần đếm ấy nó nhớ trong Registry chứ không phải trong code... nên cứ thấy file có code này là nó "bụp" liền
- Giải pháp khắc phục: Khi bạn test file, gần đến số lần đếm giới hạn thì hãy chạy code reset... hoặc có 1 cách khác là:
a) Mở file và Disable Macros
b) Alt + F11 vào sửa code.. chổ nào có đoạn: "MyCount", "A"... hãy sửa thành "MyCount", "B"...
c) Vậy xem như ta đã khởi tạo 1 bộ đếm mới cho file
--------------------------------------
Nói thêm: Phần lưu số lần đếm được lưu trong registry, cụ thể nằm tại:
HKEY_CURRENT_USER\Software\VB and VBA Program Settings
Với file của Hoangdanh như bài số 6 thì dữ liệu sẽ được lưu tại:
HKEY_CURRENT_USER\Software\VB and VBA Program Settings\MyCount\A
Với MyCount A là 2 chuổi mà ta đã chỉ định trong code
 
Lần chỉnh sửa cuối:
Upvote 0
chào cả nhà.
mình định làm 1 file excel để gửi cho khách hàng.
nhưng muốn cho khách hàng dùng thử dịch vụ của mình cung cấp.
nên muốn gửi cho khách hàng để tầm 1 thời gian nào đó thì khách hàng bị lock hay bị lỗi gì đó... miễn sao nó bị lỗi thời. để khách hàng cảm thấy dịch vụ mình cung cấp tốt và để khách hàng phải tìm đến mình nhỉ?
các huynh có ý kiến nào hay chia sẻ với mình với.
cảm ơn mọi người.
Mình chia sẻ ý tưởng này nhé: Viết đoạn code làm những việc sau đây:
- Khi mở file EXCEL, đồng thời mở thêm file .txt, ghi vào file text 1 kí tự nào đó. Muốn quy đinh file excel chỉ mở được 3 lần, thì sau 3 lần mở, file text có 3 ký tự --> xem kích thước file này giả sử là X.
- Đặt một biến tính kích thước file text (len), nếu kích thước file này > X, thì cho file Excel hiện ra một sheet trắng (hoặc cái gì đó tùy theo bạn nghĩ)
 
Upvote 0
xóa file excel thì được rồi còn xóa file word 2003 thì code nào không biết chỉnh sửa lại như thế nào cứ để nguyên thì báo lỗi hoài nhỉ!
file đính kèm killfile.doc}}}}}
 
Upvote 0
Xin chia sẻ kinh nghiệm thực tế.

Trước nay mình cũng hay viết VBA, làm được nhiều file, đến khi bị chương trình diệt virus nó quét sạch code, bao nhiêu công sức đi tong, dữ liệu file excel thì vẫn còn. Thậm chí có chương trình xóa cả file luôn vì tưởng là virus macro.
Trở lại vấn đề "phục vụ khách hàng" của chủ thớt. Như vậy trường hợp khách hàng dùng 1 trình diệt virus nào đó quét code đi thì lại sử dụng vô tư.
 
Upvote 0
Xin chia sẻ kinh nghiệm thực tế.

Trước nay mình cũng hay viết VBA, làm được nhiều file, đến khi bị chương trình diệt virus nó quét sạch code, bao nhiêu công sức đi tong, dữ liệu file excel thì vẫn còn. Thậm chí có chương trình xóa cả file luôn vì tưởng là virus macro.
Trở lại vấn đề "phục vụ khách hàng" của chủ thớt. Như vậy trường hợp khách hàng dùng 1 trình diệt virus nào đó quét code đi thì lại sử dụng vô tư.
trong phần lựa chọn của chương trình diệt virut, bạn phải bỏ lựa chọn "xóa macro".chẳng hạn như BKAV.như vậy, dữ liệu và côg thức của bạn sẽ "không bị đi tong"!^_^
 
Upvote 0
tao code

Xin hướng dẫn tạo code hẹn thời gian sẽ khóa file Excel VD : Em có một bảng tính nhưng muốn cho bạn em dùng từ một thời gian nhất định cụ thể từ ngày 25-06-2010 đến 26-12-2010 sẽ bị khóa không mở được. Mong các anh, chị giúp đỡ xin thành tật cám ơn.


domfootwear: Lần sau nhớ gõ Tiếng Việt Có dấu nha bạn
 
Chỉnh sửa lần cuối bởi điều hành viên:
Upvote 0
Không biết chủ thớt đã nghĩ đến các trường hợp này chưa nhỉ?
- Trường hợp 1: máy đóng băng đĩa cứng chứa hệ điều hành, mỗi lần khởi động máy mọi thông số trong máy tính (cả trong registry) lại trở về ban đầu, mở file lần sau, sau khi khởi động lại máy, bộ đếm lại trở về 0 thì cũng bằng thừa thôi.
- Trường hợp 2: giả sử máy không cần đóng băng đĩa cứng, sau khi đã hết hạn sử dụng, file đã bị xóa, nhưng file của bạn chắc phải được gửi qua mail? Vậy họ sẽ tải lại file còn lưu trên mail và lưu với tên khác để chạy tiếp được bấy nhiêu số lần nữa, mỗi khi hết hạn sử dụng lại tải từ mail về xài tiếp.
Có vấn đề gì trở ngại không nhỉ?
 
Upvote 0
Web KT
Back
Top Bottom