menü yok etme

Katılım
22 Nisan 2005
Mesajlar
245
arkadaşlar excel çalışöma sayfasının üstünde her zaman çıkan dosya düzen vs menüleri olam araç çıbuğunu kaldırmanın bir yolu varmı. ben kendi menümü oluşturup o menüyü kullanmak istiyorum ama onu bir türlü kaldıramadım. sadace 1 çalışmam şçin lazım. normalde yerinde olsun ama çalışmamı açtiğimda kaybolsun
 
Katılım
2 Mart 2005
Mesajlar
556
Excel Vers. ve Dili
Office 2013 Türkçe
Merhaba,
Bu bir yol;

MenuBars(xlWorksheet).Menus("Ekle").Delete

kodu ile tek tek menülerin isimlerini yazıp silebilir ya da

a = MenuBars(xlWorksheet).Menus.Count
For i = 1 To a
MenuBars(xlWorksheet).Menus(1).Delete
Next

ile silebilir

ardından da aşağıdaki kodlarla Bordro diye bir menü yapabilirsiniz:


Dim AnaMenü As CommandBarControl, AnaAltMenü As CommandBarControl


Set AnaMenü = Application.CommandBars(1).Controls.Add(msoControlPopup, , , , True)
With AnaMenü
.Caption = "&Bordro"
.Tag = "MyTag"
.BeginGroup = False
End With
If AnaMenü Is Nothing Then Exit Sub
 
Katılım
8 Haziran 2005
Mesajlar
114
Sayın Bedersu;

Kodlarınız oldukça faydalı ve güzel, ancak

a = MenuBars(xlWorksheet).Menus.Count
For i = 1 To a
MenuBars(xlWorksheet).Menus(1).Delete
Next

burda döngü kullanmasanız daha iyi olur çünkü komutunuz sadece 1 indeksine sahip menüyü siliyor. Silmek yerine görünürlük = false komutu dah yararlı olacaktır. Silinen menünün resetlenmesi gerekir.

Kodlarınızı deneyenlerin bir sonraki adımda soruları şu olacaktır. Dosya - Düzen şeklinde bir menüm vardı onu nasıl geri getirebilirim 2 - 3 - 4 gibi kodları deneyenler tüm menüilerini sileceklerdir.

Onlara erilebilecek cevap.:

Kod:
Sub Gorunum_Arac_Cubuklari_Reset()
  Dim Cmbr As CommandBar
  For Each Cmbr In Application.CommandBars
    On Error Resume Next
    Cmbr.Reset
  Next Cmbr
End Sub
Diğer arkadaşın sorusunun cevabı ise

Kod:
Sub Kapat()
  Application.CommandBars(1).Enabled = False
End Sub

Sub Aç()
  Application.CommandBars(1).Enabled = True
End Sub
 
Katılım
2 Mart 2005
Mesajlar
556
Excel Vers. ve Dili
Office 2013 Türkçe
Sayın VisualBasic,

Sayın recep,çalışmamı açtığımda menüler kaybolsun demiş,pasif olsun felan dememiş.Bu yüzden bütün menüleri kaybedip sadece kendi adlandırdığı menüyü bırakacak.Yazmış olduğum kodlarda Menus(1) dememdeki sebep,silinen her menüden sonra en baştaki menünün 1. menü sayılmasındandır.Silinen menülerin resetlenmesi için de sadece;

sub auto_close
MenuBars(xlWorksheet).reset
end sub

yeterli.
 
Katılım
8 Haziran 2005
Mesajlar
114
Ben kodlarınız yanlış demedim. Yalnız değişken kullanılmayan bir işlemde döngü işe yaramaz bunu belirtmek istedim.

kodunuz:
a = MenuBars(xlWorksheet).Menus.Count
For i = 1 To a
MenuBars(xlWorksheet).Menus(1).Delete
Next

