butonu araç çubuklarına ekleme imkanı var mı?

Katılım
2 Ekim 2007
Mesajlar
124
Excel Vers. ve Dili
office 2003
Arkadaşlar yapmayı düşündüğüm bir program var.
"sisteme yedek al" butonunu araç çubuklarının oraya taşımak istiyorum.
Yani "araçlar" "görünüm" "veri" "pencere" "yardım" vs var ya. Onların altındaki bir buton gibi yapmak
Veya ne bileyim "kopyala", "birleştir ve ortala" , "otomatik toplam" vs gibi butonlar var ya excel in hemen üst menülerinde. Onun gibi olsun istiyorum.
Mümkün mü, yardımcı olabilir misiniz acaba?
 
Son düzenleme:
Katılım
6 Mart 2007
Mesajlar
99
Excel Vers. ve Dili
MS Office 2003 Türkçe
Makronuzu Araç çubuklarından birinin içine mi koymak istiyorsunuz, yoksa en üstteki menü listesine mi eklemek istiyorsunuz? ("Yardım" menüsünden sonra "Yedekle" menüsü gibi örneğin..)
 
Katılım
2 Ekim 2007
Mesajlar
124
Excel Vers. ve Dili
office 2003
Makronuzu Araç çubuklarından birinin içine mi koymak istiyorsunuz, yoksa en üstteki menü listesine mi eklemek istiyorsunuz? ("Yardım" menüsünden sonra "Yedekle" menüsü gibi örneğin..)
İlginiz için teşekkürler öncelilkle..
Aradığım cevabı şu linkte buldum
http://www.sevgi.us/excel/48604-makroyu-dugmeye-atama.html

Yine de teşekkürler.
Ama sormak istedigim bir şey daha var. Şimdi menü listesine ekledim ben butonumu. ancak bu bütün excel dosyalarında görünüyor. Ben sadece bu programın ait olduğu excel dosyasında istiyorum. Bunu bulamadım işte..
 
Katılım
2 Ekim 2007
Mesajlar
124
Excel Vers. ve Dili
office 2003
Şimdi menü listesine ekledim ben butonumu. ancak bu bütün excel dosyalarında görünüyor. Ben sadece bu programın ait olduğu excel dosyasında istiyorum. Bunu bulamadım işte..
Yardımcı olabilecek arkadaş yok mu acaba?
 
Katılım
17 Aralık 2007
Mesajlar
28
Excel Vers. ve Dili
2002 (10.4302.4219) SP-2
Alttaki iki fonksiyonu kendi sisteminize göre uyarlayıp eklemeniz yeterli olacaktır. (Bendeki dosyaya özel menü için)

Sub Auto_Open()
On Error Resume Next
Auto_Close
Dim Menu_Tanimi As CommandBarControl
Set Menu_Tanimi = Application.CommandBars("Worksheet Menu Bar").Controls.Add(msoControlPopup)
With Menu_Tanimi
.Caption = "Menü adı"
.BeginGroup = False
.OnAction = "Makro adı"
End With
Set Menu_Tanimi = Nothing
End Sub


Sub Auto_Close()
On Error Resume Next
Application.CommandBars("Worksheet Menu Bar").Controls("Menu_Tanimi").Delete
End Sub

Bu yöntemde, bahsettiğiniz linkteki gibi işlemi geri almanız gerekir. Zira, makro butonunu Excel'in kendi menüsünden eklerseniz, her kitapda çalışacaktır. Burada yaptığımız ise "on-the-fly", yani aslında olmayan bir menüyü koddan yaratıp, dosyayı kapatırken silmek.
 
Son düzenleme:
Katılım
2 Ekim 2007
Mesajlar
124
Excel Vers. ve Dili
office 2003
Ya bir türlü bulamıyorum araştırdım ama..
Hiç kimse benimki gibi bir sorunla karşılaşmadı mı ya?
hangi excel sayfasını açsam aynı butonlar orada da var.
 
Katılım
2 Ekim 2007
Mesajlar
124
Excel Vers. ve Dili
office 2003
Neyse vazgeçtim ondan her excel dosyasında olsun ne yapayım
Ama daha büyük bir sorun var şimdi

araç çubuğuna butonları ekledim bir sürü. Fakat başka bilgisayara kopyaladığımda hiçbiri görünmedi. Çok kötü ya. O kadar da uğraşmıştım. Hiçkimsenin başına gelmedi mi bu tür bir şey ya..
 

ockucukay

Altın Üye
Katılım
29 Aralık 2005
Mesajlar
862
Excel Vers. ve Dili
Office 365 Türkçe
Altın Üyelik Bitiş Tarihi
02-07-2025
sevgili dostum

yaptığın araç çubukları bir xla dosyasında saklanır (örneğin menu.xla) senin yapman gereken bu xla dosyasını çalışmasını istediğin bilgisayarda ilgili klasörün altına kopyalamak.

http://www.excel.web.tr/forumdisplay.php?f=115

bu linkteki çalışmaları bir inceleyin derim. ben sayın recep ipek'in çalışmasının bir benzerini yaptım ve tüm şirkette kullanıyoruz. şimdiden kolay gelsin.
 
Katılım
2 Ekim 2007
Mesajlar
124
Excel Vers. ve Dili
office 2003
Alttaki iki fonksiyonu kendi sisteminize göre uyarlayıp eklemeniz yeterli olacaktır. (Bendeki dosyaya özel menü için)

Sub Auto_Open()
On Error Resume Next
Auto_Close
Dim Menu_Tanimi As CommandBarControl
Set Menu_Tanimi = Application.CommandBars("Worksheet Menu Bar").Controls.Add(msoControlPopup)
With Menu_Tanimi
.Caption = "Menü adı"
.BeginGroup = False
.OnAction = "Makro adı"
End With
Set Menu_Tanimi = Nothing
End Sub


Sub Auto_Close()
On Error Resume Next
Application.CommandBars("Worksheet Menu Bar").Controls("Menu_Tanimi").Delete
End Sub

Bu yöntemde, bahsettiğiniz linkteki gibi işlemi geri almanız gerekir. Zira, makro butonunu Excel'in kendi menüsünden eklerseniz, her kitapda çalışacaktır. Burada yaptığımız ise "on-the-fly", yani aslında olmayan bir menüyü koddan yaratıp, dosyayı kapatırken silmek.
Ya ben dün bunu nasıl görmedim ki. Kusura bakmayın.

Ama tam anlamadım ya. Şimdi bu kodları modüle yazdıktan sonra butonu "run" a basıp makroyu çalıştırayım , ondan sonra kapatayım mı excel dosyasını.

Bir de tamamen kopyala yapıştır istemiyorum. Şimdi

Set Menu_Tanimi = Nothing

.OnAction = "Makro adı"

On Error Resume Next
Auto_Close

gibi komutlar ne iş yapıyor acaba. İşlevleri ne acaba.
 
Son düzenleme:
Katılım
17 Aralık 2007
Mesajlar
28
Excel Vers. ve Dili
2002 (10.4302.4219) SP-2
Öncelikle..
Menüye buton ekleme işini çözdüm.. :)

ThisWorkbook'a aşağıdaki kodları ekleyin
-----------
Private Sub Workbook_Open()
'ilk açılışta yüklenecek fonksiyonlar
Application.Run ("Auto_Open")
Application.Run ("Delete_Drawing_Menu")
End Sub

Modul1'e de aşağıdaki kodları yazın
---------------
Option Explicit

Public Const İsim As String = "Custom Drawing Tools"
'Tüm modüllerde yordamlar tarafından erişebilinen genel yordam tanımı

Sub Auto_Open()
On Error Resume Next 'hata ile karşılaşırken, problem çıkarma - devam et :)
Delete_Drawing_Menu 'Aynı isimle menü varsa, sil

