Tạo biểu mẫu đăng nhập trong Excel

Thảo luận trong 'Excel và VBA' bắt đầu bởi augialong, 3/5/08.

  1. augialong

    augialong New Member Hội viên mới

    Được cảm ơn:
    0
    Điểm thành tích:
    0
    Để bảo vệ một tập tin Excel, bạn có thể chọn Tools > Protection > Protect Workbook. Nếu bạn muốn thiết kế một form riêng để làm chuyện này thì cũng được. Ví dụ sau đây minh họa cách tạo một form trên Excel. Việc kiểm tra 3 lần gõ mật khẩu thì bạn làm tương tự.

    Trước tiên, bạn tạo một workbook mới trên Excel, đặt lại tên Sheet1Du Lieu (rồi gõ vào Sheet1 dữ liệu tùy ý để sau này kiểm tra), Sheet3Login. Vì sheet đầu tiên bao giờ cũng có dữ liệu, bạn không nên cho nó active (mặc định mỗi lần mở workbook), nếu không như thế sẽ mất đi tính bảo mật. Còn sheet Login nên là một sheet chẳng có dữ liệu gì cả, form kiểm tra mật khẩu sẽ được hiển thị trên sheet này.

    Nhấn phím Alt+F11 hoặc chọn Tools > Macro > Visual Basic Editor để mở cửa sổ VBA của Excel. Cách soạn thảo VBA trong Excel tương tự như trong Access. Trong cửa sổ VBA, chọn Insert > UserForm để tạo một form mới. Bạn sử dụng các công cụ trên Toolbox để thiết kế form như hình 1. Đặt tên form là frmLogin, tên nút lệnh OK là cmdOK, tên nút lệnh Cancel là cmdCancel, rồi gõ đoạn mã 1 vào (bấm kép lên form để mở cửa sổ soạn thảo, hoặc bấm-phải chuột vào tên form trong cửa sổ Project – VBAProject).
    Quay về Excel, chọn Tools > Macro > Macros. Trên hộp thoại Macro, gõ tên Auto_Open vào ô Macro name, bấm Create để mở cửa sổ VBA và gõ đoạn mã sau đây:

    Sub Auto_Open()
    frmLogin.Show
    End Sub


    Auto_Open là một macro tự động chạy mỗi lần workbook được mở. Đoạn mã trên hiển thị form frmLogin mỗi lần workbook được mở.
    Để các macro có thể tự động chạy, bạn phải hạ mức security xuống Medium hoặc Low: quay về Excel, chọn Tools > Macro > Security để mở hộp thoại Security, trong thẻ Security Level chọn Medium (người sử dụng sẽ quyết định macro được chạy hay không) hoặc Low, bấm OK. Bạn đóng workbook rồi mở lại để kiểm tra.

    [​IMG]
    Đoạn mã 1

    Const sMatKhau = "gialong"
    Private Sub cmdCancel_Click()
    MsgBox "Rat tiec vi ban khong chung minh duoc minh co quyen mo workbook nay!"
    ActiveWorkbook.Close
    End Sub
    Private Sub cmdOK_Click()
    With TextBox1
    If .Text = sMatKhau Then
    ActiveWorkbook.Sheets("Du Lieu").Activate
    Unload Me
    Exit Sub
    End If
    MsgBox "Mat khau khong dung!"
    .SetFocus
    End With
    End Sub
    Private Sub UserForm_Initialize()
    ActiveWorkbook.Sheets("Login").Activate
    With TextBox1
    .Text = ""
    .PasswordChar = "*"
    End With
    End Sub

    Save lại file Exel, thoát khỏi môi trường làm việc Exel và mở lại file vừa tạo để xem kết quả
     

Chia sẻ trang này