Menünün resetlenmesi anlamında onlarca kod sunulabilir. Sizinkide, benimkide bu seçenklerden biri, çalışmalarınızda başarılar diliyorum.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Pardon, olayı karıştırmak istemiyorum ama eğer izin verirseniz;

bedersu' Alıntı:
.......
Yazmış olduğum kodlarda Menus(1) dememdeki sebep,silinen her menüden sonra en baştaki menünün 1. menü sayılmasındandır.
Bu nedenle, Sn. bedersu' nun önerisindeki döngü, doğru olarak çalışıyor.

Belki ufacık bir değişiklik daha yararlı olabilir;

Kod:
a = MenuBars(xlWorksheet).Menus.Count
For i = a To 1 Step -1
MenuBars(xlWorksheet).Menus(1).Delete
Next
 
Katılım
7 Temmuz 2004
Mesajlar
1,141
Ben kodlarınız yanlış demedim. Yalnız değişken kullanılmayan bir işlemde döngü işe yaramaz bunu belirtmek istedim.
Döngünün değişkenini kullanmak her zaman zorunlu değildir. Eğer döngünün adımlarında döngüye bağlı olmayan bir değer değişiyorsa (ki burada MenuBars(xlWorksheet).Menus'un 1. elemanı oluyor) , pekala bu değerde kullanılabilir.

@Raider,

Hoca, farkı anlayamadım.

[vb:1:0a957ba215]a = MenuBars(xlWorksheet).Menus.Count
For i = a To 1 Step -1
MenuBars(xlWorksheet).Menus(1).Delete
Next [/vb:1:0a957ba215]

[vb:1:0a957ba215]a = MenuBars(xlWorksheet).Menus.Count
For i = 1 To a
MenuBars(xlWorksheet).Menus(1).Delete
Next[/vb:1:0a957ba215]
 
Katılım
2 Mart 2005
Mesajlar
556
Excel Vers. ve Dili
Office 2013 Türkçe
Sayın Raider,

Step aklıma gelmemişti.Cuk oturdu ; ammmaaaaaa

MenuBars(xlWorksheet).Menus(i).Delete :lol:

Anladınız mı şimdi sayın Alpen? :) Ufak bir hata.
 
Katılım
8 Haziran 2005
Mesajlar
114
Ben n demek istediğimi tam olarak açıklayamadım. Sayın Raiderin İfadesi demek istediğimi tam olarak anlatmaktadır.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
ALPEN' Alıntı:
Hoca, farkı anlayamadım

hehe...

O şekilde bir fark yok tabii :mrgreen:

Yukarıda Sn. bedersu' nun yaptığı gibi yaptıktan sonra deneme yaparken, yanlış versiyonu post etmişim :mrgreen:

1 --- i farkı yani :oops:
 

htsumer

Altın Üye
Altın Üye
Katılım
7 Eylül 2004
Mesajlar
946
Excel Vers. ve Dili
Excel-2003
Altın Üyelik Bitiş Tarihi
16.08.2026
Sayın bedersu,
Çalışma Kitabından resimde de görüleceği üzere Kırmızı ile işaretli kısımdan çıkış yaptığımda aynı resimde görülen hatayı alıyorum.
Auto_Close'deki resetlemeye ait kodlar bu hatadan sonra çalışıyor.Diğer çıkıştan (Mavi halka ile işaretli) çıktığımda sorun yok.
 

htsumer

Altın Üye
Altın Üye
Katılım
7 Eylül 2004
Mesajlar
946
Excel Vers. ve Dili
Excel-2003
Altın Üyelik Bitiş Tarihi
16.08.2026
Pardon..Yukarıdaki mesajımı iptal ediyorum.Ayrı bir eklentim buna neden oluyormuş.. :oops:
 
Katılım
22 Nisan 2005
Mesajlar
245
ssayın bedersu
iki ayrı soru sormuştum ikisininde ayrı ayrı cevabınızı aldın
ama bir sorunla karşılaştım
dasya düzen gibi memülerle birlikte yeni memümde kayboldu.
sizdeb bir excel çalışma kitabında bu kodları birleştşrmenizi istesem çok şey mi istemiş olurum. isteğim şu

