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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.12.2011, 10:37   #1
johny_03
Форумчанин
 
Регистрация: 21.01.2011
Сообщений: 134
По умолчанию vba выводить сообщение при введении в ячейку данные

если производится попытка ввести в любую ячейку из диапазона [A8:X500] информацию, то выводить сообщение "Нажмите кнопку "Очистить""

Как это реализовать на vba? Чтобы я мог этот код привязать к другой кнопке, по нажатию которой активировалось бы вышенаписанное условие

Заранее спасибо!
johny_03 вне форума Ответить с цитированием
Старый 30.12.2011, 10:59   #2
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Пробуйте. Код в модуле листа:
Код:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
If ToggleButton1 Then
    Set Target = Intersect(Target, Range("A8:X500"))
    If Not Target Is Nothing Then
        Application.EnableEvents = False
        Application.Undo
        Application.EnableEvents = True
        MsgBox "Нажмите кнопку 'Очистить'", vbExclamation
    End If
End If
End Sub
Вложения
Тип файла: rar 182019.rar (13.3 Кб, 15 просмотров)
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 30.12.2011, 14:13   #3
johny_03
Форумчанин
 
Регистрация: 21.01.2011
Сообщений: 134
По умолчанию

Спасибо! А как мне активировать это не используя выключатель ToogleButton, а используя ClickButton? Т.е. чтобы при нажатии кнопки Старт (в примере) блокировка активировалась, а при нажатии Очистить - деактивировалась?
Спасибо!
Вложения
Тип файла: rar 182019_re.rar (15.2 Кб, 9 просмотров)
johny_03 вне форума Ответить с цитированием
Старый 30.12.2011, 14:37   #4
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Вторую строку вышеприведенной процедуры замените на
Код:
If [A1] <> "" Then
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 30.12.2011, 14:40   #5
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Можно в качестве "флажка" использовать не ячейку, а переменную. Код модуля листа:
Код:
Option Explicit

Dim flag As Boolean

Private Sub CommandButton1_Click()
flag = True
End Sub

Private Sub CommandButton2_Click()
flag = False
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
If flag Then
    Set Target = Intersect(Target, Range("A8:X500"))
    If Not Target Is Nothing Then
        Application.EnableEvents = False
        Application.Undo
        Application.EnableEvents = True
        MsgBox "Нажмите кнопку 'Очистить'", vbExclamation
    End If
End If
End Sub
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Vba. По клику выводить данные с сортировкой. Hell6661 Помощь студентам 0 27.10.2011 00:00
Новое окно при введении определенного слова в Edit 2010KOHTEP Общие вопросы Delphi 3 11.05.2011 18:37
Выводить сообщение, если в диапазон вводят не числа Ogeris Microsoft Office Excel 7 11.02.2011 14:54
Как выводить данные? Bilargo Помощь студентам 21 03.11.2009 17:45
Выводить данные по при клике на лукапкомбобокс Arkuz БД в Delphi 5 08.12.2008 21:42