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,581
Được thích
16,641
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
Với file mới này em có thể bố trí lại trang HOME theo ý muốn chứ không cần giữ nguyên đúng không ạ?
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.
 
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.
Em không thể xóa sheet dù đã unlock Protect Structure rồi anh ạ. Sau khi chọn Delete sheet nó cứ báo lỗi như hình. Tắt file vào lại thì vẫn y nguyên. ANh còn protect chỗ nào chỉ em với.
1.jpg
 
Lần chỉnh sửa cuối:
Upvote 0
Em không thể xóa sheet dù đã unlock Protect Structure rồi anh ạ. Sau khi chọn Delete sheet nó cứ báo lỗi như hình. Tắt file vào lại thì vẫn y nguyên. ANh còn protect chỗ nào chỉ em với.
View attachment 148088

Kakaka, biết ngay mà, chắc phải làm thêm công cụ cho chú mày xơi nữa! Mà cái file đó cơ bản đã dáp ứng cho công việc chưa?
 
Upvote 0
Kakaka, biết ngay mà, chắc phải làm thêm công cụ cho chú mày xơi nữa! Mà cái file đó cơ bản đã dáp ứng cho công việc chưa?
Hiện tại thì đang ổn anh ạ. Vì em lúc trưa giờ mò cái delete sheet mãi nên cũng chưa test hết được. Có cái phần xóa dữ liệu cũ trong sheet Exp bị lỗi em mò cũng chưa ra, nó báo lỗi đoạn này
Sheets("Exporting").Range("A14:C1000000,E14:I1000000").ClearContents
Em xem trong file thấy anh vẫn để tên sheet là Exp nên e đã sửa thành
Sheets("Exp").Range("A14:C1000000,E14:I1000000").ClearContents

Nhưng vẫn ko được. Hỏng hỉu nó lỗi sao nữa.
 
Upvote 0
Hiện tại thì đang ổn anh ạ. Vì em lúc trưa giờ mò cái delete sheet mãi nên cũng chưa test hết được. Có cái phần xóa dữ liệu cũ trong sheet Exp bị lỗi em mò cũng chưa ra, nó báo lỗi đoạn này

Em xem trong file thấy anh vẫn để tên sheet là Exp nên e đã sửa thành


Nhưng vẫn ko được. Hỏng hỉu nó lỗi sao nữa.
Bạn thử nghĩ xem, file 65536 dòng, bạn bắt nó xóa 100 ngàn dòng, hỏi nó chịu xóa hay không? Muốn xóa được thì convert nó qua Excel trên 2003 thôi.

Đó, vấn đề đặt tên trùng thì khi Replace nó lại lộn xộn như vậy đó. Chú ý đừng để chuyện này xảy ra nữa nhé.
 
Upvote 0
Bạn thử nghĩ xem, file 65536 dòng, bạn bắt nó xóa 100 ngàn dòng, hỏi nó chịu xóa hay không? Muốn xóa được thì convert nó qua Excel trên 2003 thôi.

Đó, vấn đề đặt tên trùng thì khi Replace nó lại lộn xộn như vậy đó. Chú ý đừng để chuyện này xảy ra nữa nhé.

Chỉ được cái tội hay hỏi nhưng mỗi lần hỏi xong em thấy đỡ ngu đi chút chút. +-+-+-++-+-+-++-+-+-+
 
Upvote 0
Hiện tại thì đang ổn anh ạ. Vì em lúc trưa giờ mò cái delete sheet mãi nên cũng chưa test hết được. Có cái phần xóa dữ liệu cũ trong sheet Exp bị lỗi em mò cũng chưa ra, nó báo lỗi đoạn này

Em xem trong file thấy anh vẫn để tên sheet là Exp nên e đã sửa thành


Nhưng vẫn ko được. Hỏng hỉu nó lỗi sao nữa.
Đây là phiên bản mới, tôi cũng đã sửa sub này cho bạn thành:

Mã:
Sub Xoa_DL()
    If MsgBox("Ban chac chan muon xoa du lieu chu?", vbYesNo, "Xac nhan thong tin") <> 6 Then Exit Sub
    Dim EndRow As Long
    With Sheets("EXP")
        EndRow = fLastRow(.UsedRange)
        If EndRow > 13 Then
            .Range("A14:C" & EndRow).ClearContents
            .Range("E14:I" & EndRow).ClearContents
        End If
    End With
End Sub

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.

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.
 

File đính kèm

  • NewVersion.jpg
    NewVersion.jpg
    70.5 KB · Đọc: 112
Upvote 0
Em cảm ơn anh. EM vừa nhận được mail. Em sẽ xem ngay
 
Upvote 0
Hay tuyệt với cái nút xóa sheet anh ạ. Nhưng e thắc mắc tại sao a ko làm tương tự với cái nút thêm sheet (thêm user). Như vậy có khỏe hơn ko ạ. /-*+//-*+//-*+/
 
