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,590
Được thích
16,653
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
Nhiều khi nó đăng nhập rất lâu mặc dù chưa có dữ liệu....tại sao nhỉ?
 
Upvote 0
Mình tải về chạy không được bạn ạ
Mình ko up được hình nên nó báo compile error in hidden module: UsfUser
Bạn biết lỗi này ko
 

File đính kèm

  • loi.jpg
    loi.jpg
    50.1 KB · Đọc: 128
Upvote 0
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!

attachment.php
Cao thủ ơi nhờ xem lại đoạn code này có gì đó không ổn,
thiếu Sheets(strSheetNameAlt).Visible = xlSheetVisible
nên không select được
Nếu thêm vào thì User cũng mở được của Admin
 
Upvote 0
Sub SheetSelect()
On Error Resume Next
Dim strSheetName As String, strSheetNameAlt As String, strQuyenSuDung As String
strSheetName = pubUserAndSheet(0)
strQuyenSuDung = pubUserAndSheet(1)
strSheetNameAlt = ActiveSheet.Shapes(Application.Caller).AlternativeText
Call StructureLock(False)
HOME.Visible = xlSheetVisible
Select Case strSheetNameAlt
Case "HOME"
If ActiveSheet.CodeName = "HOME" Then
strSheetNameAlt = strSheetName
Else
strSheetNameAlt = HOME.Name
End If
Case "ADMIN"
If strQuyenSuDung = "ADMIN" Then
ADMIN.Visible = xlSheetVisible
strSheetNameAlt = ADMIN.Name
End If
Case "ADMIN_SETTING"
If strQuyenSuDung = "ADMIN" Then
ADMIN_SETTING.Visible = xlSheetVisible
strSheetNameAlt = ADMIN_SETTING.Name
End If
Case Else
If strQuyenSuDung = "ADMIN" Or strSheetName = strSheetNameAlt Then
Sheets(strSheetNameAlt).Visible = xlSheetVisible
End If
End Select
Sheets(strSheetNameAlt).Select
ActiveWindow.ScrollRow = 1
ActiveWindow.ScrollColumn = 1
If Err.Number Then
Err.Clear
MsgBox "Ban khong co quyen truy cap vao day!", vbCritical, "Thông Báo"
End If
Call StructureLock(True)
End Sub
 
Upvote 0
Cảm ơn bác nhiều vì sự cống hiến.
Làm phiền bác có thể tách riêng cho em đoạn code chỉ lấy mỗi cái màn hình đăng nhập được không? Em chỉ cần cái đó thôi cơ mà không biết về VBA.
 
Upvote 0
Tôi bị lỗi, tải lại cũng vẫn bị. Xóa đi không xóa được. (hình đính kèm)
 

File đính kèm

  • Untitled1.jpg
    Untitled1.jpg
    91.7 KB · Đọc: 53
Upvote 0
cho mình xin file đó đi:
mail là:huonghoangvan920@gmail.com
 
Upvote 0
Anh Nghĩa vào xem bài này để tạo lại giao diện đăng nhập nhìn sẽ Pro hơn nè.
http://www.giaiphapexcel.com/forum/...cách-tạo-Form-có-hình-dạng-bất-kỳ-(Skin-Form)
Cái vụ này chỉ là file đăng nhập và quyền truy cập, nên mức độ "cao cấp" chưa thật cần thiết. Vả lại, nguyên tắc của cái Skin Form mà bạn đưa lên nó cũng chỉ là cho transparent (làm trong suốt) cái form và chỉ cho hiển thị cái picture, song code đó chạy chậm quá, thậm chí phát sinh ra lỗi nên tôi không thể áp dụng cho những trường hợp đơn giản. Nhưng sẽ nghiên cứu và làm tăng tốc cũng như tính ứng dụng của nó ở những lần sau.
 
Upvote 0
Cũng thông tin thêm, nhân dịp 10 năm diễn đàn GPE, tôi sẽ viết một file tương đối đơn giản nhưng các bạn sẽ dễ dùng cho mục đích của các bạn hơn.

Please wait ...;;;;;;;;;;;
 
Upvote 0
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
Bạn tự tạo/xóa các sheet data và user riêng của mình nhé.

Chào anh, em muốn nó hiện lên tất cả các sheet ẩn và khi nhập mật khẩu để Unprotect thì nó không tự động khóa nữa được không anh, vì hiện tại em mở xong qua sheet khác nó lại khóa phải nhập mat khẩu nữa mới được.
 
Upvote 0
Chào anh, em muốn nó hiện lên tất cả các sheet ẩn và khi nhập mật khẩu để Unprotect thì nó không tự động khóa nữa được không anh, vì hiện tại em mở xong qua sheet khác nó lại khóa phải nhập mat khẩu nữa mới được.

Chào anh, em muốn khi nhập mật khẩu để Unprotect thì nó không tự động khóa nữa được không anh, vì hiện tại em mở xong qua sheet khác nó lại khóa phải nhập mat khẩu số 1 nữa mới được. Hơi bất tiện
Chỉnh code như thế nào nhờ anh hướng dẫn giúp em nhe
 
Upvote 0
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!

attachment.php


Chào anh Nghĩa
, Nhu file của anh em muốn gỡ pass "HoangTrongNghia" thi sheet đó sẽ không tự động khóa nữa được không anh vì khi thao tác ti lại bắt nhập lại pass mới Unprotect Sheet
 
Upvote 0
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!

attachment.php
a ơi e dùng win 64 bit k mở đc, a có thể fix lại và gửi cho e xin vào mail: hieubv68@gmail.com. em cảm ơn
 
Upvote 0
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.
a nghĩa ơi, rc hết cảm ơn a về file này nhé. Nhưng cho e hỏi chút là: nếu như e tao ra 5 sheet mà trong đó 1 sheet sẽ lấy các dữ liệu của 4 sheet còn lại thì làm thế nào a vì các sheet bị ẩn hết rồi nên e muốn vlookup cũng k đc. MOng a giúp! e cảm ơn a
 
Upvote 0
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
Bạn tự tạo/xóa các sheet data và user riêng của mình nhé.
Chào anh như file rất gọn nhưng khi xử lý số liệu ví dụ như pivot thì bắt phải mở Unprotect, anh chỉnh bỏ tắt chế độ này và cần khóa sheet nào thì sẽ khóa thủ công được không anh?
Em cám ơn
 
Upvote 0
Web KT
Back
Top Bottom