powered by simpleCommunicator - 2.0.36     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VBA События динамического листа
7 сообщений из 7, страница 1 из 1
VBA События динамического листа
    #39787437
Nedr100000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток!
Братья по несчастью, подскажите кто может!
Есть книга Excel в которой динамически макросом создаю лист с произвольным именем, как мне на этом листе отследить пересчет формул или изменение значения в какой либо из ячеек ???? все понятно для уже созданного листа с известным именем, а как отследить на множестве листов которые создаются по нажатию кнопки и пользователь на них производит манипуляции ??? Заранее благодарен!
...
Рейтинг: 0 / 0
VBA События динамического листа
    #39787440
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гугли WithEvents
Переменная листа и обработчики ее событий объявляются заранее, а потом лист присваивается этой переменной
...
Рейтинг: 0 / 0
VBA События динамического листа
    #39787675
Казанский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Nedr100000,
в модуле ЭтаКнига (ThisWorkbook)
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
Private Sub Workbook_SheetCalculate(ByVal Sh As Object)

End Sub

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

End Sub
...
Рейтинг: 0 / 0
VBA События динамического листа
    #39787691
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Казанский, а, точно, забыл про это.
Но вроде так можно отловить не все события листа?
...
Рейтинг: 0 / 0
VBA События динамического листа
    #39787700
iMrTidy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nedr100000,

При создании нового листа, ссылку на него можно помещать в переменную с подключенными событиями, а затем указать метод для нужного события. Вот пример, поместить код нужно в ThisWorkbook:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Option Explicit

Dim WithEvents ws As Worksheet

Sub AddSheet()

Set ws = ThisWorkbook.Sheets.Add

End Sub

Private Sub ws_Calculate()

MsgBox ws.Name & " is calculated."

End Sub
...
Рейтинг: 0 / 0
VBA События динамического листа
    #39787705
iMrTidy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Казанский,

Если я правильно понял, то автор не знает какой лист из множества.
...
Рейтинг: 0 / 0
VBA События динамического листа
    #39787830
Казанский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.ProНо вроде так можно отловить не все события листа?Вроде все

WorksheetWorkbookActivateWorkbook_SheetActivateBeforeDoubleClickWorkbook_SheetBeforeDoubleClickBeforeRightClickWorkbook_SheetBeforeRightClickCalculateWorkbook_SheetCalculateChangeWorkbook_SheetChangeDeactivateWorkbook_SheetDeactivateFollowHyperlinkWorkbook_SheetFollowHyperlinkPivotTableAfterValueChangeWorkbook_SheetPivotTableAfterValueChangePivotTableBeforeAllocateChangesWorkbook_SheetPivotTableBeforeAllocateChangesPivotTableBeforeCommitChangesWorkbook_SheetPivotTableBeforeCommitChangesPivotTableBeforeDiscardChangesWorkbook_SheetPivotTableBeforeDiscardChangesPivotTableChangeSyncWorkbook_SheetPivotTableChangeSyncPivotTableUpdateWorkbook_SheetPivotTableUpdateSelectionChangeWorkbook_SheetSelectionChange
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VBA События динамического листа
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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