title image


Smiley Set cb=Application.Commandbars("Cell").controls.add
Hallo Chris,



Du kannst das Kontextmenü folgendermassen erweitern :





      

Sub neuesKontextmenue()

    Set cb = Application.CommandBars("Cell").Controls.Add

    With cb

        .Caption = "Hallo"

        .OnAction = "MeinMakro"

    End With

End Sub

 



Code eingefügt mit Syntaxhighlighter 3.0





Dazu muss es das Makro "MeinMakro" geben, in dem Du weitere Befehle ausführst.



Wenn Du das ganze Bereichsbezogen programmieren möchtest, solltest Du das als Ereignisprozedur in das Klassenmodul Deines Tabellenblattes hineinkopieren :





      

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)

    Application.CommandBars("Cell").Reset

    If Not Intersect(ActiveCell, Range("A1:B10")) Is Nothing Then

        neuesKontextmenue (1)

    ElseIf Not Intersect(ActiveCell, Range("C5:D20")) Is Nothing Then

        neuesKontextmenue (2)

    Else 'Für sonstige Bereiche

        neuesKontextmenue (3)

    End If

End Sub

Sub neuesKontextmenue(Bereichsnr)

    Set cb = Application.CommandBars("Cell").Controls.Add

    With cb

        Select Case Bereichsnr

        Case 1

            .Caption = "Hallo 1"

            .OnAction = "MeinMakro1"

        Case 2

            .Caption = "Hallo 2"

            .OnAction = "MeinMakro2"

        Case Else

            .Caption = "Hallo3"

            .OnAction = "MeinMakro3"

        End Select

    End With

End Sub

 



Code eingefügt mit Syntaxhighlighter 3.0





Die Bereiche kannst Du natürlich anpassen und entsprechend ergänzen.

Weitere Themen zu den Befehlen findest Du in der Onlinehilfe unter dem Stichwort "Controls".

Grüße, NoNet

  1,2,3 - kleine Excelei :   Infos + Anmeldung zum Jährlichen Exceltreffen



geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: