Das Archiv des Excel-Forums

Dynamisches Kontextmenue

Bild

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

Bild

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.

Bild

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

Bild

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

Bild

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

 Bild

Excel-Beispiele zum Thema "Dynamisches Kontextmenue"

Dynamisches Diagramm download