powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Не срабатывает вызов макроса из контекстного меню.
3 сообщений из 3, страница 1 из 1
Не срабатывает вызов макроса из контекстного меню.
    #36607250
SergIS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добавил в стандартное контекстное меню Excel свое подменю.

в microsoft excel objects (Лист2(ТРАФАРЕТ))
Private Sub Worksheet_BeforeRightClick(ByVal Target As Excel.Range, Cancel As Boolean)
Run "Module1.Add_Menu", Target
End Sub

в Modules
Sub Add_Menu(ByVal Target As Excel.Range)
If checkTbl Then
If checkTbl Then
With Application.CommandBars("cell").Controls.Add(Type:=msoControlPopup, temporary:=True)
.BeginGroup = True
.Caption = "Сводной отчетности команды"
.Tag = "onSvod"
End With
Set mnuSvd = Application.CommandBars.FindControl(Type:=msoControlPopup, Tag:="onSvod")
Set mnuSvdDel = mnuSvd.Control.CommandBar
With mnuSvdDel.Controls.Add(Type:=msoControlButton, temporary:=True)
.Caption = "Строку текущую удалить"
.OnAction = BuildProcArgString("DeleteString")
.Tag = "mnuSvdDel_Str"
.FaceId = 276 '1786
End With
End If
End Sub

Sub DeleteString()
Rows(ActiveCell.Row).Delete
End Sub

не работает.
подскажите, что не так?
если в Sub DeleteString() добавить всяки MsgBox - то они выходят, но почему то два раза.
строку удалял уже всякими способами..
и :
Worksheets("ТРАФАРЕТ").Rows(numRowIns).Delete
и
Dim rw As Range
For Each rw In Worksheets(1).Cells(ActiveCell.Row, 1).CurrentRegion.Rows
rw.Delete
Next

и еще кучу вариантов.
никак не хочет удалять текущую строчку.
...
Рейтинг: 0 / 0
Не срабатывает вызов макроса из контекстного меню.
    #36607286
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ох, блин

Добавил в стандартное контекстное меню Excel свое подменю.

в microsoft excel objects (Лист2(ТРАФАРЕТ))
Код: plaintext
1.
2.
3.
Private Sub Worksheet_BeforeRightClick(ByVal Target As Excel.Range, Cancel As Boolean)
  Run "Module1.Add_Menu", Target
End Sub
в Modules
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
Sub Add_Menu(ByVal Target As Excel.Range)
  If checkTbl Then
   If checkTbl Then
     With Application.CommandBars("cell").Controls.Add(Type:=msoControlPopup, temporary:=True)
          .BeginGroup = True
          .Caption = "Сводной отчетности команды"
          .Tag = "onSvod"
     End With
     Set mnuSvd = Application.CommandBars.FindControl(Type:=msoControlPopup, Tag:="onSvod")
     Set mnuSvdDel = mnuSvd.Control.CommandBar
     With mnuSvdDel.Controls.Add(Type:=msoControlButton, temporary:=True)
          .Caption = "Строку текущую удалить"
          .OnAction = BuildProcArgString("DeleteString")
          .Tag = "mnuSvdDel_Str"
          .FaceId =  276  '1786
     End With
  End If
End Sub

Sub DeleteString()
  Rows(ActiveCell.Row).Delete
End Sub

не работает.
подскажите, что не так?
если в Sub DeleteString() добавить всяки MsgBox - то они выходят, но почему то два раза.
строку удалял уже всякими способами..
и :
Код: plaintext
Worksheets("ТРАФАРЕТ").Rows(numRowIns).Delete 
и
Код: plaintext
1.
2.
3.
Dim rw As Range
For Each rw In Worksheets( 1 ).Cells(ActiveCell.Row,  1 ).CurrentRegion.Rows
    rw.Delete
Next

и еще кучу вариантов.
никак не хочет удалять текущую строчку.
...
Рейтинг: 0 / 0
Не срабатывает вызов макроса из контекстного меню.
    #36608166
Фотография vlth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergIS, после удаления явно лишнего, всё работает:
Код: plaintext
1.
2.
Private Sub Workbook_Open()
Module1.Add_Menu
End Sub
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Sub Add_Menu()
With Application.CommandBars("cell").Controls.Add(Type:=msoControlPopup, temporary:=True)
     .BeginGroup = True
     .Caption = "Сводной отчетности команды"
     .Tag = "onSvod"
End With
Set mnuSvd = Application.CommandBars.FindControl(Type:=msoControlPopup, Tag:="onSvod")
Set mnuSvdDel = mnuSvd.Control.CommandBar
With mnuSvdDel.Controls.Add(Type:=msoControlButton, temporary:=True)
     .Caption = "Строку текущую удалить"
     .OnAction = "DeleteString"
     .Tag = "mnuSvdDel_Str"
     .FaceId =  276  '1786
End With
End Sub

Sub DeleteString()
  Rows(ActiveCell.Row).Delete
End Sub
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Не срабатывает вызов макроса из контекстного меню.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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