< návrat zpět
MS Excel
Téma: Seznam listů do kontextového menu
Zaslal/a CmeldaBoris 22.5.2015 15:19
Ahoj,
potřeboval bych do kontextového menu (pod pravým tlačítkem myši) přidat seznam všech listů sešitu tak, aby po kliknutí se aktivoval daný list. Zatím umím zobrazit menu i se všemi listy, ale neposlouchá mě OnAction. Nevíte někdo, jak na to? Díky.
Set MySubMenu = ContextMenu.Controls.Add(Type:=msoControlPopup, before:=8)
With MySubMenu
.Caption = "Přejít na list..."
For Each List In ThisWorkbook.Sheets
With .Controls.Add(Type:=msoControlButton)
.OnAction = "'GoToList " & List.Name & "'"
.Caption = List.Name
End With
Next List
End With
elninoslov(22.5.2015 18:25)#025096 Do modulu dajte:
Sub RightClick()
Dim WS As Worksheet, i As Integer
Dim oMenu As CommandBar, oItem As CommandBarControl
Set oMenu = CommandBars.Add("", msoBarPopup, , True)
For Each WS In Worksheets
Set oItem = oMenu.Controls.Add
oItem.Caption = WS.Name
oItem.OnAction = "'Vyber """ + WS.Name + """ '"
Next WS
oMenu.ShowPopup
End Sub
Sub Vyber(WS As String)
Worksheets(WS).Activate 'Nejaká Vaša činnosť s vybraným listom
End Sub
Do ThisWorkbook dajte toto :
Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
RightClick
Cancel = True
End Sub
Pri Pkliku na ktoromkoľvek liste Vám dá na výber zo zoznamu všetkých listov, a vykoná procedúru Vyber, v ktorej si už ošetrite ako potrebujete. Parameter WS v nej obsahuje názov zvoleného listu v kontextovom menu.
citovat
eLCHa(23.5.2015 14:12)#025107
CmeldaBoris(23.5.2015 22:28)#025122 to elninoslov: díky, funguje:-)
to eLCHa: V mé aplikaci jsou ouška listů skrytá. Kromě toho potřebuji, aby uživatelé měli vše potřebné na jednom místě a nemuseli nic hledat. Ale i tak díky, tohle jsem nevěděl.
citovat