Excel özel sekme oluşturma

Erdem Akdemir

Destek Ekibi
Destek Ekibi
Katılım
4 Mayıs 2007
Mesajlar
3,597
Excel Vers. ve Dili
2016 PRO TÜRKÇE-İNG. 64 BİT
Merhaba,

Excel'de hazırladığım eklentinin içindeki makroları özel sekme olarak excel'de kalıcı hale getirmek istiyorum.
Bu işlem excel'in kendi içinden yapılıyor ama bunu kodla yapmak istiyorum.

*Muhasebe adında bir sekme oluşturacak.
*Sekmenin içinde Module1 içindeki deneme makrosu olacak.

Ayrıca başka eklentilerimde var. Dekont eklentisinin içindeki yazdır makrosu'da Muhasebe sekmesinin içine eklenecek.
 

Erdem Akdemir

Destek Ekibi
Destek Ekibi
Katılım
4 Mayıs 2007
Mesajlar
3,597
Excel Vers. ve Dili
2016 PRO TÜRKÇE-İNG. 64 BİT
Biraz yukarılara taşıyalım.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,461
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Merhaba Erdem Bey,

Bildiğim kadarıyla bu işlem için kullanılan Custom UI Editor aracı var. Bunun dışında VBA kodlarıyla bu işlem tam olarak yapılıyor mu emin değilim.

Manuel olarak yapılıyor. Fakat makro kaydet yöntemi bu adımları kaydetmiyor. Daha önce araştırdığımda bazı kodlara ulaşmıştım. Fakat sanırım bahsettiğim editörle beraber kullanılıyor.

Yine de bilgisi olan bir üyemiz paylaşırsa bizde bilgilenmiş oluruz.
 
Katılım
24 Nisan 2005
Mesajlar
3,652
Excel Vers. ve Dili
Office 2016 EN 64 Bit
Altın Üyelik Bitiş Tarihi
25/05/2022
ilk olarak bu linkteki .msi olan programını indirin.

Bu program ile örnek dosyaları yükleyip neyi nasıl yaptıklarını incelerseniz kısa sürede kendi menünüzü oluşturursunuz.

Daha sonra excel dosyanızı seçin. Yüklenen dosya üzerinde sağ tuş INSERT ile uygun eklemeyi yapın.
Oluşan CustonUI ye gerekli kodları yazdıktan sonra Dosyanız açıldığında menü oluşacaktır.

Örnek dosyaların olduğu bir site.
https://www.rondebruin.nl/win/s2/win003.htm

https://docs.microsoft.com/en-us/office/vba/library-reference/concepts/customize-the-office-fluent-ribbon-by-using-an-open-xml-formats-file

onaction da yazılı olan isim makro ismidir.

Kod:
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
   <ribbon>
     <tabs>
       <tab id="CustomTab" label="My Tab">
         <group id="SampleGroup" label="Sample Group">
             <button id="Button" label="Insert Company Name" size="large" onAction="ThisDocument.InsertCompanyName" />
         </group >
       </tab>
     </tabs>
   </ribbon>
</customUI>

218563
 
Katılım
24 Nisan 2005
Mesajlar
3,652
Excel Vers. ve Dili
Office 2016 EN 64 Bit
Altın Üyelik Bitiş Tarihi
25/05/2022
Çok komplex değil. Bir iki denemede buton ekleyip aktif edebilirsiniz.

En basit hali ile dosyanızı seçin, custonUI ekleyin üstteki şekilde.
Sonra üstünü çift tıklayın sağ tarafa yukardaki kodu yapıştırın.
"ThisDocument.InsertCompanyName" buradaki bilgiye makro adını yazıp kaydedin kapatın.

3 adımda işlemi tamamlarsınız. Zor değilde uğraştıran kısmı janjanlı menüler oluşturmak :)

Koddaki ilk satır haricindeki "" arasındaki bilgileri değiştirerek istediğiniz Menü ve buton isimlendirmelerini de yapabilirsiniz.
 

Erdem Akdemir

