Tặng các bạn File đăng nhập, Admin có thể tạo User mới.
2389
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.
2387
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:
2394
Sheet HOME sau khi Admin tạo thêm sheet/User:
2393
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.
2391
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.
2392
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.
2387
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.
2388
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.
2390
Do tính phức tạp nên cũng không lường trước được những tình huống, vì thế khi tải file về, ai mà phát hiện ra lỗi gì thì gửi lỗi đó lên đây đề cùng nhau xử lý nhé.
Trong file tôi lường khả năng Share Workbook cao nên tôi chỉ dùng biến mảng để ghi nhận tên và quyền admin nên trong quá trình thực hiện, nếu cái gì đó phát sinh ra lỗi, ngay lập tức biến này sẽ bị giải phóng. Ngoại trừ chọn sheet qua lại (mở sẳn) thì không thực hiện được các nút lệnh nào khác (có thông báo), trong trường hợp này, nên thoát file và đăng nhập lại. Rất tiếc cho lỗi bất tiện này!
Mọi password đều là: HoangTrongNghia
Khi tải file về, sau khi đăng nhập, bạn phải Unprotect Sheet (HOME & AD_SETTING), UnProtect Workbook và đăng nhập vào VBA, thay đổi password VBA. Đồng thời thay đổi Hằng số này tại Module: mdlPublic
Public Const pubPwd As String = "HoangTrongNghia"
Bạn đổi tên Pass lại thay cho "HoangTrongNghia".
Như vậy, sau khi đổi xong thì bạn chính là Admin rồi, bạn thao tác gì đó (tạo user) thì các việc sheet hay workbook protect đã mang pass của bạn. Còn không biết thao tác thì cứ thế mà dùng vậy.
Mặc định khi mở file là ADMIN và password là Admin.
Hy vọng các bạn cảm thấy tiện lợi cho công việc của mình.
===============================
Mới đổi file có thêm nút Re-Sign In, nếu giữa chừng bị lỗi phải đăng nhập lại thì không cần phải thoát file mà chỉ cần bấm nút!
2395
www.giaiphapexcel.com/diendan/threads/t%E1%BA%B7ng-c%C3%A1c-b%E1%BA%A1n-file-%C4%91%C4%83ng-nh%E1%BA%ADp-admin-c%C3%B3-th%E1%BB%83-t%E1%BA%A1o-user-m%E1%BB%9Bi.108318/#post675641
Học Nhân sự Tổng hợp – Trở thành chiến binh nhân sự vững nghiệp vụ
Con người là một trong những yếu tố quan trọng của công ty, là tài sản quý giá của doanh nghiệp. Chính vì thế,...
Xem khóa học
Mặc định nó là vậy, nhưng bạn hoặc người dùng có thể Reset lại, User Name đó chính là tên sheet, khi bạn thay đổi nó sẽ thay đổi theo. Nhớ là đừng làm thủ công, làm bằng nút lệnh hết nhé!
Admin chứ không phải admin, có phân biệt chữ hoa chữ thường!
Đúng là như vậy, các bạn cứ tùy biến và phát triển trên nền tảng có sẳn, sheet các bạn tạo ra các bạn có thể làm CSDL tùy thích.
Tôi chưa nói gì đến file của bạn, tôi nói file tôi trước cái đã.
1) ADMIN, ngoài việc có sẳn 2 sheet ADMIN & ADMIN_SET, có thể tạo thêm 12 sheet cho chính ADMIN sử dụng. Vì thế khi ADMIN đăng nhập, và chỉ có ADMIN mới xem được nhiều sheet của ADMIN.
2) Các sheet do ADMIN tạo ra không có User hay Pass mà phụ thuộc vào quyền đăng nhập của ADMIN, không ai được xem các sheet này, ngoại trừ ADMIN muốn xem (mặc định là sau khi thoát file chúng sẽ ẩn cho đến khi ADMIN bấm nút gọi chúng).
3) Sau khi ADMIN tạo ra các USER, mỗi USER là một sheet và chỉ có một mà thôi. Khi đăng nhập theo quyền của USER thì USER đó chỉ được sử dụng 2 sheet, đó là sheet HOME và sheet của USER đó mà thôi, họ không có quyền truy cập đến bất kỳ USER nào khác, dĩ nhiên không thể đụng tới các sheet thuộc ADMIN.
4) ADMIN được quyền xem mọi sheet, quản lý mọi sheet, cho nên khi ADMIN gọi sheet của bất kỳ USER nào thì sheet thuộc USER đó hiện ra.
Bạn theo nguyên tắc đó mà làm việc. Riêng nếu muốn quyền USER tạo thêm 1 vài sheet thì tôi sẽ nghiên cứu thêm (tức phải thay đổi toàn bộ hướng lập trình cũ, rất phức tạp).
Tôi chẳng hiểu kiểu bạn nói, chẳng lẽ User này được xem sheet của User khác hay sao? Vậy phân quyền để làm gì? Chuyện ai nấy làm, chỉ có Admin là xem được họ muốn làm gì thôi. Nếu muốn dùng chung thì tạo một User chung, ai muốn vào thì đăng nhập theo User đó.
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.
Cái này không khó tí nào cả. Muốn ẩn là ẩn thôi.
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 đó.
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!
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.
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.
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 SettingsTongDaiDesktop
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:
2398
Và cái hình hài của sheet HOME nó thế này nè:
2397
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.
Thật ra HOME là một sheet luôn luôn không ẩn, vì ngoại trừ AdIns thì các file bình thường khác phải để ít nhất 1 sheet, Excel không cho ẩn hết (và đương nhiên, sheet này hiện lên vô thưởng vô phạt, đâu có mất dữ liệu gì đâu mà lo).
Bạn muốn làm gì trên đó cũng được thiết kế sao cũng được, chẳng quan tâm, vì tôi không làm gì với sheet này cả mà chỉ để mấy cái shape điều khiển, bạn có thể di dời hay làm gì cũng được.
Đây là phiên bản mới, tôi cũng đã sửa sub này cho bạn thành:
Thêm nút lệnh XÓA SHEET trong sheet ADMIN_SETTING. Khi xóa sheet nó sẽ xóa luôn các nút lệnh liên quan đến sheet đó ở các sheet khác. Nếu đó là Sheet thuộc User quản lý, tức xóa User, thì những gì liên quan đến User đó sẽ được xóa trong ADMIN_SETTING.
2399
Xem file để biết thêm chi tiết.
À, tôi lại phải gửi mail cho bạn nữa rồi, tải thử lần nữa vẫn không được.
Không phải tôi không muốn thêm, nhưng tôi không biết vị trí cái nút link đến sheet thêm đó sẽ đặt ở đâu nữa!
Bạn chả hiểu tôi nói gì cả! Tôi sẽ đặt nút tên sheet đó ở vị trí nào của sheet HOME, của sheet ADMIN? Lỡ đặt chồng lên nút khác và che khuất nút đó thì sao?
Không quy định được đâu, có thể tôi cho nó ở vị trí mặc định tại ô A1, sau khi tạo xong thì người dùng có thể rê nó đi đâu tùy ý, chẳng lẽ lại lười đến nổi không rê được nó vào một ví trí tốt đẹp hay sao?
Trả tiền bản quyền đấy nhé! Kakaka
Chỉ có đọc thì làm sao chạy macro mà ngăn chặn việc Save As?
Tôi mà mở không được tôi chẳng làm gì hết, xóa luôn cái file, biết ai xóa đâu mà bắt đền +-+-+-++-+-+-++-+-+-+
Cho hỏi, với file của tôi, trong chế độ Share, tức ít nhất 2 người cùng làm được trên file đó, vậy có lỗi đăng nhập gì không? Sheet nó có mở đồng loạt hay không? Tôi không có điều kiện để test điều này.
Để ngăn SaveAs thì trong Module của Thisworkbook thêm vào sự kiện có sẳn:
Với WriteSomeThing muốn đặt mật khẩu là gì thì tùy, để phòng việc chính mình Save As nữa chứ.
Tôi mà SaveAs không được thì tôi copy nguyên folder luôn.
Bạn làm như thần tiên vậy, mai không biết xong chưa. Một lần thay đổi là cả ngàn dòng lệnh viết ra, rồi thử tới thử lui xem có lỗi gì không để bẩy lỗi hoặc viết lại, tùm lum thứ. Nhưng cái thứ mà tôi sợ nhất ở file của bạn là bạn chạy sự kiện tùm lum! Nếu chỉ dành cho sheet đó thì sao không viết sự kiện ở sheet đó mà phải viết trong Thisworkbook thế chả biết.
Tôi đã thực hiện nút Insert cho bạn rồi đó.
2402
Gọi là nút chứ cả một cái FORM và nhiều xử lý khác chứ có dễ dàng gì đâu. Nếu Insert cái sheet và đặt tên cho nó thôi thì quá dễ rồi, phải chọn nó thuộc là sheet để sử dụng hay là User để điều khiển nữa chứ. Sau đó lại Inser cho các hạng mục một Sheet được User nào sử dụng và một User thì ai là người được truy cập vào và User này được quyền sử dụng sheet nào nữa chứ đâu phải giỡn chơi. Bổ sung thêm Tiêu đề cho Shape vì tên của Shape chính là tên của sheet, còn cái tiêu đề trên shape, cái chữ hiển thị ra trên shape đó chính là caption hay gọi nôm na là tiêu đề cho dễ, thì ta có thể gõ tiếng Việt, hoa hay thường đều được để dễ dàng nhìn thấy (ghi vào hay không cũng được, không ghi thì nó hiển thị tên sheet vừa đặt).
Nếu tạo User thì nó có nút hoa văn xanh, còn tạo sheet nó có nút màu vàng vàng, và LƯU Ý rằng khi tạo ra một sheet/user nếu User nào được quyền sử dụng thì xem các shape được tạo nó nằm rải rác trên cột N ở các vị trí 2, 4, 6, 8, … (để ý đến trang HOME và các trang chính của các User được truy cập sheet/user mới đó mà rê các shape này đúng vị trí thiết kế, riêng HOME chỉ có nút khi tạo USER còn ADMIN luôn luôn có shape)
2400
Đặc biệt Form Reset tạo ra hiệu ứng bung ra "dịu dàng và nhẹ nhàng" hơn là những phiên bản trước, có thêm Tiêu đề cho Shape nữa)
2401
Tôi chỉ giới thiệu thôi, sẽ gửi file cho bạn qua Email.
Với các bạn khác, tôi sẽ làm cho nhẹ nhàng hơn gửi tặng các bạn sau nhé!
2403
Tôi rút gọn file của tôi đang dùng lại và gửi cho bạn cái cơ bản của file đăng nhập của anh Nghĩa đây nhé.
ADMIN – pass: Admin
USER1 – pass: User1
Các pass Unprotect khác: 1