Tặng các bạn File đăng nhập, Admin có thể tạo User mới.

Liên hệ QC

Hoàng Trọng Nghĩa

Chuyên gia GPE
Thành viên BQT
Moderator
Tham gia
17/8/08
Bài viết
8,616
Được thích
16,675
Giới tính
Nam
attachment.php


Do nhiều bạn có nhu cầu rất cao về bảo mật nên thường có ý muốn gì đó cho việc riêng tư, hiểu được điều đó tôi đã tạo ra một file (mấy ngày trời) test đi test lại đổi đi đổi lại xem có phát sinh lỗi gì không.

Hôm nay, tôi thấy tương đối ổn định nên muốn gửi lên tặng các bạn tham khảo. Dĩ nhiên, ngoài việc khóa Excel của chính Excel mới có thể gọi là bảo mật cao, thì mọi việc Protect (Sheet, Structure, VBA) đều không là vấn đề gì đối với các cao thủ. Song đối với những người khác thì cũng khó mà bẻ khóa được. Ngoài ra, file này được tạo ra cũng khá công phu nên nhìn vào ta có thể thấy nó khá "rồ" và "hoành tá tràng". Mặc dù tính bảo mật không mấy là cao, nhưng tính thẩm mỹ của nó cũng ít nhiều làm người khác hài lòng. Nếu các bạn biết thiết kế, các bạn sẽ phát triển nó tốt hơn.

Sheet HOME Khi chỉ mỗi Admin đăng nhập lần đầu tiên:

attachment.php


Sheet HOME sau khi Admin tạo thêm sheet/User:

attachment.php


Nếu bạn là người sở hữu file này, tôi tạm gọi là Admin, bạn có thể tạo thêm 12 sheet cho riêng mình sử dụng và 150 sheet cho mỗi User. Ngoài ra file có 3 sheet mặc định, không được xóa: HOME, ADMIN, AD_SETTING.

attachment.php


Bạn có thể thay đổi tên của tất cả các sheet, ngoại trừ sheet HOME, thông qua công cụ reset.

attachment.php


Bạn cũng có thể thêm User (150 user) thông qua công cụ create user, mỗi sheet đều có nút Home để quay về sheet Home.

Bất cứ sheet nào bạn xóa thì khi thêm sheet, vị trị nào bị xóa ở giữa các sheet thì sheet mới sẽ chèn vào đó, ví dụ có User1, User3 mà chưa có User2 (do bị xóa) thì khi thêm sheet nó sẽ tạo ra sheet User2.

attachment.php


Bạn cũng có thể xóa User/Sheet, thông qua công cụ delete, ngoại trừ 3 sheet mặc định.

attachment.php


Mỗi User kể cả Admin khi đăng nhập lần đầu tiên đều phải thay đổi User Name và Password.

User có thể thay đổi User và Password bất cứ lúc nào.

attachment.php


Hình ảnh mang tính chất minh họa, file sẽ gửi ở bài sau.
 

File đính kèm

  • JoinFile.jpg
    JoinFile.jpg
    52.9 KB · Đọc: 2,234
  • MenuDelete.jpg
    MenuDelete.jpg
    29.7 KB · Đọc: 2,247
  • MenuCreate.jpg
    MenuCreate.jpg
    44.8 KB · Đọc: 2,163
  • QuyenAdmin.jpg
    QuyenAdmin.jpg
    33 KB · Đọc: 2,135
  • UserReset.jpg
    UserReset.jpg
    72.3 KB · Đọc: 2,148
  • AdminReset.jpg
    AdminReset.jpg
    99.3 KB · Đọc: 2,121
  • AdminDelete.jpg
    AdminDelete.jpg
    60.8 KB · Đọc: 2,098
  • CreatUser.jpg
    CreatUser.jpg
    48.7 KB · Đọc: 2,128
Mình xin góp 1 ý kiến nhỏ:
- Mọi người đều thống nhất là file excel bảo mật không cao, nên việc phân quyền xem file cho admin và user khó mà "qua mặt" được người "tò mò" -> tính khả thi của tiện ích anh Nghĩa làm sẽ không nhiều lắm (mong anh đừng phận ý, bản thân mình đã học thêm được nhiều điều từ code anh viết)
- Mấu chốt trong file excel này là sheet AD_SETTING, và việc để nó visible khá dễ dàng (sau khi unprotect activewookbook), và sau khi xem được sheet này thì mình có toàn quyền admin luôn ^^.
Đề xuất: anh Nghĩa xem có phương pháp nào để mã hóa, ẩn các pass, hoặc giấu pass ở một nơi nào đó (ví dụ registry), hoặc phải có mã check nào đó (giống như mã nạp thẻ) để kiểm tra pass không?
Trùi ui, cái quỷ này chỉ để làm đẹp thôi, đừng nghĩ gì đến việc bảo mật, muốn bảo mật thì Save As rồi đặt password thôi, khả năng này cao nhất đó.
 
