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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.08.2009, 11:09   #1
tim13
Новичок
Джуниор
 
Регистрация: 17.08.2009
Сообщений: 2
По умолчанию Запуск макроса по событию

Подскажите по проще как запустить макрос по значению в ячейке (А1=1)?
tim13 вне форума Ответить с цитированием
Старый 17.08.2009, 12:02   #2
nemoomen
Пользователь
 
Регистрация: 26.02.2009
Сообщений: 58
По умолчанию

Код разместить в модуле листа.

Код:
Private Sub Worksheet_Change(ByVal Target As Range)
   
     If Target.Address = "$A$1" Then
     If IsEmpty(Target) Then Exit Sub
        IF Range("A1") = 1 THEN 
	CALL "Название запускаемого макроса" 'или сам код
     End If     
       
End Sub
Можно в коде заменить(и добавить) и ячейку и условие.
nemoomen вне форума Ответить с цитированием
Старый 17.08.2009, 12:42   #3
tim13
Новичок
Джуниор
 
Регистрация: 17.08.2009
Сообщений: 2
Хорошо

Цитата:
Сообщение от nemoomen Посмотреть сообщение
Код разместить в модуле листа.

Код:
Private Sub Worksheet_Change(ByVal Target As Range)
   
     If Target.Address = "$A$1" Then
     If IsEmpty(Target) Then Exit Sub
        IF Range("A1") = 1 THEN 
	CALL "Название запускаемого макроса" 'или сам код
     End If     
       
End Sub
Можно в коде заменить(и добавить) и ячейку и условие.
Большое спасибо. Забыли End If еще раз прописать.
А если два условия когда А1=1 или А1=2?
Да и еще ответьте новичку что означают эти строчки
If Target.Address = "$A$1" Then
If IsEmpty(Target) Then Exit Sub
tim13 вне форума Ответить с цитированием
Старый 17.08.2009, 13:02   #4
nemoomen
Пользователь
 
Регистрация: 26.02.2009
Сообщений: 58
По умолчанию

Я не совсем уверен, что это обозначает
посмотри здесь http://programmersforum.ru/showthread.php?t=41590
Главное, что работает.

Вторая (и много других) проверка делается так:
Код:
Private Sub Worksheet_Change(ByVal Target As Range)
   
     If Target.Address = "$A$1" Then
     If IsEmpty(Target) Then Exit Sub
        IF Range("A1") = УСЛОВИЕ THEN 
	CALL "Название запускаемого макроса" 'или сам код
     End If

     If Target.Address = "$В$1" Then
     If IsEmpty(Target) Then Exit Sub
        IF Range("B1") = УСЛОВИЕ THEN 
	CALL "Название запускаемого макроса" 'или сам код
     End If 
       
End Sub
И так далее.....

Кстати, еще END IF не нужно! Код у меня работает именно в таком виде
nemoomen вне форума Ответить с цитированием
Старый 17.08.2009, 13:31   #5
The_Prist
Участник клуба
 
Аватар для The_Prist
 
Регистрация: 17.07.2009
Сообщений: 1,088
По умолчанию

Цитата:
Сообщение от tim13 Посмотреть сообщение
что означают эти строчки
If Target.Address = "$A$1" Then
If IsEmpty(Target) Then Exit Sub
Код:
If Target.Address = "$A$1" Then
Условие будет выполняться, только если выделена ячейка А1.
Код:
If IsEmpty(Target) Then Exit Sub
Если ячейка пуста, то выполнение процедуры прекратится. Завершение процедуры внутри кода(до ключевой End Sub), выполняется посредством Exit Sub
WebMoney - R298726502453; Яндекс.Деньги - 41001332272872
www.excel-vba.ru
The_Prist вне форума Ответить с цитированием
Старый 17.08.2009, 13:33   #6
The_Prist
Участник клуба
 
Аватар для The_Prist
 
Регистрация: 17.07.2009
Сообщений: 1,088
По умолчанию

Цитата:
Сообщение от tim13 Посмотреть сообщение
А если два условия когда А1=1 или А1=2?
Код:
Private Sub Worksheet_Change(ByVal Target As Range)
     If Target.Address <> "$A$1" Then Exit Sub
     If Target = 1 or Target = 2 Then CALL "Название запускаемого макроса" 'или сам код      
End Sub
WebMoney - R298726502453; Яндекс.Деньги - 41001332272872
www.excel-vba.ru
The_Prist вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Автоматический запуск макроса АлёнаP Microsoft Office Excel 4 28.03.2010 12:55
Запуск макроса в Excel из программы на C# AnnNet Общие вопросы .NET 1 05.06.2009 16:23
Запуск макроса с параметрами из другого макроса 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