Vấn đề với menu/menu bar trong excel (2 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

hainam121991

Thành viên mới
Tham gia
1/7/15
Bài viết
7
Được thích
0
Mình làm hoài không được mong các bạn giúp đỡ. Mục đích mình muốn tạo 1 menu trên menu bar, menu này không bị mất khi mở file excel khác (Mình mới làm được menu chỉ hiện trong file excel được lưu), tương tự như 1 phần menu chức năng của excel.
Phần code nó đây mong các bạn xem giúp:
Mã:
Sub CreateMenu()Dim cmbBar As CommandBar
    Dim cmbControl As CommandBarControl
     
    Set cmbBar = Application.CommandBars("Worksheet Menu Bar")
    Set cmbControl = cmbBar.Controls.Add(Type:=msoControlPopup, temporary:=True) 'adds a menu item to the Menu Bar
    With cmbControl
        .Caption = "&My Macros" 'names the menu item
        With .Controls.Add(Type:=msoControlButton) 'adds a dropdown button to the menu item
            .Caption = "Delete character" 'adds a description to the menu item
            .OnAction = "DeleteCharacter" 'runs the specified macro
            .FaceId = 1098 'assigns an icon to the dropdown
        End With
        With .Controls.Add(Type:=msoControlButton)
            .Caption = "My Macro No 2"
            .OnAction = "RunMyMacro2"
            .FaceId = 108
        End With
    End With
End Sub
Private Sub Workbook_Open()
    Call CreateMenu
    MsgBox “A new menu (MyMenu) was created.”, vbInformation
End Sub
 Private Sub Workbook_BeforeClose(Cancel As Boolean)
    On Error Resume Next 'in case the menu item has already been deleted
    Application.CommandBars("Worksheet Menu Bar").Controls("My Macros").Delete 'delete the menu item
End Sub
Sub DeleteCharacter()
    Dim k As Integer
    For i = 1 To 8
    k = i
    If InStr(Cells(i, 2), "1") > 0 Or InStr(Cells(i, 2), "2") > 0 Or InStr(Cells(i, 2), "3") > 0 Then k = i - 1
    If InStr(Cells(i, 2), "1") > 0 Or InStr(Cells(i, 2), "2") > 0 Or InStr(Cells(i, 2), "3") > 0 Then Rows(i).Delete
    If k = 0 Then k = 1
    i = k
    Next i
End Sub

Phần chức năng mình: Xóa hàng khi tại cells đó có ký tự nằm trong giá trị của cells. mình cho lặp nhưng vẫn sót 1 giá trị, mình chưa tìm ra nguyên nhân.
 
Bạn thử xóa từ dưới lên xem,.
 
Upvote 0
Cảm ơn bạn, thế mà mình chưa nghĩ đến. Giờ thì có cách nào tạo menu cố định không bạn, có nghĩa menu chức năng này không mất khi mở file khác
có phải bạn muốn tạo menu dạng như vậy không? khi mở ra file khác thì menu vẫn còn, nếu đúng thì bạn phải tạo 1 cái addin gán vào trong excel. khi chạy thì nó sẽ hiện thanh menu đó cho bạn, tạo cái này yêu cầu bạn cần biết một ít về xml
Picture1.jpg
 
Lần chỉnh sửa cuối:
Upvote 0
To hainam121991....tham khảo code sau xem thế nào nha (Code GPE)
PHP:
Sub Create_Bar()
    Dim cBar As CommandBar, ctlBtt As CommandBarButton
    Delete_Bar
    Set cBar = Application.CommandBars.Add("Kieu Manh_Bar")
    With cBar
        .Position = msoBarTop
        .Visible = True
        Set ctlBtt = .Controls.Add(msoControlButton)
    End With
    With ctlBtt
        .Caption = "Search for files and folders"
        .Style = msoButtonIconAndCaption
        .OnAction = "Main"
        .FaceId = 46
    End With
End Sub
Sub Delete_Bar()
    On Error Resume Next
    Application.CommandBars("Kieu Manh_Bar").Delete
End Sub
Sub Main()
    MsgBox "OK"
End Sub
 
Upvote 0
To hainam121991....tham khảo code sau xem thế nào nha (Code GPE)
PHP:
Sub Create_Bar()
    Dim cBar As CommandBar, ctlBtt As CommandBarButton
    Delete_Bar
    Set cBar = Application.CommandBars.Add("Kieu Manh_Bar")
    With cBar
        .Position = msoBarTop
        .Visible = True
        Set ctlBtt = .Controls.Add(msoControlButton)
    End With
    With ctlBtt
        .Caption = "Search for files and folders"
        .Style = msoButtonIconAndCaption
        .OnAction = "Main"
        .FaceId = 46
    End With
End Sub
Sub Delete_Bar()
    On Error Resume Next
    Application.CommandBars("Kieu Manh_Bar").Delete
End Sub
Sub Main()
    MsgBox "OK"
End Sub

Thấy code.. quen ghê! --=0
 
Upvote 0
có phải bạn muốn tạo menu dạng như vậy không? khi mở ra file khác thì menu vẫn còn, nếu đúng thì bạn phải tạo 1 cái addin gán vào trong excel. khi chạy thì nó sẽ hiện thanh menu đó cho bạn, tạo cái này yêu cầu bạn cần biết một ít về xml
View attachment 143268
Cảm ơn bạn, mình vừa cho show menu được rồi
 
Upvote 0
--=0--=0--=0 Code của Anh mà...Em chế lại một Tẹo...

Cảm ơn bạn, mình cho hiện menu được rồi =). Nhưng giờ nếu nhấn vào nút chức năng thì nó báo:
"the macro may not be available in this workbook or all macros may be disabled" nên phần chức năng mình chưa hoạt động được. Mong được các bạn giúp
 
Upvote 0
Cảm ơn bạn, mình cho hiện menu được rồi =). Nhưng giờ nếu nhấn vào nút chức năng thì nó báo:
"the macro may not be available in this workbook or all macros may be disabled" nên phần chức năng mình chưa hoạt động được. Mong được các bạn giúp
Úp File lên mình coi cho nói suông vậy không biết ngứa ở đâu mà gải.....có chăng bói giống thầy bói xem voi vậy... hên thì trúng
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom