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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.09.2009, 12:44   #1
robotov
Пользователь
 
Регистрация: 17.06.2009
Сообщений: 14
По умолчанию Макрос по OptionButton

Попробовал сам - не получается
Поможете?
Возсожно, это совсем просто - но я не знаю - как это сделать, с какой стороны подступиться...

Есть файл, который при закрытии записывает себя в другую директорию.
Хочу установить (на "sheet2" ) радионопки, которые бы говорили файлу- записывать себя или нет.

Последовательность действий.
1.Открываем файл.
2.Работаем с ним.
3. ЗАкрываем
3.1 Если Радиокнопка установлена на "ДА" то отрабатывают макросы, которые работали без кнопки. (Они записаны на ThisWorkbook)
3.2 Если Радиокнопка установлена на "НЕТ" -то файл просто закрывается (не спрашивая перезаписать себя или нет).

И еще одна кнопка - Сброс. При нажатии на нее файл как-бы переоткрывается. То есть отрабатывают макросы при закрытии (как будто Радиокнопка установлена на - "ДА" ), а затем отрабатывают макросы, которые работают при открытии файла.

Файл прилагается.
Заранее спасибо)
Вложения
Тип файла: rar skidki_test.rar (44.0 Кб, 20 просмотров)
robotov вне форума Ответить с цитированием
Старый 22.09.2009, 15:18   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
То есть отрабатывают макросы при закрытии (как будто Радиокнопка установлена на - "ДА" ), а затем отрабатывают макросы, которые работают при открытии файла
Так не получится.
При закрытии книги сработает макрос DelAll, который удалит весь код VBA из файла.
После этого уже никакие макросы не отработают, ибо их уже нет.

Цитата:
3.1 Если Радиокнопка установлена на "ДА" то отрабатывают макросы, которые работали без кнопки. (Они записаны на ThisWorkbook)
3.2 Если Радиокнопка установлена на "НЕТ" -то файл просто закрывается (не спрашивая перезаписать себя или нет).
Попробуйте что-то вроде этого:
Код:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    If Sheet2.OptionButton1 Then    ' Запись = ДА
        DelAll
        ThisWorkbook.SaveAs "C:\Documents and Settings\ev\My Documents\Zakazi\Z_" & Sheets("Sheet2").Cells(1, 4) & ".xls"
        Application.Quit
    Else    ' Запись = НЕТ
        ThisWorkbook.Saved = True
        ThisWorkbook.Close False    ' закрываем без сохранения
    End If
End Sub

Последний раз редактировалось EducatedFool; 22.09.2009 в 15:23.
EducatedFool вне форума Ответить с цитированием
Старый 22.09.2009, 15:55   #3
robotov
Пользователь
 
Регистрация: 17.06.2009
Сообщений: 14
По умолчанию

О. Спасибо. Меня подвел синтаксис.
Я пробовал так, только вместо "If Sheet2.OptionButton1 Then... " писал просто "If OptionButton1 Then". Не учел Sheet.

Насчет первого вопроса.
При закрытии очищаются макросы нового файла а не этого. Этот просто закрывается. Происходит как бы переоткрытие файла. Можно ли штатными средствами переоткрыть файл, чтобы excel об этом не спрашивал?. Типа при нажатии кнопки "сброс" файл закрывается и снова открывается, но не спрашивает "переоткрыть?"
robotov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Макрос постоянно обрабатывает события. При открытии другой книги макрос обрывается. Ples Microsoft Office Excel 8 17.12.2016 18:15
макрос для optionbutton ruavia3 Microsoft Office Excel 23 19.05.2009 13:20
Optionbutton(ы) на MultiPage ruavia3 Microsoft Office Excel 2 30.04.2009 14:26
OptionButton Волк Microsoft Office Excel 3 09.04.2009 09:53
макрос Demonmov Microsoft Office Excel 19 29.01.2009 16:19