Upvote 0
Nếu tạo 1 User mà có đến Max là từ 1 đến 6 sheet và nhiều người dùng chung 1 User đó có được không? Tức là khi vào User đó người dùng có thể xem được tới 6 sheet được tạo.
Lọ mọ mãi em cũng đưa được file em vào file của bác. Trong file mới em có tạo thêm một user là VANHANH. Em nhờ anh xem dùm theo hướng đầu tiên là chỉ sử dụng 2 acc ADMIN và VANHANH
1. Nếu e đăng nhập bằng user VANHANH em ko sử dụng được button khi mà em chọn sub sheetselect cho nó. Nó cứ báo ko đủ quyền. Có thể tạo thêm một sub tương tự cho phép link đến bất kỳ sheet nào để dùng cho nó không ạ?
2. Làm sao cho em chọn đến sheet Báo Cáo rồi khi ấn về home (Được e thay bằng biểu tượng VNPT) thì nó trở về trang tương ứng với User đăng nhập.

Cái này không khó tí nào cả. Muốn ẩn là ẩn thôi.
Anh hướng dẫn em đi ạ.

File của em đây, e đã đổi toàn bộ pass thành "1"
 
Upvote 0
Lọ mọ mãi em cũng đưa được file em vào file của bác. Trong file mới em có tạo thêm một user là VANHANH. Em nhờ anh xem dùm theo hướng đầu tiên là chỉ sử dụng 2 acc ADMIN và VANHANH
1. Nếu e đăng nhập bằng user VANHANH em ko sử dụng được button khi mà em chọn sub sheetselect cho nó. Nó cứ báo ko đủ quyền. Có thể tạo thêm một sub tương tự cho phép link đến bất kỳ sheet nào để dùng cho nó không ạ?
2. Làm sao cho em chọn đến sheet Báo Cáo rồi khi ấn về home (Được e thay bằng biểu tượng VNPT) thì nó trở về trang tương ứng với User đăng nhập.


Anh hướng dẫn em đi ạ.

File của em đây, e đã đổi toàn bộ pass thành "1"

Hiện tại, tôi chưa xem file bạn vì tôi xài điện thoại. Chỉ cần bạn nói nick VANHANH được xem những sheet nào thôi tôi sẽ làm cho bạn!
 
Upvote 0
Hiện tại, tôi chưa xem file bạn vì tôi xài điện thoại. Chỉ cần bạn nói nick VANHANH được xem những sheet nào thôi tôi sẽ làm cho bạn!
Nick VANHANH sẽ được xem 2 sheet BC tram và BC theo ten.
Nếu có thể a giúp cho em một cái sub tương tự như sub sheetselect nhưng sẽ không bị giới hạn phân quyền để sử dụng cho các link dùng chung được ko ạ.
 
Upvote 0
Anh Nghĩa đẹp zai đưa bồ đi trung thu từ hôm qua giờ chưa về nhà thì phải ấy nhỉ /-*+//-*+/
 
Upvote 0
Anh Nghĩa đẹp zai đưa bồ đi trung thu từ hôm qua giờ chưa về nhà thì phải ấy nhỉ /-*+//-*+/
Trung thu gì mà trung thu! Đang xử lý cái CALENDAR nên chưa có thời gian viết cho bạn, tôi nghĩ cái của bạn cũng không dễ nhai, nhưng tôi đang có ý tưởng mới, sẽ áp dụng khi tôi rảnh một chút. Gấp gì mà phải hối thúc phải không?
 
Upvote 0
Trung thu gì mà trung thu! Đang xử lý cái CALENDAR nên chưa có thời gian viết cho bạn, tôi nghĩ cái của bạn cũng không dễ nhai, nhưng tôi đang có ý tưởng mới, sẽ áp dụng khi tôi rảnh một chút. Gấp gì mà phải hối thúc phải không?
Ui. Hoá ra anh phải tự sướng. He he. Cũng hơi cần gấp vì yêu cầu bảo mật đối với số liệu này anh ạ. Với các anh em ở đây thì ko gọi là bảo mật nhưng với những công nhân vân hành ở chỗ em thì thế này là quá xương rồi.
Trong lúc chờ ý tưởng mới của anh Em nghĩ với form này cũng có thể ổn nếu anh có thể viết code selectsheet dùng chung để khi đó chỉ cần sử dụng chung một trang chủ và sheet nào dùng chung thì dùng code đó.
 
