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

Chia sẻ bởi:hands
★★★★★
Quảng cáo

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ụ
Khóa học SprinGO phù hợp

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
★★★★★ 5 ★ 1 👤 2 ▥ 0
Quảng cáo

Bạn nên đọc

2 Responses

  1. hands says:

    Em thấy nếu như khi thêm tên sheet theo tên tự đặt của riêng thì hay hơn anh ah. Cám ơn A.

    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é!

    minh khong mo duoc file pass la gi admin khonh duoc

    Admin chứ không phải admin, có phân biệt chữ hoa chữ thường!

    Chưa hiểu ý của bạn Nghĩa lắm, có phải là từ giờ trở đi, muốn bảo mật file excel thì phải dùng file của bạn như là template mẫu rồi phát triển ý đồ trên file này

    Đú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.

    Em sử dụng và có một số chỗ vướng mắc, a Nghĩa xem lại dùm:
    – Khi đăng nhập bằng admin xong nếu sử dung re-sign in đăng nhập vào user thì vẫn vào được ADMIN và AD-SETTING, chỉ có các sheet ADMIN_001… mới tạo là không vào được. Muốn user không vào được 2 sheet đó thì phải thoát hẳn file đăng nhập lại bằng user thì mới được.
    – Em muốn các user và các Admin dùng chung một số sheet nào đó thì em phải làm sao???? Ví dụ trong file em gửi, nếu em muốn giữ nguyên các sheet đã tạo, sau đó em muốn tất các các admin khi đăng nhập thì sẽ đăng nhập chung vào 1 trang chủ có đầy đủ button link đến các sheet, còn user thì đăng nhập vào trang chủ khác chỉ có button để link đến sheet xem báo cáo thôi. Không biết anh có thể làm thêm một mục đó là khi tạo thêm một ad hay một user thì sẽ được chọn group cho user đó. Mỗi group khi đăng nhập vào và ấn button của user ở trang home sẽ được link đến một trang chủ chung cho Group đó. Ý tưởng em thế thôi chứ e ko biết có làm được ko, cứ nói đại ạ.
    – Nếu không thể thì nhờ anh hướng dẫn giúp em làm sao có thể áp dụng file của anh vào file mà em gửi kèm theo. Trong đó em muốn admin có thể xem, sửa được các sheet, còn user thì chỉ xem được 2 sheet báo cáo mà thôi.

    [URL="https://www.mediafire.com/download/o6vl33w81skf4k1/QLMN.xlsm"%5DFile của em đây ạ.

    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).

    Nếu như vậy thì rất bất tiện trong việc quản lý khi dùng chung cơ sở dữ liệu giữa các user. Em nghĩ rất ít trường hợp mà cần thiết mỗi một user là một sheet cố định mà là mỗi nhóm user là một số sheet. Như vậy có vẻ hợp lý hơn. EM đóng góp bằng ý kiến chủ quan của em thôi ạ.

    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 đó.

    Ý em là, với các user ngang quyền thì có thể xem dữ liệu của nhau mà anh. Ví dụ như với một sheet dữ liệu em muốn cấp cho 3 người dùng, chẳng lẽ em lại copy sheet đó ra làm 3, rồi mỗi lần sửa dữ liệu em lại sửa trong cả 3 sheet. Anh xem trong cái file em gửi có lẽ a sẽ hiểu rõ ý em hơn ạ.

    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.

    Cho em hỏi thêm nếu em muốn khi gọi sheet nào thì chỉ sheet đó hiện lên còn các sheet khác bị ẩn hết thì em phải sửa chỗ nào ạ??

    Cái này không khó tí nào cả. Muốn ẩn là ẩn thôi.

    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 đó.

    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 ạ.

    [URL="https://www.mediafire.com/download/yaxrt8byihfsfw1/QuyenDangNhap1.xls"%5DFile của em đây, e đã đổi toàn bộ pass thành "1"
    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.

    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!

    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.

    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???
    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.

    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 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.

    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.

    Đây là phiên bản mới, tôi cũng đã sửa sub này cho bạn thành:

    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.

    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.

    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!

    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.

    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.

    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

    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 +-+-+-++-+-+-++-+-+-+

    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.

    Với ver trước đây thì có, nhưng giờ thì đã khắc phục được điều này rồi anh ạ. VÌ mỗi khi save là các sheet ẩn hết chỉ còn lại sheet home nên sheet ở máy trạm ko còn hiện lên nữa.

    Để ngăn SaveAs thì trong Module của Thisworkbook thêm vào sự kiện có sẳn:

    Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    [COLOR=#0000cd]    If SaveAsUI Then
            If InputBox("Nhap mat khau", "QUYEN SAVE AS") <> "[/COLOR][COLOR=#ff0000]WriteSomeThing[/COLOR][COLOR=#0000cd]" Then
                Cancel = True
                Exit Sub
            End If
        Else[/COLOR]
    [COLOR=#ff8c00]        ''------------------------------------------
            ''Code co san nhet vao day![/COLOR]
    [COLOR=#0000cd]    End If[/COLOR]
    End Sub

    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.

    Cái nút thêm xong chửa anh ới –=0–=0–=0–=0

    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.

    Em gà mờ mà, nhờ vả với lại vớ được cái code nào trong GPE sửa được chút chút đúng ý là phang vào chứ có biết nhiều đâu. Nhờ anh có thời gian thì sửa hộ em cho hợp lý với ạ. Em đang trong quá trình mò mẫm nên cái gì cũng khó +-+-+-++-+-+-++-+-+-++-+-+-+

    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

  2. hands says:

    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é.

Leave a Reply

Your email address will not be published. Required fields are marked *

Quảng cáo

Cũ vẫn chất

Xem thêm