Alt menü oluşturmak

Katılım
14 Nisan 2013
Mesajlar
764
Excel Vers. ve Dili
Office Excel 2016 TR
Home & Business
Altın Üyelik Bitiş Tarihi
30.12.2018
Merhabalar,

Sayın Korhan hocamızdan almış olduğum kodlar sayesinde çok güzel bir sağ tuş menüsü oluşturdum.

Birde ilaveler yapmak istiyorum, kendimce biraz kurcaladım ama oluşturamadım.

Aşağıdaki menüde alt sekmeler oluşturmak için hangi kodları ilave etmemiz gerekecektir. Yardımlarınızı bekliyorum.
http://prntscr.com/3zb4tj

Internet Pivot sekmesinin altına 2-3 sekme daha açmak istiyorum

Kod:
Option Explicit

Dim Sag_Klik_Menu As CommandBar
Dim Ana_Menu As CommandBarPopup
Dim Alt_Menu As CommandBarButton
Dim X As Byte

Sub Auto_Open()
    Set Sag_Klik_Menu = Application.CommandBars("Cell")

    On Error Resume Next
    Sag_Klik_Menu.Controls("Özel Menü").Delete
    On Error GoTo 0
    
    Set Ana_Menu = Sag_Klik_Menu.Controls.Add(msoControlPopup, , , , True)

    With Ana_Menu
        .Caption = "Özel Menü"
        .BeginGroup = True
    End With
    
    For X = 1 To 4
        Set Alt_Menu = Ana_Menu.Controls.Add(msoControlButton, 1, X, , True)
        Alt_Menu.FaceId = 1763
        
        With Alt_Menu
            Select Case X
            Case 1
                .Caption = "Internet Pivot"
                .OnAction = "Makro_A"
            Case 2
                .Caption = "Mağaza Pivot"
                .OnAction = "Makro_B"
            Case 3
                .Caption = "C"
                .OnAction = "Makro_C"
            Case 4
                .Caption = "D"
                .OnAction = "Makro_D"
            End Select
        End With
    Next
        
    Set Sag_Klik_Menu = Nothing
    Set Ana_Menu = Nothing
    Set Alt_Menu = Nothing
End Sub

Sub Auto_Close()
    On Error Resume Next
    Sag_Klik_Menu.Controls("Özel Menü").Delete
    On Error GoTo 0
End Sub
Son olarak bu özel menüyü en üste taşımak için ne yapmamız gerekiyor
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,160
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Aşağıdaki kodu deneyiniz.

"Popup" ifadeleri biten satırlar açılır menüyü ifade etmektedir.
"Button" ifadeleri içeren satırlar ise tıklanabilir seçenekleri ifade etmektedir.

Kod:
Option Explicit

Dim Sag_Klik_Menu As CommandBar
Dim Ana_Menu As CommandBarPopup
Dim Alt_Menu_1 As CommandBarPopup
Dim Alt_Menu_2 As CommandBarButton
Dim Alt_Menu_3 As CommandBarButton

Dim Alt_Menu_Detay_1 As CommandBarButton
Dim Alt_Menu_Detay_2 As CommandBarButton
Dim Alt_Menu_Detay_3 As CommandBarButton

Sub Auto_Open()
    Set Sag_Klik_Menu = Application.CommandBars("Cell")

    On Error Resume Next
    Sag_Klik_Menu.Controls("Özel Menü").Delete
    On Error GoTo 0
    
    Set Ana_Menu = Sag_Klik_Menu.Controls.Add(msoControlPopup, , , 1, True)

    With Ana_Menu
        .Caption = "Özel Menü"
        .BeginGroup = True
    End With
    
    Set Alt_Menu_1 = Ana_Menu.Controls.Add(msoControlPopup, 1, , 1, True)
    Alt_Menu_1.Caption = "Internet Pivot"
    
        Set Alt_Menu_Detay_1 = Alt_Menu_1.Controls.Add(msoControlButton)
        With Alt_Menu_Detay_1
            .Caption = "Internet Pivot 1"
            .FaceId = 1763
            .OnAction = "Makro_A"
        End With
        
        Set Alt_Menu_Detay_2 = Alt_Menu_1.Controls.Add(msoControlButton)
        With Alt_Menu_Detay_2
            .Caption = "Internet Pivot 2"
            .FaceId = 1763
            .OnAction = "Makro_B"
        End With
        
        Set Alt_Menu_Detay_3 = Alt_Menu_1.Controls.Add(msoControlButton)
        With Alt_Menu_Detay_3
            .Caption = "Internet Pivot 3"
            .FaceId = 1763
            .OnAction = "Makro_C"
        End With
    
    
    Set Alt_Menu_2 = Ana_Menu.Controls.Add(msoControlButton, 1, , 2, True)
    With Alt_Menu_2
        .Caption = "Mağaza Pivot"
        .FaceId = 1763
        .OnAction = "Makro_D"
    End With
    
    Set Alt_Menu_3 = Ana_Menu.Controls.Add(msoControlButton, 1, , 3, True)
    With Alt_Menu_3
        .Caption = "Özel Raporlar"
        .FaceId = 1763
        .OnAction = "Makro_E"
    End With
    
    Set Ana_Menu = Nothing
    Set Alt_Menu_1 = Nothing
    Set Alt_Menu_2 = Nothing
    Set Alt_Menu_3 = Nothing
    
    Set Alt_Menu_Detay_1 = Nothing
    Set Alt_Menu_Detay_2 = Nothing
    Set Alt_Menu_Detay_3 = Nothing
End Sub

Sub Auto_Close()
    On Error Resume Next
    Sag_Klik_Menu.Controls("Özel Menü").Delete
    On Error GoTo 0
End Sub
 
Katılım
14 Nisan 2013
Mesajlar
764
Excel Vers. ve Dili
Office Excel 2016 TR
Home & Business
Altın Üyelik Bitiş Tarihi
30.12.2018
Herşey tam istediğim gibi olmuş

Ne yazacağımı bilemedim çok teşekkürler çok çok teşekkürler :)
 
Üst