Upvote 0
Nếu tạo 1 User mà có đến Max là từ 1 đến 6 sheet và nhiều người dùng chung 1 User đó có được không? Tức là khi vào User đó người dùng có thể xem được tới 6 sheet được tạo.
Em tạm thời thêm 2 cái dòng này vào code của anh để cho user VANHANH vào được hai sheet báo cáo (Có chừng đó mà em mò mất 2 ngày nay đó):
Case "BC tram" If strQuyenSuDung = "ADMIN" Or strQuyenSuDung = "VANHANH" Then
Sheet13.Visible = xlSheetVisible
strSheetNameAlt = Sheet13.Name
End If
Case "BC tenQL"
If strQuyenSuDung = "ADMIN" Or strQuyenSuDung = "VANHANH" Then
Sheet14.Visible = xlSheetVisible
strSheetNameAlt = Sheet14.Name
End If


Cái này không khó tí nào cả. Muốn ẩn là ẩn thôi.
Cái này em mò mẫm mãi không được anh dành chút thời gian chỉ em đi.
 
Upvote 0
Anh Nghĩa help em với ạ. Em làm file xong rồi. Ở máy em thì chạy ngon lành, đem sang máy khác chạy nó báo lỗi như trong hình. Không hiểu vì sao luôn. (Máy e chạy win server 2003, đưa sang máy WIN 7 ko chạy được). Cái % loading nó ko có chạy.
mn2.jpgmn1.jpgmn11.jpg
 
Lần chỉnh sửa cuối:
Upvote 0
Anh Nghĩa help em với ạ. Em làm file xong rồi. Ở máy em thì chạy ngon lành, đem sang máy khác chạy nó báo lỗi như trong hình. Không hiểu vì sao luôn. (Máy e chạy win server 2003, đưa sang máy WIN 7 ko chạy được). Cái % loading nó ko có chạy.
View attachment 147862View attachment 147860View attachment 147861
Mở VBA ra, chọn form thiết kế, chọn Tool, chọn References cái nào Missing thì bỏ đi, rồi save lại. Có lẽ tôi lại thiết kế cái Control khác để thay thế cái này nữa rồi.
 
Upvote 0
Mở VBA ra, chọn form thiết kế, chọn Tool, chọn References cái nào Missing thì bỏ đi, rồi save lại. Có lẽ tôi lại thiết kế cái Control khác để thay thế cái này nữa rồi.
Em chọn trong References chỉ còn 3 cái nó ko cho remove vì đang run còn nữa bỏ hết rồi mà vẫn không được anh ạ. Làm sao biết cái nào missing được anh???
 
Upvote 0
Em bổ sung thêm cho a Nghĩa một lỗi nữa mà với lỗi này thì bảo mật chả còn gì cả, hic hic. Nếu em mở file gốc ra bằng tài khoản ADMIN rồi mở các tất cả các sheet ADMIN,AD_SETING,User1... lên, sau đó em save lại nhưng không đóng file và em sử dụng máy khác mở file lên (ở chế độ read-only) dù đăng nhập vào bằng acc User nó sẽ hiện ra toàn bộ các sheet đã được mở ở file gốc. Chỉ có sau khi save đóng file gốc lại và mở ra thì mới không bị nữa. Anh xem xét lỗi này sớm giúp em nhé.
Em nghĩ giải pháp tạm thời là anh sửa giúp cho em cái code làm sao chỉ hiện mỗi 1 sheet hiện thời còn nữa ẩn hết. Em nghĩ giải pháp đó tạm thời sẽ được.
 
Upvote 0
Em bổ sung thêm cho a Nghĩa một lỗi nữa mà với lỗi này thì bảo mật chả còn gì cả, hic hic. Nếu em mở file gốc ra bằng tài khoản ADMIN rồi mở các tất cả các sheet ADMIN,AD_SETING,User1... lên, sau đó em save lại nhưng không đóng file và em sử dụng máy khác mở file lên (ở chế độ read-only) dù đăng nhập vào bằng acc User nó sẽ hiện ra toàn bộ các sheet đã được mở ở file gốc. Chỉ có sau khi save đóng file gốc lại và mở ra thì mới không bị nữa. Anh xem xét lỗi này sớm giúp em nhé.
Em nghĩ giải pháp tạm thời là anh sửa giúp cho em cái code làm sao chỉ hiện mỗi 1 sheet hiện thời còn nữa ẩn hết. Em nghĩ giải pháp đó tạm thời sẽ được.
Tôi sẽ bổ sung, sau khi Save tất cả sheet sẽ ẩn ngoại trừ sheet Home. Còn thao tác gì khác thì tùy. Tôi đang nghiên cứu cho bạn, nên bạn đừng có hối, hư bột hư đường hết mắc công làm đi làm lại.
 
