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

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


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

 
Изменено: KuklP - 27.11.2013 09:40:27
Я сам - дурнее всякого примера! ...
 
Да Вы правы KukIP, об этом я не подумал. Хотел себя показать не получилось. :oops:
Power Query, Power Pivot, Power BI и MS Excel спасут мир
 
См. Ваш макрос в предыдущем посте. Все это есть в справке.
Я сам - дурнее всякого примера! ...
 
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
Наверх