Dim MyBar As CommandBar
Dim MyPopup As CommandBarPopup
Dim MyButton As CommandBarButton

Set MyBar = CommandBars.Add(Name:="İsim", Position:=msoBarTop, Temporary:=True)
'Menüye buton ekleyebilmek için önce bir menuStrip hazırlamak gerekir;
'butonlar da onun üzerindedir. Örneğin fontları listeyen menünün en solundaki
'küçük tırtıllı kısma mouse imlecini getirdiğinizde, mouse-move cursor görünür.
'Siz de sadece o butonu alıp taşıyamazsınız, bir menü bandını taşıyabilirsiniz.


MyBar.RowIndex = msoBarRowLast
'Ekleyeceğim menü bar, mevcut görünenleri de göz önüne aldığımda
'Nerede duracak? Ben, mevcutların en sonuna ekle dedim.


MyBar.Visible = True
'Tabi haliyle, bir de görünmesi lazım. Bu satırı yazmasanız, butonların olduğu
'üst kısımda sağ klik ile boş bir yere tıkladığınızda açılan listede sizin eklediğiniz
'bu yeni menu-bar'ın var olduğunu ama seçilmediğini görürsünüz.


With MyBar
' Grupla

Set MyButton = .Controls.Add(Type:=msoControlButton, ID:=59)
'Menu bar'a koyduğum butonun bir ikonu (simgesi, resmi) olursa
'daha şık olur.. Face ID'leri en alta yazdığım kod başka bir sayfada listeletebilirsiniz.
'ben 59 numaralı ikonu tercih ettim.. :)


With MyButton
'butonu kullanırken...
.Style = msoButtonIcon
'stil= buton için ikon olsun..
.BeginGroup = True
'menu bar içinde bir buton grubu olsun..
.OnAction = "Çalışacak Makro Adı"
'butona tıkladığımda, benim yazdığım fonksiyon çalışsın..
.Caption = "Buton üzerine mouse imlecini getirince çıkacak yazı"
'Buton üzerine mouse imlecini getirince, belirttiğim yazı çıksın..
End With
End With

End Sub
Sub Delete_Drawing_Menu()
'Mevcut kitaptan çıkarken veya ilk açılışta, eğer kazara bir şekilde takılıp açık
'kalmışsa, menu bar'ı ve dolayısıyla butonu silsin..

On Error Resume Next
'Hata mesajı çıkartacak bir durum olursa, hatayı pas geç ve devam et

CommandBars("İsim").Delete
'xxx isimli menu bar'ı sil.

On Error GoTo 0
End Sub

Sub Çalışacak Makro Adı()
'butona atamak isteyeceğiniz fonksiyonu buraya yazın.
End Sub


-------
FaceID için kod: (Ayrı bir sayfa içinde çalıştırabilirsiniz, örneği sayfa3 gibi)
--------
Sub FaceId()
Dim Menu As CommandBarControl, int1 As Integer
ActiveSheet.DrawingObjects.Delete
Set Menu = Application.CommandBars("worksheet menu bar").Controls.Add(Type:=msoControlPopup)
For int1 = 1 To 10333
With Menu.Controls.Add(Type:=msoControlButton)
.FaceId = int1
.CopyFace
ActiveSheet.Paste Destination:=Range("B" & int1)
Range("A" & int1) = "faceid:" & int1
End With
Next int1

Dim mbr As MenuBar
For Each mbr In MenuBars
mbr.Reset
Next mbr

End Sub

 
Katılım
2 Ekim 2007
Mesajlar
124
Excel Vers. ve Dili
office 2003
Öncelikle..
Menüye buton ekleme işini çözdüm.. :)

ThisWorkbook'a aşağıdaki kodları ekleyin
-----------
Private Sub Workbook_Open()
'ilk açılışta yüklenecek fonksiyonlar
Application.Run ("Auto_Open")
Application.Run ("Delete_Drawing_Menu")
End Sub

