Microsoft Excel

Herbers Excel/VBA-Archiv

Dynamisches Kontextmenue

Betrifft: Dynamisches Kontextmenue von: Sven
Geschrieben am: 16.06.2008 09:57:26

Hallo zusammen,
ich habe schon ein paar Kontextnemues angepasst.

Jetzt möchte ich ein Kontextmenue erstellen das sich dynamisch mit dem Inhalt einer Liste füllt.
Es soll dazu dienen Teilnehmer in einer Tabelle einfach abrufen und eintragen zu können.

Würde mich freuen wenn mir jemand helfen könnte.

Sollten noch weitere Angaben benötigt werden, einfach melden.

Danke mal schon jetzt.

Grüße
Sven

  

Betrifft: AW: Dynamisches Kontextmenue von: Franc
Geschrieben am: 16.06.2008 12:17:39

Post mal bitte ein Beispiel, wie es in der Liste steht.


  

Betrifft: AW: Dynamisches Kontextmenue von: Sven
Geschrieben am: 16.06.2008 14:21:21

Die Idee dahinter soll sein, in einer Spalte einer Verdeckten Tabelle Namen zu haben (die auch jederzeit erweitert werden können).
Diese Spalte soll dann Dynamisch in das Kontextmenue übernommen werden.

Eine ähnliche Sache habe ich in einem Dropdown-Feld schon mal realisiert.

Nur bei dem Kontextmenue komme ich weder mit der Füll-Schleife zurecht noch mit der Ausführungsfunktion, die ja dann auch Dynamisch sein sollte.

Hoffe die Beschreibung hilft weiter, denn eine Datei Posten ist im Momet eben noch recht mager.


Grüße
Sven


  

Betrifft: AW: Dynamisches Kontextmenue von: Rudi Maintaire
Geschrieben am: 16.06.2008 15:00:04

Hallo,
eigentlich recht einfach.
Namensdefinition in Namen!A:A
In ein Modul:

Sub prcNamenMenue(Optional blnCreate As Boolean = True)
  Dim rngC As Range, cbPOP As CommandBarPopup, cbBTN As CommandBarButton
  Const strMenue As String = "Namen einfügen"
  On Error Resume Next
  CommandBars("Cell").Controls(strMenue).Delete
  On Error GoTo 0
  If blnCreate = False Then Exit Sub
  Set cbPOP = CommandBars("Cell").Controls.Add(msoControlPopup, , , 1, True)
  cbPOP.Caption = strMenue
  For Each rngC In Sheets("Namen").Columns(1).SpecialCells(xlCellTypeConstants)
    Set cbBTN = cbPOP.Controls.Add(msoControlButton, 1)
    With cbBTN
      .Caption = rngC
      .OnAction = "prcInsertName"
      .Style = msoButtonCaption
    End With
  Next
End Sub

Sub prcInsertName()
  If Not (ActiveSheet.ProtectContents And ActiveCell.Locked) Then
    ActiveCell = CommandBars.ActionControl.Caption
  End If
End Sub

Sub prcMenueEin()
  prcNamenMenue
End Sub
  
Sub prcMenueAus()
  prcNamenMenue False
End Sub

Klassenmodul Blatt Namen:

Private Sub Worksheet_Change(ByVal Target As Range)
  prcNamenMenue
End Sub


In DieseArbeitsmappe:

Private Sub Workbook_Activate()
  prcMenueEin
End Sub

Private Sub Workbook_Deactivate()
  prcMenueAus
End Sub

Gruß
Rudi


  

Betrifft: AW: Dynamisches Kontextmenue von: Sven
Geschrieben am: 16.06.2008 15:55:03

Super!
Danke für die schnelle Antwort.
Funktioniert bestens.

Grüße
Sven


 

Beiträge aus den Excel-Beispielen zum Thema "Dynamisches Kontextmenue"