Context menu makroyu nasil yeni workbook'la birlestirebilirim?

Katılım
21 Mart 2011
Mesajlar
43
Excel Vers. ve Dili
Excel 2003 Ingilizce

Merhaba Excel.web.tr Forumu,


Bulunan dosyadaki eski koda yeni kodu eklemek istiyorum.
Bu yeni kod sag fare tusu (context menu) icindir.
Bunu nasil yapabilirim?
Malesef VBA'dan fazla anlamiyorum.
Kullandigim Version: Excel 2003; Ingilizce.
Önerileriniz icin simdiden tesekkürler ederim.
Cözümünüzü Excel Dosyasi olarak Foruma ekleyebilirseniz, buna cok sevinirim.

Saygilarimla iyi günler diliyorum.


Workbook'daki Kodlar:

Kod:
Option Explicit

' Navigationsmenü Tabellen
Private Sub Workbook_BeforeClose(Cancel As Boolean)
  On Error Resume Next
  Application.CommandBars("Tabellen").Delete
  MenüLöschen
  On Error GoTo 0
End Sub
' Ende Navigationsmenü Tabellen

Private Sub Workbook_Open()
Dim Tabelle As Worksheet

 Sheets("LISTE").Select
' ActiveSheet.ListBox1.Clear
 For Each Tabelle In ThisWorkbook.Worksheets
'  If Tabelle.Visible = True Then ActiveSheet.ListBox1.AddItem Tabelle.Name
 Next Tabelle
 NeuesMenüEinfügen
  Call Menü_einfügen
    On Error Resume Next
    Load UserForm1
End Sub

Public Sub Beenden()
    Unload UserForm1
End Sub


' Kontextmenü für Tabellenverzeichnis


Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
Dim cCont As CommandBarButton
    On Error Resume Next
    Application.CommandBars("Cell").Controls("Tabellenverzeichnis").Delete
    On Error GoTo 0
        Set cCont = Application.CommandBars("Cell").Controls.Add(Type:=msoControlButton, Temporary:=True)
        cCont.Caption = "Tabellenverzeichnis"
        cCont.OnAction = "IndexCode"
End Sub

' Ende Kontextmenü für Tabellenverzeichnis


Yeni Module:


Kod:
Option Explicit                             ' Variablendefinition erforderlich
'**************************************************
'* H. Ziplies                                     *
'* 17.08.2003                                     *
'* erstellt von HajoZiplies@web.de                *
'* http://Hajo-Excel.de/                          *
'**************************************************
Sub KontextmenueErgaenzen()
    ' Konrextmenü ansprechen
    With CommandBars("Cell").Controls.Add(Type:=msoControlPopup)
        .BeginGroup = True              'Trennlinie
        ' Fehlerbehandlung ausschalten
        'On Error GoTo 0
        .Caption = "Hajo &Ziplies"          ' Beschriftung Hauptpunkt
        ' erster Menüpunkt
        With .Controls.Add                  ' Untermenü erzeugen
            .FaceId = 330                   ' Icon 1. Untermenü
            .Caption = "&Ausblenden"        ' Beschriftung 1. Untermenü
            .OnAction = "Ausblenden"        ' Makro 1. untermenü
        End With
        ' Zweiter Menüpunkt
        With .Controls.Add                  ' Untermenü erzeugen
            .FaceId = 2105
            .Caption = "&Einblenden"
            .OnAction = "Einblenden"
        End With
        '*********************************************************
        ' Untermenü erzeugen:
        ' dritter Menüpunkt mit Untermenü
        With .Controls.Add(Type:=msoControlPopup)
            .BeginGroup = True 'Trennlinie
            .Caption = "&Hajo Spezial :--)"
            With .Controls.Add
                .FaceId = 330
                .Caption = "&Untermenü1"
                .OnAction = "Untermenue1"
            End With
            With .Controls.Add
                .FaceId = 2105
                .Caption = "&Untermenü2"
                .OnAction = "Untermenue2"
            End With
        End With
        '*********************************************
        ' wieder normal weiter:
        ' vierter menüpunkt
        With .Controls.Add
            .FaceId = 330
            .Caption = "&Hoch"
            .OnAction = "Hoch"
        End With
        ' Fehlerbehandlung einschalten
        'On Error GoTo 0
    End With
End Sub

Sub KontextmenueZuruecksetzen()
    ' Fehlerbehandlung ausscahlten
    On Error Resume Next
    Application.CommandBars("Cell").Controls("Hajo &Ziplies").Delete
    ' Fehlerbehandlung einschalten
    On Error GoTo 0
End Sub

Sub Einblenden()
    MsgBox "Einblenden"
End Sub

Sub Ausblenden()
    MsgBox "Ausblenden"
End Sub

Sub Hoch()
    MsgBox "Hoch"
End Sub

Sub untermenue1()
    MsgBox "Untermenüe1"
End Sub

Sub untermenue2()
    MsgBox "Untermenüe2"
End Sub


Yeni Workbook'daki Kodlar:

Kod:
Option Explicit                             ' Variablendefinition erforderlich
'**************************************************
'* H. Ziplies                                     *
'* 17.08.2003                                     *
'* erstellt von Hajo.Ziplies@web.de               *
'* http://Hajo-Excel.de/                          *
'**************************************************
Dim BoMenue As Boolean

Private Sub Workbook_Activate()
    If BoMenue = False Then KontextmenueErgaenzen
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    KontextmenueZuruecksetzen
End Sub

Private Sub Workbook_Deactivate()
    BoMenue = False
    KontextmenueZuruecksetzen
End Sub

Private Sub Workbook_Open()
    KontextmenueErgaenzen
    BoMenue = True
End Sub
 
Son düzenleme:
Katılım
21 Mart 2011
Mesajlar
43
Excel Vers. ve Dili
Excel 2003 Ingilizce
Aceba sorunumu anlatamadimmi :?:
 
Üst