Modul1'e de aşağıdaki kodları yazın
---------------
Option Explicit

Public Const İsim As String = "Custom Drawing Tools"
'Tüm modüllerde yordamlar tarafından erişebilinen genel yordam tanımı

Sub Auto_Open()
On Error Resume Next 'hata ile karşılaşırken, problem çıkarma - devam et :)
Delete_Drawing_Menu 'Aynı isimle menü varsa, sil

Dim MyBar As CommandBar
Dim MyPopup As CommandBarPopup
Dim MyButton As CommandBarButton

Set MyBar = CommandBars.Add(Name:="İsim", Position:=msoBarTop, Temporary:=True)
'Menüye buton ekleyebilmek için önce bir menuStrip hazırlamak gerekir;
'butonlar da onun üzerindedir. Örneğin fontları listeyen menünün en solundaki
'küçük tırtıllı kısma mouse imlecini getirdiğinizde, mouse-move cursor görünür.
'Siz de sadece o butonu alıp taşıyamazsınız, bir menü bandını taşıyabilirsiniz.


MyBar.RowIndex = msoBarRowLast
'Ekleyeceğim menü bar, mevcut görünenleri de göz önüne aldığımda
'Nerede duracak? Ben, mevcutların en sonuna ekle dedim.


MyBar.Visible = True
'Tabi haliyle, bir de görünmesi lazım. Bu satırı yazmasanız, butonların olduğu
'üst kısımda sağ klik ile boş bir yere tıkladığınızda açılan listede sizin eklediğiniz
'bu yeni menu-bar'ın var olduğunu ama seçilmediğini görürsünüz.


With MyBar
' Grupla

Set MyButton = .Controls.Add(Type:=msoControlButton, ID:=59)
'Menu bar'a koyduğum butonun bir ikonu (simgesi, resmi) olursa
'daha şık olur.. Face ID'leri en alta yazdığım kod başka bir sayfada listeletebilirsiniz.
'ben 59 numaralı ikonu tercih ettim.. :)


With MyButton
'butonu kullanırken...
.Style = msoButtonIcon
'stil= buton için ikon olsun..
.BeginGroup = True
'menu bar içinde bir buton grubu olsun..
.OnAction = "Çalışacak Makro Adı"
'butona tıkladığımda, benim yazdığım fonksiyon çalışsın..
.Caption = "Buton üzerine mouse imlecini getirince çıkacak yazı"
'Buton üzerine mouse imlecini getirince, belirttiğim yazı çıksın..
End With
End With

End Sub
Sub Delete_Drawing_Menu()
'Mevcut kitaptan çıkarken veya ilk açılışta, eğer kazara bir şekilde takılıp açık
'kalmışsa, menu bar'ı ve dolayısıyla butonu silsin..

On Error Resume Next
'Hata mesajı çıkartacak bir durum olursa, hatayı pas geç ve devam et

CommandBars("İsim").Delete
'xxx isimli menu bar'ı sil.

On Error GoTo 0
End Sub

Sub Çalışacak Makro Adı()
'butona atamak isteyeceğiniz fonksiyonu buraya yazın.
End Sub


-------
FaceID için kod: (Ayrı bir sayfa içinde çalıştırabilirsiniz, örneği sayfa3 gibi)
--------
Sub FaceId()
Dim Menu As CommandBarControl, int1 As Integer
ActiveSheet.DrawingObjects.Delete
Set Menu = Application.CommandBars("worksheet menu bar").Controls.Add(Type:=msoControlPopup)
For int1 = 1 To 10333
With Menu.Controls.Add(Type:=msoControlButton)
.FaceId = int1
.CopyFace
ActiveSheet.Paste Destination:=Range("B" & int1)
Range("A" & int1) = "faceid:" & int1
End With
Next int1

Dim mbr As MenuBar
For Each mbr In MenuBars
mbr.Reset
Next mbr

End Sub

Hocam ellerine sağlık çok teşekkür ederim gerçekten.
 
Üst