Страницы: 1
RSS
Запуск макроса с подтверждением действия
 
Всем привет!
В макросах я новичёк, сам писать их пока не умею, пользуюсь рекордером   :)  . Суть в следующем - создал макрос очистки определённого диапазона и привязал к "кнопке". На сколько я понимаю отменить действие макроса невозможно, поэтому решил, что будет уместно перед выполнением очистки списка заставить программу запрашивать предупреждение действия. Нашёл (по-моему на этом сайте) пример какого-то макроса с запросом действия, примерно понимаю что к чему, но не разбираюсь на столько, что бы внедрить в код своего макроса. Прошу у вас помощи и по возможности каких-нибудь разъяснений. Спасибо.

Файл 2,2 Мб весит, форум не даёт вставить.
http://files.mail.ru/A3781E444A00443897DC138967DAC68C
 
Вот простейший макрос который очищает выделенный диапазон
Код
Sub Stiranie()
MsgBox "Вы действительно хотите удалить выделенный диапазон ?"
Selection.Delete
End Sub
 
Самир, если не хочет, то Ваш макрос все равно удалит выделение.
qwer160990, Вы шутите? Для того, чтоб показать "пример какого-то макроса с запросом действия" Вам нужен файл 2,2мб? А нарисовать файл-пример на пару строк для форума в голову не приходило?


Код
Sub Stiranie()
    If MsgBox("Вы действительно хотите очистить выделенный диапазон ?", _
              vbYesNo) = vbYes Then Selection.ClearContents
End Sub

 
Изменено: KuklP - 27.11.2013 09:40:27
Я сам - дурнее всякого примера! ...
 
Да Вы правы KukIP, об этом я не подумал. Хотел себя показать не получилось. :oops:
 
См. Ваш макрос в предыдущем посте. Все это есть в справке.
Я сам - дурнее всякого примера! ...
 
KuklP извиняюсь за неграмотность, как нужно внедрить код? Если так
Код
Sub Макрос_1_1() 

   Sub Подтверждение действия()
      If MsgBox("Вы действительно хотите очистить выделенный диапазон ?", _
      vbYesNo) = vbYes Then Selection.ClearContents
   End Sub 

    ActiveWindow.SmallScroll Down:=-12
    Range("A6:F10000").Select
    Selection.ClearContents
    ActiveWindow.SmallScroll Down:=-24
    Range("A6").Select
End Sub
, то на сколько я разбираюсь в логике очистка всё равно произойдёт.
Макрос должен очищать указанный диапазон. Ещё вопрос, что значит эта строка ActiveWindow.SmallScroll Down:=-12  ?
 
Если так как Вы намалевали, то у Вас ошибка выйдет.
Цитата
что значит эта строка ActiveWindow.SmallScroll Down:=-12 ?
Рекордер записал, как Вы скроллили лист.
Код
   Sub Подтверждение действия()
      If MsgBox("Вы действительно хотите очистить диапазон ?", _
      vbYesNo) = vbYes Then [A6:F10000].ClearContents
   End Sub 
 
Я сам - дурнее всякого примера! ...
 
KuklP, спасибо. Спустя 2 года  :D перечитывал сообщение, увидел какой я не благодарный  :)
Страницы: 1
Читают тему
Наверх