Hỏi về bảo mật Workbook bằng VBA?

Liên hệ QC

huuhungpc

Thành viên mới
Tham gia
20/10/06
Bài viết
46
Được thích
54
!$@!! Tôi muốn các bạn chỉ giúp trong trường hợp: Tôi muốn khi mở workbook thì hiện bảng yêu cầu nhập username và password (có thể tạo sheet để nhập các user và password ở đó?). Khi một user đăng nhập thành công thì Excel tự ghi username đó và thời gian đăng nhập (Đại khái như là cái nhật ký sử dụng). Tôi đã đọc các bài trong diễn đàn nhưng chưa thấy lời giải đáp cụ thể. Mong được giúp đỡ. Cảm ơn nhiều.
 
Đây là cách của tôi vẫn làm:
Dùng sự kiện Workbook_open(), khi file được mở, sẽ kiểm tra 1 file .txt chứa mã, nếu file chứa mã không tồn tại hoặc mã không khớp thì nhập mã và ghi vào file .txt. Mã được tính qua serial của HDD.
Bạn nào có ý kiến khác?
 
Upvote 0
Chào bạn.
Về bảo mật trong VBA có thể thực hiện cách khác như sau:
- Tạo file lưu thông số cần kiểm tra đã mã hoá như bạn ChiBi đã nói (như serial đĩa cứng hoặc CPU máy tính ) hoặc có thể lưu thẳng trong Registry.
- Sau đó tạo các file *.dll (Sử dụng VB).
- Dùng VBA gọi ra để sử dụng. Trong file *.dll ta kèm theo kiểm tra điều kiện trên trước khi thực hiện lệnh.
Chúc thành công.
 
Upvote 0
Xin cảm ơn các bạn nhưng quả thật tôi chưa cần tới múc độ bảo mật như vậy. Tôi cần khi mở tập tin thì hiện bảng nhập username và password (cái này tôi đã làm được sau khi chép vài đọan mã từ diễn đàn) nhưng hiện tôi bí là làm sao khi username và password đó đăng nhập thành công thì chương trình tự động ghi vào một file quy định sẵn các số liệu về user như: Thời gian đăng nhập, tên tập tin đăng nhập......Chỉ đơn giản vậy thôi, để tiện báo cáo về việc sử dụng máy tính trong cơ quan và theo dõi các tập tin nhạy cảm thôi mà. Ai biết xin vui lòng giúp đỡ. Xin cảm ơn.
 
Upvote 0
Sẽ cụ thể, nếu bạn cho biết hướng rẽ!

huuhungpc đã viết:
Nhưng tôi chưa cần múc độ bảo mật như vậy. Tôi cần khi mở tập tin thì hiện bảng nhập username và password (cái này tôi đã làm được sau khi chép vài đọan mã từ diễn đàn)
Cái vụ này có thể dùng InputBox() để gán vô biến hay xài Form
nhưng hiện tôi bí là làm sao khi username và password đó đăng nhập thành công thì chương trình tự động ghi vào một file quy định sẵn các số liệu về user như: Thời gian đăng nhập, tên tập tin đăng nhập.. . . . .
Lấy 1 sheet & khoá nó lại = VBA (có trên DĐàn, bạn tìm bằng từ khoá Protect)
Khi kiểm mật khẩu & tên người dùng đúng thì chép số liệu từ các biến/ tử controls vô sheet đó thôi (Tất nhiên trước khi chép lên thì phải mở sheet nêu trên)
Tất cả bằng lời có vẻ dài dòng làm vậy, nhưng chỉ thực hiện trong chớp mắt
 
Upvote 0
bạn xem thử File này nhé, chỉ là ý tưởng thôi.
 

File đính kèm

Upvote 0
Ý tưởng của bác là điều thật sự em đang cần. Nếu em làm được như vậy nửa là hoàn hảo. Nhưng thật sự em không biết phải đưa vào chương trình của mình ntn. (Kg biết Ctrl+C và Ctrl+V chổ nào cho phù hợp). Sheet 3 được đưa vào đây để làm gì? Tại sao không thấy gì ở đó vậy? Xin lỗi các bác, em cũng chưa rành gì VBA lắm.
 