Upvote 0
Hay tuyệt với cái nút xóa sheet anh ạ. Nhưng e thắc mắc tại sao a ko làm tương tự với cái nút thêm sheet (thêm user). Như vậy có khỏe hơn ko ạ. /-*+//-*+//-*+/
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!
 
Upvote 0
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!
Theo ý em thì tạo ra 2 nút thêm. Nếu thêm user thì chỉ cần đặt link sheet ở trang home là đủ. Ở trong sheet user mới tạo sẽ mặc định có nút HOME và banner chương trình (nếu có thể).
Còn nếu thêm sheet data thì khi thêm có thể đưa ra một list các user được truy cập vào đó cho mình chọn. Nếu chọn user nào thì sẽ thêm vào ở user đó.
Thêm một ý nữa là trong hai cái nút để thêm đó ta có thể Edit quyền được truy cập của user cũng bằng cách chọn vào list.
 
Lần chỉnh sửa cuối:
Upvote 0
Theo ý em thì tạo ra 2 nút thêm. Nếu thêm user thì chỉ cần đặt link sheet ở trang home là đủ. Ở trong sheet user mới tạo sẽ mặc định có nút HOME và banner chương trình (nếu có thể).
Còn nếu thêm sheet data thì khi thêm có thể đưa ra một list các user được truy cập vào đó cho mình chọn. Nếu chọn user nào thì sẽ thêm vào ở user đó.
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?
 
Upvote 0
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?
Cái NameBox có thể sử dụng trong code được ko anh? Nếu vận dụng được nó thì ta có thể quy định đặt các nút trong một range nào đó, với điều kiện là so sánh nếu namebox đã có thì đặt ở vị trí như thế nào đó so với namebox đó trong range.
 
Upvote 0
Cái NameBox có thể sử dụng trong code được ko anh? Nếu vận dụng được nó thì ta có thể quy định đặt các nút trong một range nào đó, với điều kiện là so sánh nếu namebox đã có thì đặt ở vị trí như thế nào đó so với namebox đó trong range.
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
 
Upvote 0
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
Anh Nghĩa còn thức không em mời cafe. Em đang phải để cả ca cà phê bên cạnh để thức mà làm đây, đang nhiều cái muốn hỏi nhưng nín chờ giải quyết từng việc một. :-=:-=
 
Upvote 0
Anh Nghĩa còn thức không em mời cafe. Em đang phải để cả ca cà phê bên cạnh để thức mà làm đây, đang nhiều cái muốn hỏi nhưng nín chờ giải quyết từng việc một. :-=:-=
Hỏi cha nó một lần đi, chứ lắc nhắc chỉnh sửa mệt lắm, cái nào giải quyết được thì làm không thì chịu.
 
Upvote 0
Hỏi cha nó một lần đi, chứ lắc nhắc chỉnh sửa mệt lắm, cái nào giải quyết được thì làm không thì chịu.
Căn bản là nó không thuộc vào chủ để này nữa nên em không hỏi trong này được anh ạ.
À, e mới nảy ra thêm một ý. Đó là anh tăng thêm khả năng bảo mật bằng cách không cho save as khi mở file ở chế độ read-only được không ạ. Em có đọc một bài trên diễn đàn nhưng down file về thực hiện thì thấy vẫn lỗi, không tự động ngăn save as được mà phai enable lên.
Bên cạnh đó thêm cái code tự động backup dữ liệu nữa thì tốt nhất. Em đọc và có làm được rồi nhưng với folder đã được tạo trước. Còn nếu với folder chưa có thì e vẫn chưa làm được để creat folder.
 
Upvote 0
Căn bản là nó không thuộc vào chủ để này nữa nên em không hỏi trong này được anh ạ.
À, e mới nảy ra thêm một ý. Đó là anh tăng thêm khả năng bảo mật bằng cách không cho save as khi mở file ở chế độ read-only được không ạ. Em có đọc một bài trên diễn đàn nhưng down file về thực hiện thì thấy vẫn lỗi, không tự động ngăn save as được mà phai enable lên.
Bên cạnh đó thêm cái code tự động backup dữ liệu nữa thì tốt nhất. Em đọc và có làm được rồi nhưng với folder đã được tạo trước. Còn nếu với folder chưa có thì e vẫn chưa làm được để creat folder.
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 +-+-+-++-+-+-++-+-+-+
 
Upvote 0
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 +-+-+-++-+-+-++-+-+-+
Em đang share folder chưa file của em ở chế độ read-only với Everyone. Em thấy các macro vẫn hoạt động bình thường ở máy khác mà anh.
 
Upvote 0
Em đang share folder chưa file của em ở chế độ read-only với Everyone. Em thấy các macro vẫn hoạt động bình thường ở máy khác mà anh.
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.
 
Upvote 0
Web KT
Back
Top Bottom