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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.08.2009, 16:48   #1
serafim09
Пользователь
 
Регистрация: 28.08.2009
Сообщений: 47
Печаль Запуск макроса

Добрый день!

Во первых поиском пользовался но не нашел тем под мой вопрос:

1. Приведите пример на запуск макроса при появлении в ячейке числа/условия, но на основании результата вычисления формулы. т.е. без непосредственного внесения значения. например: А1= B1+M2, при этом выскакивало сообщение если в A1 появится значение в 2.
2. Как можно запускать макрос используя "флажок" в Excele?


Спасибо заранее!
serafim09 вне форума Ответить с цитированием
Старый 31.08.2009, 17:19   #2
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Код:
Private Sub Worksheet_Change(ByVal Target As Range)

If (Mid(Range("A1").Formula, 1, 1) = "=" And Range("A1").Value = 2) Then MsgBox ("2")

End Sub
2) Что за флажок? Просто чекбокс на листе?
Правой кнопкой - "Назначить макрос"

Код:
Sub Флажок_Щелчок()

If (ActiveSheet.CheckBoxes(1).Value = 1) Then MsgBox ("A")


End Sub

Последний раз редактировалось motorway; 31.08.2009 в 17:27.
motorway вне форума Ответить с цитированием
Старый 01.09.2009, 05:15   #3
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

1. Можно так:
Код:
Private Sub Worksheet_Calculate()
    If [A1] = 2 Then MsgBox "Сообщение"
End Sub
2. Если флажок на форме, то по нужному событию CheckBox, а если на рабочем листе, то смотря какой объект Вы использовали.
Если из панели инструментов "Формы", то см. пост выше. А если из "Элементы управления", то в модуле листа выберите требуемый CheckBox и по событию CheckBox1_Click() пропишите код Вашей процедуры. Либо, включите режим конструктора и в нужном CheckBox через правый клик выберите "Исходный текст".
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 01.09.2009, 11:04   #4
serafim09
Пользователь
 
Регистрация: 28.08.2009
Сообщений: 47
По умолчанию

Код:


Private Sub Worksheet_Change(ByVal Target As Range)

If (Mid(Range("A1").Formula, 1, 1) = "=" And Range("A1").Value = 2) Then MsgBox ("2")

End Sub

2) Что за флажок? Просто чекбокс на листе?
Правой кнопкой - "Назначить макрос"

Код:


Sub Флажок_Щелчок()

If (ActiveSheet.CheckBoxes(1).Value = 1) Then MsgBox ("A")


End Sub


Спасибо! то что нужно! получилось у меня
serafim09 вне форума Ответить с цитированием
Старый 01.09.2009, 11:05   #5
serafim09
Пользователь
 
Регистрация: 28.08.2009
Сообщений: 47
По умолчанию

Цитата:
Сообщение от SAS888 Посмотреть сообщение
1. Можно так:
Код:
Private Sub Worksheet_Calculate()
    If [A1] = 2 Then MsgBox "Сообщение"
End Sub
2. Если флажок на форме, то по нужному событию CheckBox, а если на рабочем листе, то смотря какой объект Вы использовали.
Если из панели инструментов "Формы", то см. пост выше. А если из "Элементы управления", то в модуле листа выберите требуемый CheckBox и по событию CheckBox1_Click() пропишите код Вашей процедуры. Либо, включите режим конструктора и в нужном CheckBox через правый клик выберите "Исходный текст".
Спасибо! Все отлично заработало Значит нужно было выбрать Worksheet_Calculate ...а я тупил
serafim09 вне форума Ответить с цитированием
Старый 02.09.2009, 12:19   #6
serafim09
Пользователь
 
Регистрация: 28.08.2009
Сообщений: 47
По умолчанию

кстати подскажите

Цитата:
Private Sub Worksheet_Calculate()
If Sheets("1").Range("show").Value = False Then

Application.ScreenUpdating = False

Sheets("2").Visible = Hidden

Application.ScreenUpdating = True

End If
If Sheets("1").Range("show").Value = True Then

Application.ScreenUpdating = False

Sheets("2").Visible = True

Application.ScreenUpdating = True

End If
End Sub
Такой макрос прописан в файле, однако как открываю другой файл, так макрос ругается на

Цитата:
If Sheets("1").Range("show").Value = False Then
Как привязать
Цитата:
Private Sub Worksheet_Calculate()
- к конкретному файлу?
а то я так понимаю, он начинает анализировать все файлы открывающиеся
serafim09 вне форума Ответить с цитированием
Старый 02.09.2009, 13:21   #7
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Пропишите требуемый код не в модуле листа (книги), а в общем программном модуле (макрос с каким-нибудь именем). Затем, по событию Worksheet_Calculate запускайте этот макрос, в котором должны присутствовать ссылки на требуемые книги и листы.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 02.09.2009, 15:33   #8
serafim09
Пользователь
 
Регистрация: 28.08.2009
Сообщений: 47
По умолчанию

Цитата:
Сообщение от SAS888 Посмотреть сообщение
Пропишите требуемый код не в модуле листа (книги), а в общем программном модуле (макрос с каким-нибудь именем). Затем, по событию Worksheet_Calculate запускайте этот макрос, в котором должны присутствовать ссылки на требуемые книги и листы.
Я так и сделал. но все равно ошибка.
serafim09 вне форума Ответить с цитированием
Старый 03.09.2009, 04:41   #9
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Тогда давайте пример, и подробно опишите, что нужно сделать.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 03.09.2009, 16:55   #10
serafim09
Пользователь
 
Регистрация: 28.08.2009
Сообщений: 47
По умолчанию

Цитата:
Сообщение от SAS888 Посмотреть сообщение
Тогда давайте пример, и подробно опишите, что нужно сделать.
Странно, но сегодня, не ругается макрос ) Спасибо за советы!
serafim09 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Автоматический запуск макроса АлёнаP Microsoft Office Excel 4 28.03.2010 12:55
Запуск макроса по событию tim13 Microsoft Office Excel 5 17.08.2009 13:33
Запуск макроса с параметрами из другого макроса 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