Upvote 0
Tôi sẽ bổ sung, sau khi Save tất cả sheet sẽ ẩn ngoại trừ sheet Home. Còn thao tác gì khác thì tùy. Tôi đang nghiên cứu cho bạn, nên bạn đừng có hối, hư bột hư đường hết mắc công làm đi làm lại.
Em ko hối, chỉ là trong quá trình áp dụng có lỗi gì em post lên để anh fix luôn. Và em đưa ra ý kiến của mình để anh tham khảo thôi. E chỉ có ý tưởng, chớ còn thực hiện thì bó tay. !$@!!!$@!!
 
Upvote 0
Em ko hối, chỉ là trong quá trình áp dụng có lỗi gì em post lên để anh fix luôn. Và em đưa ra ý kiến của mình để anh tham khảo thôi. E chỉ có ý tưởng, chớ còn thực hiện thì bó tay. !$@!!!$@!!
Tôi đã làm xong cho bạn rồi nè, chờ lâu quá hả? Tôi muốn khùng với file của bạn luôn. Tôi có một số ý kiến muốn góp ý cho bạn:

Khi copy sheet từ file này qua file khác, nhớ đến các Name và công thức, xem chừng sẽ chứa đường dẫn như vầy:


C:\Documents and Settings\TongDai\Desktop\[QUAN LY VAN HANH MAY NO-v1.0.xlsm]


Cách đặt tên Define Name không nên trùng với tên của tên Sheet, tên Shape, tên Sub v.v... nói chung không được trùng tên lẫn nhau.


Chỉ có tên Sheet cho phép trùng với tên Shape (điều này tôi lấy tên của shape để gọi tên sheet, điều này Excel cho phép).


Tôi thấy Define Name có tên như thế này: NgQly và Sub NgQly()


Điều này khi chạy macro đôi khi phải thêm cái tên Module đằng trước nữa đấy.


Tôi đã đổi tên sub NgQly() thành Sub NguoiQuanLy() và Sub Exp() thành Sub Exporting() do tên Sheet trùng với tên của Macro.

Trong File của bạn, nên lưu ý và đọc kỹ HƯỚNG DẪN SỬ DUNG:


0) Sửa tên USER luôn luôn bằng nút RESET USER & PASSWORD.


1) Insert thêm sheet nào thì đặt tên cho sheet đó, giả sử đặt là TRONG_NGHIA thì User sẽ là TRONG_NGHIA, copy một shape đặt tên là TRONG_NGHIA (nhìn hình, bạn có thể thấy là bạn ghi gì trên shape không thành vấn đề, bạn đặt tên nó trên Name Box mới chính xác nhé)


2) Sau đó ghi cái tên sheet đó lên sheet TRUY_CAP này ở cột tiếp theo thuộc các cột CÁC SHEET ĐƯỢC QUYỀN TRUY CẬP, ai được quyền truy cập thì copy tên sheet đó vào, dĩ nhiên đừng quên ADMIN nhé! Code sẽ chạy căn cứ vào các cột chứa sheet của ADMIN. Ngược lại, khi Delete sheet nào thì các bạn cũng xóa tên sheet đó ở trong sheet này luôn nhé!


3) Khi bạn Insert hoặc Delete sheet xong, phải nhớ bấm nút LÀM MỚI để truy cập lại mảng public.



Tôi cũng thay cái Progress bằng cái mới chắc sẽ không bị lỗi gì nữa đâu:

attachment.php


Và cái hình hài của sheet HOME nó thế này nè:

attachment.php


Nói chung bạn tải file về và kiểm tra xem có vừa ý chưa, có lỗi gì không nhé.

Ui, khuya quá rùi, ngủ thôi. Khò khò khò.--=----=----=--

-----------------------------------------------------------------------
p/s: File nặng quá tải lên hỏng có nổi (chắc do bạn add nhiều Picture quá, tôi lại làm đủ 12 tháng đều có picture). Bạn cho tôi mail đi, mai tôi gửi cho hen.
 

File đính kèm

  • DangNhap.jpg
    DangNhap.jpg
    53.2 KB · Đọc: 123
  • Menu.jpg
    Menu.jpg
    19.3 KB · Đọc: 120
Upvote 0
Web KT
Back
Top Bottom