Upvote 0
huuhungpc đã viết:
Ý tưởng của bác là điều thật sự em đang cần. Nếu em làm được như vậy nửa là hoàn hảo. Nhưng thật sự em không biết phải đưa vào chương trình của mình ntn. (Kg biết Ctrl+C và Ctrl+V chổ nào cho phù hợp). Sheet 3 được đưa vào đây để làm gì? Tại sao không thấy gì ở đó vậy? Xin lỗi các bác, em cũng chưa rành gì VBA lắm.
Việc đưa vào như thế nào là vấn đề của em, mình chỉ đưa ra phương pháp thôi. Có gì khó khăn bạn cứ trình bày ý tưởng, sau đó mới giúp bạn được.
Và mình nghĩ như vậy bạn mới tiến bộ nhanh được

Mình đã sửa lại File trên, bạn tải và xem lại nhé.

Việc đưa vào Sheet3 thì có dụng ý
-Nếu ai không cho Macro chạy, thì chỉ thấy được Sheet3, không thấy được các Sheet khác
-Nếu ai tắt Form đăng nhập đi thì chỉ thấy được Sheet3, không thấy được các Sheet khác

Thân!
 
Upvote 0
Em post cái em đang làm lên đây nhờ bác giải quyết giúp. Em không phải là giáo viên dạy Tin, dư giáo viên nên em phải trực phòng vi tính. Rãnh rỗi nên tích cực nghiên cứu nhằm giúp cho anh em trong trường đỡ khổ mỗi khi cộng điểm, thống kê. Sẵn đây nhờ các bác coi giúp xem tại sao hàm tính điểm các môn chỉ hiện số khi nhập điểm vào còn không nó báo lỗi#DIV/0!, chỉnh hàm ntn để hiển thị 0,0?
 

File đính kèm

Upvote 0
Bạn có thể dùng hàm if để khắc phục lỗi này. Ví dụ:
=IF(COUNT(O6)=0,"",ROUND((SUM(D6:O6)+SUM(J6:O6)+O6)/(COUNT(D6:O6)+COUNT(J6:O6)+1),1))
 
Upvote 0
Theo ý tưởng ở trên, mình muốn form có 1 combox và 1 textbox, combox thì người sử dụng tự chọn tên truy cập, textbox thì để nhập mật khẩu. Mỗi 1 tên và 1 mật khẩu riêng thì truy cầp vào các sheet riêng. Người sử dụng khi vào chương trình thì tự người ta có thể thay đổi mật khẩu của mình
 
Upvote 0
Nếu chỉ thuần túy bảo mật bằng VBA thì không ổn đâu, phần mềm phá khóa sẽ vô hiệu hoá, tốt nhất các bạn nên nghiên cứu theo cách của anh VADanang.
 
Upvote 0
Việc đưa vào như thế nào là vấn đề của em, mình chỉ đưa ra phương pháp thôi. Có gì khó khăn bạn cứ trình bày ý tưởng, sau đó mới giúp bạn được.
Và mình nghĩ như vậy bạn mới tiến bộ nhanh được

Mình đã sửa lại File trên, bạn tải và xem lại nhé.

Việc đưa vào Sheet3 thì có dụng ý
-Nếu ai không cho Macro chạy, thì chỉ thấy được Sheet3, không thấy được các Sheet khác
-Nếu ai tắt Form đăng nhập đi thì chỉ thấy được Sheet3, không thấy được các Sheet khác

Thân!
cho hỏi anh Mr Okebab, "....Mình đã sửa lại File trên, bạn tải và xem lại nhé...." không tải được anh ơi
anh giúp cho em tải được với
cám ơn nhiều
 
Upvote 0
Web KT

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

Back
Top Bottom