Đặt password bảo vệ bảng tính chỉ trên một máy tính

  • Thread starter Thread starter duongdv
  • Ngày gửi Ngày gửi
Liên hệ QC

duongdv

Thành viên tích cực
Thành viên danh dự
Tham gia
27/8/07
Bài viết
1,175
Được thích
1,516
Các bạn cho mình hỏi có cách nào để đặt password để bảo vệ bảng tính. Password này chỉ cho phép truy cập trên một máy. Nếu copy bảng tính đó sang một máy bất kỳ nào khác sẽ không truy cập được.
 
Mình làm cho bạn file này chỉ có thể mở lên được trên 1 máy tính thôi không biết có đúng ý bạn không! Bạn có thể xem thêm code trong Form để thay đổi Users name và Password theo ý bạn. Bạn làm theo hướng dẫn trong file để hoàn tất quá trình bảo vệ.
 

File đính kèm

Lần chỉnh sửa cuối:
cái này thì khó đấy, nếu đặt password cho máy đang sử dụng thì không sao, nếu copy sang máy khác thì password thay đổi thì họa may còn có cách làm !
 
Mình làm cho bạn file này chỉ có thể mở lên được trên 1 máy tính thôi không biết có đúng ý bạn không!
Bạn có thể xem thêm code trong Form để thay đổi Users name và Password theo ý bạn.
Bạn làm theo hướng dẫn trong file để hoàn tất quá trình bảo vệ.

Bài làm cũng khá tốt đấy chứ!

Tuy nhiên cần phải hỏi rõ xem "mở trên 1 máy" nghĩa là làm sao ???
Vì bài làm của bạn đạt yêu cầu là mở trên 1 đĩa cứng, hai cái này sẽ có lúc khác nhau đấy. Vì máy không chỉ có 1 đĩa cứng (Hàm của bạn đọc được đĩa đầu tiên là thoát rồi).


Thân!
 
Tuy nhiên cần phải hỏi rõ xem "mở trên 1 máy" nghĩa là làm sao ??? Vì bài làm của bạn đạt yêu cầu là mở trên 1 đĩa cứng, hai cái này sẽ có lúc khác nhau đấy. Vì máy không chỉ có 1 đĩa cứng (Hàm của bạn đọc được đĩa đầu tiên là thoát rồi). Thân!
Lúc đầu em nghĩ chỉ cần nhận định được Seri máy là được nhưng do không biết code lấy của seri máy nên thay vào code của ổ cứng, thấy nó vẫn chạy tốt nên không nghĩ sẽ có khác biệt gì lắm. Nếu bác nào có code nhận biết IP của máy hay cái gì đại loại như vậy thì bổ sung giùm em nhé! Thanks. nhiều!
 
Lần chỉnh sửa cuối:
Bạn thay hàm Function đọc mã đĩa bằng hàm này, sẽ đọc được IP của máy.
PHP:
Function doc_ma_may()
Dim i
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_Processor")
For Each objItem In colItems
i = objItem.ProcessorId
Next
doc_ma_may = i
End Function
Bạn có thể tham khảo thêm các đoạn code đọc mã khác như ổ C, D, E, CPU tại đây.
http://www.giaiphapexcel.com/forum/showthread.php?t=2918
http://www.giaiphapexcel.com/forum/showthread.php?t=10287
 

File đính kèm

Lần chỉnh sửa cuối:
Bạn thay hàm Function đọc mã đĩa bằng hàm này, sẽ đọc được IP của máy.
PHP:
Function doc_ma_may()
Dim i
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_Processor")
For Each objItem In colItems
i = objItem.ProcessorId
Next
doc_ma_may = i
End Function

Cảm ơn bạn đã hướng dẫn mình. Nhung khi mình làm theo bạn thì cái doạn Code này báo lỗi ban ạ. Mình không hiểu nhiều về VBA nên không sửa được. Bạn Boong sửa lại giúp mình vơi nhé.
 
Code vẫn chạy tốt mà! Bạn thử mở file này lên xem ô A1 có xuất hiện dòng chữ gì không? Trên máy mình không thấy có hiện tượng gì bất thường cả.
 

File đính kèm

Lần chỉnh sửa cuối:
Bạn boong ơi khi mình chạy file docmamay trên ô A1 xuât hiện dong chữ:BFEBFBFF000006F2. Bạn cho mình hỏi với đoạn Code như đó kết quả là BFEBFBFF000006F2 là địa chi MAC của máy tính a? hay là gi vậy? Tại sao mình làm theo hướng dẫn của bạn vơi file lúc trước bạn gửi cho mình nó lại báo lỗi vậy? Bạn xử lý giúp mình.
Cám ơn bạn nhiều!
 

File đính kèm

À, mình biết rồi. Bạn bỏ dòng đầu tiên trong Thisworkbook đi (là dòng "Option Explicit") là xong!
 
Lần chỉnh sửa cuối:
Em nghĩ bác chỉ cần xác định mã máy bằng tay trên các máy mà bác muốn nó sẽ chỉ chạy thôi! Rồi dùng Instr(..) để quét dữ liệu mã máy 1 lần nữa trên file này. Nếu có tồn tại thì cho vào, không thì báo rằng "lộn địa chỉ rồi bạn".
Vậy thôi!
Thân.
 
Web KT

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

Back
Top Bottom