POP UP MENÜ (LÜTFEN ÇALIŞTIRMAYINIZ !)

Katılım
24 Mayıs 2005
Mesajlar
462
Excel Vers. ve Dili
Excel 2003 Türkçe
Herkese selamlar, arkadaşlar aşağıdaki kodları MODÜL`e kopyaladım ve çalışma sayfasında herhangi bir hücreye sağ klik yapınca çıkan sayfa isimlerine geçiş yapılabiliyor. Buraya kadar sorun yok.

Ancak, başka bir excel çalışma sayfası açtığımda gördüm ki aynı işlemi yapıyor. Nedenini anlamış değilim. Sanki VİRÜS GİBİ BİRŞEY. Bir türlü yok edemedim. Bu nasıl oluyor. :kafa: :kafa:

Bu nedenle bu kodları lütfen KULLANMAYINIZ !

Bu konuda bilgisi olan arkadaşlar yardımcı olursanız sevinirim. :dua: Saygılarımla

Sub Auto_Open()
PopUpMenu
End Sub

Sub PopUpMenu()
Dim cb As CommandBar, i As Integer
On Error Resume Next
Set cb = Application.CommandBars("Cell")
For i = cb.Controls.Count To 0 Step -1
cb.Controls(i).Delete
Next
With cb
For i = 1 To Sheets.Count
With .Controls.Add(Type:=msoControlButton)
.OnAction = "SayfaGoster"
.FaceId = 7
.Caption = Sheets(i).Name
End With
Next
End With
Set cb = Nothing
End Sub

Sub SayfaGoster()
Dim ac As CommandBarButton
Set ac = Application.CommandBars.ActionControl
Sheets(ac.Caption).Select
Set ac = Nothing
End Sub

Sub Auto_Close()
Application.CommandBars("Cell").Reset
End Sub
 

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
Merhaba,

Panik yapacak bir durum yok ... :mrgreen:

Yukarıdaki kodlarla siz, çalışma kitabına değil.... Excel uygulamasının kendisine bazı emirler veriyorsunuz. Uygulama da, doğal olarak kendisine verilen görevleri yerine getiriyor.

Şimdi, eğer siz bu kodların sadece yazıldığı dosyada çalışmasını istiyorsanız o zaman kodların yazıldığı dosyanın ThisWorkbook modülüne aşağıdakileri de yapıştırın.

Böylece, başka bir dosyada o kodlar çalışmaz.

Kod:
Private Sub Workbook_WindowActivate(ByVal Wn As Window)
    PopUpMenu
End Sub
'
Private Sub Workbook_WindowDeactivate(ByVal Wn As Window)
    Application.CommandBars("Cell").Reset
End Sub
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Kodlarda bir sorun yok gayet iyi çalışıyor. Nedeni gayet açık yaptığınız işlem application nesnesi yani Excelin kendisi üzerinedir. Dolayısıyla aynı Excel programı üzerinden açılan tüm dosyalarda geçerli olacaktır. Eğer siz sadece bir çalışma kitabında aktif olmasını isterseniz thisworkbook sayfasına aşağıdaki kodları kopyalayın.

[vb:1:0bf4d54981]Private Sub Workbook_Activate()
PopUpMenu
End Sub

Private Sub Workbook_Deactivate()
Application.CommandBars("Cell").Reset
End Sub
[/vb:1:0bf4d54981]

Not:Haluk hocam ben yazarken siz mesajı göndermişiniz, fark edemedim. Aynı şeyleri tekrar etmişiz.
 
Katılım
24 Mayıs 2005
Mesajlar
462
Excel Vers. ve Dili
Excel 2003 Türkçe
Sayın Haluk ve Sayın Leventm, bir an panik yaptım. Verdiğiniz güzel bilgilerden dolayı çok teşekkür ederim. Sayenizde bir şey daha öğrendim. :eek:k::

Saygılarımla. :mutlu:
 
Üst