powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Всплывающее меню в Excel
10 сообщений из 10, страница 1 из 1
Всплывающее меню в Excel
    #35448735
PlanB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здаравствуйте, уважаемые программисты!

Вот задачка: хочу, чтобы в файлике (его я прикрепил) при щелчке правой кнопкой мыши на ячейке A16 выскакивала менюшка, в которой была бы строчка "График". Если на ней нажать, строился бы график по всей строке "итого активы"

Возможно???
...
Рейтинг: 0 / 0
Всплывающее меню в Excel
    #35451219
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
    Dim myBar As CommandBar
    Dim myItem As CommandBarControl
    
    Set myBar = CommandBars("Query")
    If Target.Address = "$A$16" Then
        myBar.Reset
        Set myItem = myBar.Controls.Add(Type:=msoControlButton)
        With myItem
            .Caption = "CreateChart"
            .OnAction = "CreateChart"
        End With
        
    Else
        myBar.Reset
    End If
End Sub
Sub CreateChart()
    Dim rng As Range
    Set rng = ActiveCell
    Set rng = rng.Resize(, Worksheets(rng.Parent.Name).Cells(rng.Row, Columns.Count).End(xlToLeft).Column)
    If rng.Count <  2  Then Exit Sub
    Charts.Add
    ActiveChart.ChartType = xlLine
    ActiveChart.SetSourceData Source:=rng, PlotBy:=xlRows
    ActiveChart.Location Where:=xlLocationAsNewSheet
    With ActiveChart
        .HasTitle = True
        .ChartTitle.Characters.Text = rng.Cells( 1 ,  1 ).Text
        .Axes(xlCategory, xlPrimary).HasTitle = False
        .Axes(xlValue, xlPrimary).HasTitle = False
    End With
End Sub
...
Рейтинг: 0 / 0
Всплывающее меню в Excel
    #35452719
PlanB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вау, других слов у меня нет!
Но возникает вопрос: а как заблокировать все остальные кнопки и оставить только "Create Chart"?
...
Рейтинг: 0 / 0
Всплывающее меню в Excel
    #35453178
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В цикле обойти myBar.Controls и удалить все контролы.
...
Рейтинг: 0 / 0
Всплывающее меню в Excel
    #35454713
PlanB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Set myBar = CommandBars("Query")

Видимо, проблема в этой строке: она не работает в др. файлах. Видимо, менюха такая появляется, когда в книге - запрос Web.

Как называется стандартное всплывающее меню? CommandBars("Standard") - не то, а где посмотреть не знаю(((
...
Рейтинг: 0 / 0
Всплывающее меню в Excel
    #35456134
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PlanBSet myBar = CommandBars("Query")

Видимо, проблема в этой строке: она не работает в др. файлах. Видимо, менюха такая появляется, когда в книге - запрос Web.

Как называется стандартное всплывающее меню? CommandBars("Standard") - не то, а где посмотреть не знаю(((

всплывающее меню - называется "контекстное меню"
то что ты ищешь наз "cell"
...
Рейтинг: 0 / 0
Всплывающее меню в Excel
    #35456174
PlanB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Безмерно благодарен! Всё работает! А я б ещё год справку читал
...
Рейтинг: 0 / 0
Всплывающее меню в Excel
    #35470356
Рустик_Уфа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как сделать чтобы например контекстное меню появлялось не при щелчке по определенной ячейки, а, к примеру целой колонки ? т.е не "А16" а в любом месте колонки "А[x]" ?
...
Рейтинг: 0 / 0
Всплывающее меню в Excel
    #35470386
Рустик_Уфа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пока писал вопрос придумал, как реализовать, вдруг кому надо будет:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
    Dim myBar As CommandBar
    Dim myItem As CommandBarControl
    Dim tmp As String
    tmp = Target.Address
        
        Set myBar = CommandBars("Query")
    If Left(tmp,  2 ) = "$A" Then
        myBar.Reset
        Set myItem = myBar.Controls.Add(Type:=msoControlButton)
        With myItem
            .Caption = "CreateChart"
            .OnAction = "CreateChart"
        End With
        
    Else
        myBar.Reset
    End If
End Sub
...
Рейтинг: 0 / 0
Всплывающее меню в Excel
    #35470388
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
If Target.Column=1
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Всплывающее меню в Excel
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]