Tạo Menu Sheet bằng Form VBA Quản Lý Và Tự Động Cập Nhật Sheet Mới Trong Excel

Trong quá trình làm việc với File Excel, có những File rất nhiều Sheet, làm bạn mất thời gian mỗi lúc tìm kiếm, bạn loay hoay tìm cách làm sao có một danh sách hay một Sheet riêng để tạo Menu co dễ quản lý, nhưng khi phát sinh phát sinh sheet mới thì sao nhỉ? lại mất công tạo thêm nút bấm hoặc tạo thêm liên kết vào Menu

Form Menu Sheet bằng Form VBA
Để khắc phục những điều phiền toái bạn đang gặp, xin hướng dẫn các bạn một cách rất đơn giản mà rất hiệu quả, tự động cập nhật khi Sheet mới được tạo hoặc xóa sheet, chúng ta sẽ tạo ra một Form VBA đơn giản như sau nhé
Đầu tiên giả sử bạn có một Workbook khoảng 30 sheet hoặc nhiều hơn hoặc ít hơn, không quan tâm nhé
B1. Mở cửa sổ soạn thảo Code (VBE)
        
Mở cửa sổ VBE bằng cách ALT+F11 hoặc Deverloper->VisulBasic hoặc ViewCode, bạn có thể tham khảo In Phiếu Lương Hàng Loạt hoặc VBA Căn Bản Bài 01


B2. Tạo UserForm mới có tên quản lý sheet
        
Tại cửa sổ VBA Project, nhấp chuột phải và chọn Insert UserForm, sau đó các bạn làm tiếp theo như sau:
       Tạo Form
      Sau khi vẽ xong, các bạn tiến hành đặt tên tại ô "Name" ở mục 7, và tên tại ô Caption ở
mục TextBox sẽ có Name = txtTenHH, ListBox sẽ có Name = lstSheets, CommandButton có Name=cmdShowSheet và Caption= SHOW ALL SHEET


B3. Viết code cho TextBox, ListBox, CommandButton
     
   Code cho TextBox(txtTenHH)
             Private Sub txtTenHH_Change()
                    If txtTenHH <> "" Then
                       cmdShowSheet_Click
                       For k = ListBox1.ListCount - 1 To 0 Step -1
                           If Not UCase(ListBox1.List(k)) Like "*" & UCase(txtTenHH) & "*" Then
                              ListBox1.RemoveItem (k)
                           End If
                       Next
                    ElseIf txtTenHH = "" Then
                           cmdShowSheet_Click
                    End If
            End Sub
        -------------------------------
        Code cho ListBox(lstSheets)
            Private Sub lstSheets_Click()
                    Sheets(frmShowSheet.lstSheets.Value).Select
                    frmShowSheet.txtTenHH.SetFocus
            End Sub
        --------------------------------
        Code cho CommandButton(cmdShowSheet)
            Private Sub cmdShowSheet_Click()
                    Dim Sh As Worksheet
                    For Each Sh In Sheets
                        frmShowSheet.lstSheets.AddItem Sh.Name
                    Next
                    Dim i As Long, j As Long
                    With lstSheets
                         For i = 0 To .ListCount - 1
                             For j = .ListCount - 1 To (i + 1) Step -1
                                 If .List(j) = .List(i) Then
                                    .RemoveItem j
                                     frmShowSheet.txtTenHH.SetFocus
                                 End If
                             Next j
                         Next i
                    End With
            End Sub


B4.Tạo một Moule mới để tạo một Sub mới có tên Menu
      
Chèn một Module mới, trong Module tạo, viết một Sub để gọi Form ra ngoài với code sau:
           Sub MenuSheet()
                     Call frmShowSheet.Show(0)
           End Sub


B5. Tạo nút bấm để show Form ra
        Ra sheet bất kỳ, vẽ một nút Shapes, nhấp chuột phải vào Shapes, chọn AsignMacro, chọn Macro có tên MenuSheet, sau đó nhấn OK
    Tạo nút bấm
 

B6. Sử dụng
       Bạn nhấp chuột vào nút SHOW ALL SHEET để hiển thị tất cả các sheet, bây giờ bạn thử tạo một sheet mới hoặc xóa sheet nào đó, và bấm lại nút SHOW ALL SHEET để xem nó cập nhật không nhé để đi đến Sheet bất kỳ, bạn chọn sheet bất kỳ trong ô ListBox, hoặc gõ từ khóa bất kỳ lên ô TextBox để cảm nhận nhé    Form VBA tọ Menu Sheet
    Taooj Form VBA Menu Sheet 

Các bạn quan tâm môn Lập Trình VBA có thể tham khảo thêm tại bài này "Lập Trình VBA Từ Căn Bản Đến Nâng Cao", bài tiếp theo mình sẽ hướng dẫn các bạn tùy biến MenuRibbon
Tùy biến Menu Ribbon trong Excel

CHO ĐIỂM BÀI VIẾT NÀY

vote data
TOP