Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.04.2011, 08:18   #1
kaa1977
Пользователь
 
Регистрация: 13.05.2009
Сообщений: 39
По умолчанию Запуск макроса

Прошу помощи!

Проблема такая:
мой шаблон с макросом заполняет внешний источник,
он запускает excel, открывает мой шаблон, заполняет его,
а затем должен включится мой макрос.

И вот это у меня не получается.

если я использую:
Private Sub Workbook_Open()
мой_макрос()
End Sub
то в этом случае макрос начинает работать сразу по открытии шаблона, когда он ещё пустой.

если я использую:
Workbook_SheetChange работает не так как хотелось бы:
книга заполняется, но макрос начинает работать, если я сам внесу в любую ячейку изменения
(почему он не запускается при внесении изменений извне - я не понял...)


Единственное, что мне удалось, это задержка на запуск макроса:
Private Sub Workbook_Open()
Application.OnTime Now + TimeValue("00:00:05"), "мой_макрос"
End Sub


но может есть другие способы, более рациональные?!


СПАСИБО!
kaa1977 вне форума Ответить с цитированием
Старый 12.04.2011, 08:38   #2
vikttur
Участник клуба
 
Регистрация: 16.05.2010
Сообщений: 1,249
По умолчанию

Цитата:
Сообщение от kaa1977 Посмотреть сообщение
...он запускает excel, открывает мой шаблон, заполняет его...
Запускать макрос после заполнения последней ячейки шаблона.
Т.е. отследить изменение ячейки.
vikttur вне форума Ответить с цитированием
Старый 12.04.2011, 08:50   #3
kaa1977
Пользователь
 
Регистрация: 13.05.2009
Сообщений: 39
По умолчанию

Правильно ли я понимаю, что необходимо использовать

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

End Sub

???

Но как задать заполняемую область (Target)???
kaa1977 вне форума Ответить с цитированием
Старый 12.04.2011, 09:15   #4
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Цитата:
он запускает excel, открывает мой шаблон, заполняет его...
Раз Ваш внешний источник все это делает, то почему бы ему самому не запустить требуемый макрос?
Пусть, например, требуется открыть файл "Книга1.xls" и запустить имеющийся в ней макрос с именем "Macro1":
Код:
Sub Main()
    Workbooks.Open ("Книга1.xls")
    Run "Книга1.xls!Macro1"
End Sub
Естсственно, что перед запуском макроса, Вы можете сделать любые требуемые действия.
Чем шире угол зрения, тем он тупее.

Последний раз редактировалось SAS888; 12.04.2011 в 09:21.
SAS888 вне форума Ответить с цитированием
Старый 12.04.2011, 10:37   #5
kaa1977
Пользователь
 
Регистрация: 13.05.2009
Сообщений: 39
По умолчанию

Цитата:
Сообщение от SAS888 Посмотреть сообщение
Раз Ваш внешний источник все это делает, то почему бы ему самому не запустить требуемый макрос?
К сожалению, у меня такая ситуация, что внешний источник
мне не подвластен, и я работаю с тем, что сделано до меня...

Собственно, можно было бы сделать "волшебную кнопку" (данные выгружаются в мой шаблон, где есть эта кнопка, и по ней производятся вычисления), но хочется автоматизировать, сделать, чтобы по выгрузке автоматически шли рассчёты...
kaa1977 вне форума Ответить с цитированием
Старый 12.04.2011, 10:44   #6
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Попробуйте использовать событие Calculate - по этому событию анализируйте одну ячейку шаблона на определённое значение, которое будет высчитываться Вашей формулой после полного заполнения шаблона.
Например, должно получиться число 10 по заполнении 10 полей или что-нибудь такое.
Или может быть просто хватит одного Calculate - если сторонний процесс сперва пересчёт отключает, потом в конце занесения данных включает.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запуск макроса Gvaridos Microsoft Office Excel 4 22.11.2010 11:35
Запуск макроса serafim09 Microsoft Office Excel 9 03.09.2009 16:55
Запуск макроса с параметрами из другого макроса Saladin Microsoft Office Excel 2 19.01.2009 09:43
Запуск макроса с книгой Gawwws Microsoft Office Excel 2 28.10.2008 11:34
Автоматический запуск макроса Len@ Microsoft Office Excel 6 23.07.2008 12:05