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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.10.2012, 21:24   #1
ольгаг
Форумчанин
 
Регистрация: 22.02.2010
Сообщений: 325
По умолчанию Книга только для чтения

Здравствуйте Уважаемые программисты!
Подскажите пожалуйста, как исправить следующий ниже код, если книга (excel 2003) будет с атрибутом "только чтение"?

Private Sub Workbook_BeforeClose(Cancel As Boolean)

If MsgBox("Сохранить изменения в файле """ & ThisWorkbook.Name & """?", vbYesNo, "Окно сообщения") = vbNo Then: GoTo Proc_Ex

ThisWorkbook.Save
With Application
If .Workbooks.Count = 1 Then
Application.DisplayAlerts = False
.Quit
Else
Application.DisplayAlerts = False
.ThisWorkbook.Close (True)
End If
End With

Exit Sub

Proc_Ex:
ThisWorkbook.Saved = True
With Application
If .Workbooks.Count = 1 Then
Application.DisplayAlerts = False
.Quit
Else
Application.DisplayAlerts = False
.ThisWorkbook.Close (False)
End If
End With

End Sub

Т.е. у меня при закрытии этой книги (если она без атрибута "только чтение") макрос работает, но если книга с атрибутом "только чтение" - то как исправить код макроса, чтобы excel предлагал сохранить эту книгу под другим именем, например, "Копия старое имя.xls"?
Спасибо.
ольгаг вне форума Ответить с цитированием
Старый 27.10.2012, 22:15   #2
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Можно убрать "Только чтение" (если с паролем - так в инете полно программ для взлома пароля в Экселях/Вордах, там не самая сложная защита).

Если через макрос - использовать вместо Save:

Код:
ThisWorkbook.SaveAs
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 27.10.2012, 22:42   #3
ольгаг
Форумчанин
 
Регистрация: 22.02.2010
Сообщений: 325
По умолчанию

Спасибо за ответ!
Подскажите пожалуйста, может можно просто убрать кнопку "Отмена" в окне сохранения файла excel (без моего макроса)? Т.е. я бы хотела, чтобы при закрытии книги пользователь увидел окно сохранения с кнопками Да или Нет.
ольгаг вне форума Ответить с цитированием
Старый 27.10.2012, 23:00   #4
ikki_pf
Форумчанин
 
Регистрация: 25.02.2012
Сообщений: 166
По умолчанию

а чем функция кнопки "Нет" будет отличаться от функции кнопки "Отмена"?
ikki_pf вне форума Ответить с цитированием
Старый 28.10.2012, 00:17   #5
ольгаг
Форумчанин
 
Регистрация: 22.02.2010
Сообщений: 325
По умолчанию

Мне не нужна кнопка Отмена, так как при закрытии книги не должно быть возврата, а только должен быть выход из книги с сохранением или без.
ольгаг вне форума Ответить с цитированием
Старый 28.10.2012, 00:24   #6
ikki_pf
Форумчанин
 
Регистрация: 25.02.2012
Сообщений: 166
По умолчанию

тогда макрос
выводите стандартное встроенное диалоговое окно "сохранить как".
если пользователь выбрал файл (или ввел новое имя) - сохраняете и завершаете программу.
если нажал "отмена" - не сохраняете, но всё равно завершаете программу.

в чем проблема?
ikki_pf вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создать системную, невидимую, только для чтения папку Devostator Win Api 8 20.03.2012 23:23
Элемент доступен только для чтения skafiend Microsoft Office Access 2 15.05.2011 17:01
Файл доступен только для чтения A_L_E_X Microsoft Office Excel 6 28.10.2010 14:09
Qt. Как перевести QSqlTableModel в режим "только для чтения"? HIC Qt и кроссплатформенное программирование С/С++ 1 14.10.2009 06:28
Связанная таб. Excel видна только для чтения, что сделать? ig237 Microsoft Office Access 0 04.07.2009 00:14