dosya dışındaki tüm menüler kaybolup yerını sizin düger soruma vermiş oduğunuz cevaptaki kodun devreye girmesi ve yıl sonu ders kaydı vc menülerin oluşması..

kitap açıkken böyle olsun fakat başka çalışmalarda hersey standart şekline dönsün

:dua:
 
Katılım
2 Mart 2005
Mesajlar
556
Excel Vers. ve Dili
Office 2013 Türkçe
sayın recep,

Ekteki dosyayı bir inceleyin.Menu.xls kitabını açtığınızda sadece Bordro diye bir menu göreceksiniz.Bu kitabı kapatırken Menüler resetlenecek ve diğer kitaplarda normal menüler olacak;fakat aynı anda hem menu.xls hem de başka bir kitap açarsanız bu dediğiniz olmaz.Bir inceleyin.Sorularınızı bekliyorum.
Çalıştırmak istediğiniz makroları aşağıdaki gibi düzeltin.


.OnAction = "Sizin Makronuzun İsmi"
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
@bedersu,

Aşağıdakileri de ThisWorkbook modulüne eklerseniz, kitap değiştiğinde menü de resetlenir.

[vb:1:5c002ed667]Private Sub Workbook_Activate()
Call Auto_Open
End Sub

Private Sub Workbook_Deactivate()
MenuBars(xlWorksheet).Reset
End Sub
[/vb:1:5c002ed667]
 
Katılım
2 Mart 2005
Mesajlar
556
Excel Vers. ve Dili
Office 2013 Türkçe
sayın Raider,

Benim vermiş olduğum kodlarda da zaten bu işlem oluyor.Yani menu.xls kapatılırken resetleme olayı gerçekleşiyor.Fakat menu.xls kitabında,standart araç çubuğundan yeni bir kitap açtığımızda ,o kitapta da sadece Bordro menüsü oluyor.Ta ki Menu.xls kapatılana kadar.Bunu engellemenin yolu var mı?Yani yeni açılan kitap full kadro açılabilir mi?

Bu olay,Başlat-Programlar-Office'ten yeni bir kitap açıldığında olmuyor.Yani Araç çubuğu normal haliyle açılıyor.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Ben yukarıdaki kodları da ekledikten sonra, başka bir kitap açtım ve açılan yeni kitapta, Excel'in standart menü çubuğu oluştu.

O sırada, tekrar sizin kodlarınızın olduğu kitabı aktive ettim ve bu sefer de, sizin özelleştirilmiş menü çubuğunuz oluştu.

Tekrar, diğer kitaba geçince menü çubuğu yine standart haline geldi.

Amaç bu değilmiydi, yoksa ben mi bir şey kaçırdım ?
 

fox

Katılım
23 Mart 2005
Mesajlar
29
VisualBasic' Alıntı:
Kodlarınızı deneyenlerin bir sonraki adımda soruları şu olacaktır. Dosya - Düzen şeklinde bir menüm vardı onu nasıl geri getirebilirim
evet malesef ben soruyorum :kafa: :D :D

Onlara Verilebilecek cevap.:


Kod:
Sub Gorunum_Arac_Cubuklari_Reset()
  Dim Cmbr As CommandBar
  For Each Cmbr In Application.CommandBars
    On Error Resume Next
    Cmbr.Reset
  Next Cmbr
End Sub
verdiğiniz kodlar çözüm olmadı.
 
Katılım
2 Mart 2005
Mesajlar
556
Excel Vers. ve Dili
Office 2013 Türkçe
sayın Raider;

Tamamen haklısınız.Oluyor.Ben;

Private Sub Workbook_Activate()
Call Auto_Open
End Sub

yazmadan yapmıştım.Þimdi oldu.Benim de kullanmayı düşünüp de yapamadığım bir şeydi.Halbuki ne kadar basitmiş.
 
Üst