Option Explicit
'Biolight 2025 - Eppur Si Muove
Sub Auto_Open()
' ***** EKLENTİLER MENÜ SEKMESİNE BAKINIZ *****
Dim cmbBar As CommandBar, cmbPopup As CommandBarControl
Dim cmbSubPopup As CommandBarControl, cmbButton As CommandBarControl
Dim menuItem As Variant, subMenuItem As Variant, buttonItem As Variant
' Menü verilerini dizi ile tanımla
Dim menus As Variant
menus = Array( _
Array("MARMARA 1", Array("İSTANBUL AVP.", "EDİRNE", "TEKİRDAĞ", "KIRKLARELİ")), _
Array("MARMARA 2", Array("İSTANBUL AND.", "YALOVA", "KOCAELİ")), _
Array("MARMARA 3", Array("BURSA", "ÇANAKKALE", "BİLECİK")), _
Array("EGE 1", Array("İZMİR")), _
Array("EGE 2", Array("AYDIN", "MUĞLA")) _
)
' Worksheet Menu Bar'a referans al
Set cmbBar = Application.CommandBars("Worksheet Menu Bar")
' Önceden var olan aynı isimli menüyü kaldır
On Error Resume Next
cmbBar.Controls("SATIŞ BÖLGE").Delete
On Error GoTo 0
' Yeni bir açılır menü ekle
Set cmbPopup = cmbBar.Controls.Add(Type:=msoControlPopup, Temporary:=True)
cmbPopup.Caption = "SATIŞ BÖLGE"
' Menüleri oluştur
For Each menuItem In menus
Set cmbSubPopup = cmbPopup.Controls.Add(Type:=msoControlPopup)
cmbSubPopup.Caption = menuItem(0)
' Alt menüleri oluştur
For Each buttonItem In menuItem(1)
Set cmbButton = cmbSubPopup.Controls.Add(Type:=msoControlButton)
cmbButton.Caption = buttonItem
cmbButton.FaceId = 23
cmbButton.OnAction = "SayfaSEC"
Next buttonItem
Next menuItem
End Sub
Sub SayfaSEC()
Dim ws As Worksheet
Dim arananSayfa As String
' Menüden seçilen sayfanın adını al
arananSayfa = Application.CommandBars.ActionControl.Caption
' Tüm sayfalar içinde arama yap
For Each ws In ThisWorkbook.Sheets
If ws.Name = arananSayfa Then ' Sayfa bulunduysa
ws.Select ' Sayfa yı seç
Exit Sub ' makrodan çık
End If
Next ws
' Sayfa bulunamazsa mesaj göster
MsgBox arananSayfa & " adında bir sayfa bulunamadı!", vbExclamation, "Sayfa Bulunamadı"
End Sub