Destek Ekibi
Destek Ekibi
Katılım
4 Mayıs 2007
Mesajlar
3,597
Excel Vers. ve Dili
2016 PRO TÜRKÇE-İNG. 64 BİT
Ekteki çalışmayı internetten buldum. Buradan birşey çıkartılabilir.
 

Ekli dosyalar

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,461
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Erdem Bey,

Bu menü tasarımını bende yıllar önce maliyet raporlarımı yönetmek için kullanmıştım.

Bu menü tasarımı eski excel versiyonlarındaki menülere 2015 İŞLER (Yardım menüsü gibi) adında bir menü ekliyor ve onun altında da alt menüleri oluşturuyor.

Yeni Ribbon menüde ise aynı tepkiyi vermiyor. Eklentiler bölümünde bu menüyü gösteriyor.

Ribbon sekmeleri gibi eklese problem çözülecek. :)
 

Erdem Akdemir

Destek Ekibi
Destek Ekibi
Katılım
4 Mayıs 2007
Mesajlar
3,597
Excel Vers. ve Dili
2016 PRO TÜRKÇE-İNG. 64 BİT
Aslında benim istediğime yakın bir şeyler yapıyor.
Aşağıdaki gibi yapınca menüyü ekledi ve makrolarda eklenebilir ama bunlara resim falan yapmak şimdilik mümkün değil.
Nesnenin picture özelliği var ama hedef dosya gösterme gibi bir şey yok.

Kod:
Sub auto_Open()

Set aaa = Application.CommandBars(1).Controls

For Each cmb In Application.CommandBars(1).Controls
If cmb.Caption = "deneme" Then Exit Sub
Next cmb

    Dim MenuItem As Object
    Dim SubMenuItem As CommandBarButton

 
    
                Set SubMenuItem = Application.CommandBars(1).Controls.Add(Type:=msoControlButton)
                SubMenuItem.Caption = "deneme"
                SubMenuItem.OnAction = "mizan" 'çalışması istenen makro
                SubMenuItem.FaceId = 300
                SubMenuItem.BeginGroup = True
    
End Sub
 

Murat OSMA

Altın Üye
Altın Üye
Katılım
23 Mayıs 2011
Mesajlar
5,500
Excel Vers. ve Dili
Microsoft 365 TR-EN
Altın Üyelik Bitiş Tarihi
31-12-2028
Selâm @Erdem_34,

Şöyle bir örnek vereyim istersen, kendine uyarlayabilirsin.
Eklentinin içindeki makroyu da kolaylıkla çağırabilirsin.

Eklentiler menüsündeki Erdem Bey butonunu tıkladığında Erdem.xlam içindeki Erdo makrosunu çalıştırır. ????????

C#:
Sub Auto_Open()
    Dim menu1, menusec1, opt1, menu2, menu3
    Dim bar As CommandBar
    On Error Resume Next
    Set bar = Application.CommandBars.Add(Name:="barim", Position:=msoBarFloating, temporary:=True)
    Set menu1 = bar.Controls.Add(msoControlButton, , , , True)
    With menu1
        .Style = msoButtonIconAndCaption
        .Caption = "Karşılaştır"
        .OnAction = "Karsilastir"
        .FaceId = 99
    End With
   
    Set menu2 = bar.Controls.Add(msoControlButton, , , , True)
    With menu2
        .Style = msoButtonIconAndCaption
        .Caption = "Filtreli Satırları Sil"
        .OnAction = "Filtreli_Satırları_Sil"
        .FaceId = 604
    End With

   
    Set menu3 = bar.Controls.Add(msoControlButton, , , , True)
    With menu3
        .Style = msoButtonIconAndCaption
        .Caption = "Erdem Bey"
        .OnAction = "Emre"
        .FaceId = 66
    End With
   
    bar.Visible = True
End Sub

Sub Emre()
    Application.Run "Erdem.xlam!Erdo"
End Sub
 
Son düzenleme:

Erdem Akdemir

Destek Ekibi
Destek Ekibi
Katılım
4 Mayıs 2007
Mesajlar
3,597
Excel Vers. ve Dili
2016 PRO TÜRKÇE-İNG. 64 BİT
Murat bey kodları denedim. İstediklerimi karşıladı.
Teşekkürler
 
Üst