• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

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
 
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
 
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
 
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.
 
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.
 
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
 
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]
 
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.
 
Ben n demek istediğimi tam olarak açıklayamadım. Sayın Raiderin İfadesi demek istediğimi tam olarak anlatmaktadır.
 
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:
 
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.
 
Pardon..Yukarıdaki mesajımı iptal ediyorum.Ayrı bir eklentim buna neden oluyormuş.. :oops:
 
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:
 
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"
 
@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]
 
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.
 
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 ?
 
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ı.
 
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ş.
 
Geri
Üst