Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Закрытие Excel через UserForm - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Закрытие Excel через UserForm (Макросы/Sub)
Закрытие Excel через UserForm
Starbirst Дата: Среда, 10.01.2018, 10:54 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 55
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003
Добрый день! Ребята, помогите, пожалуйста, доработать макрос. При закрытии книги срабатывает UserForm. При сохранении книги программа не закрывается, остается пустое окно. Как выйти из Excel?
К сообщению приложен файл: 2210409.xlsm(22.1 Kb)


Сообщение отредактировал Starbirst - Среда, 10.01.2018, 10:55
 
Ответить
СообщениеДобрый день! Ребята, помогите, пожалуйста, доработать макрос. При закрытии книги срабатывает UserForm. При сохранении книги программа не закрывается, остается пустое окно. Как выйти из Excel?

Автор - Starbirst
Дата добавления - 10.01.2018 в 10:54
sboy Дата: Среда, 10.01.2018, 11:08 | Сообщение № 2
Группа: Проверенные
Ранг: Старожил
Сообщений: 1696
Репутация: 482 ±
Замечаний: 0% ±

Excel 2010
Добрый день.
Как выйти из Excel?

[vba]
Код
Application.Quit
[/vba]
 
Ответить
СообщениеДобрый день.
Как выйти из Excel?

[vba]
Код
Application.Quit
[/vba]

Автор - sboy
Дата добавления - 10.01.2018 в 11:08
Starbirst Дата: Среда, 10.01.2018, 12:35 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 55
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003
Пробовал добавить в книгу, не срабатывает...
 
Ответить
СообщениеПробовал добавить в книгу, не срабатывает...

Автор - Starbirst
Дата добавления - 10.01.2018 в 12:35
sboy Дата: Среда, 10.01.2018, 13:07 | Сообщение № 4
Группа: Проверенные
Ранг: Старожил
Сообщений: 1696
Репутация: 482 ±
Замечаний: 0% ±

Excel 2010
Хм, не совсем понял к чему там публичная переменная NoEvents
чуть подправил код, чтоб показать как оно должно работать
К сообщению приложен файл: 2294261.xlsm(22.8 Kb)
 
Ответить
СообщениеХм, не совсем понял к чему там публичная переменная NoEvents
чуть подправил код, чтоб показать как оно должно работать

Автор - sboy
Дата добавления - 10.01.2018 в 13:07
Starbirst Дата: Среда, 10.01.2018, 14:21 | Сообщение № 5
Группа: Пользователи
Ранг: Участник
Сообщений: 55
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003
Спасибо! А программу как можно выгрузить?
 
Ответить
СообщениеСпасибо! А программу как можно выгрузить?

Автор - Starbirst
Дата добавления - 10.01.2018 в 14:21
sboy Дата: Среда, 10.01.2018, 14:36 | Сообщение № 6
Группа: Проверенные
Ранг: Старожил
Сообщений: 1696
Репутация: 482 ±
Замечаний: 0% ±

Excel 2010
Какую и куда?
 
Ответить
СообщениеКакую и куда?

Автор - sboy
Дата добавления - 10.01.2018 в 14:36
Starbirst Дата: Среда, 10.01.2018, 14:42 | Сообщение № 7
Группа: Пользователи
Ранг: Участник
Сообщений: 55
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003
При нажатии кнопок "ДА" или "НЕТ" программа не выгружается.
 
Ответить
СообщениеПри нажатии кнопок "ДА" или "НЕТ" программа не выгружается.

Автор - Starbirst
Дата добавления - 10.01.2018 в 14:42
sboy Дата: Среда, 10.01.2018, 14:49 | Сообщение № 8
Группа: Проверенные
Ранг: Старожил
Сообщений: 1696
Репутация: 482 ±
Замечаний: 0% ±

Excel 2010
Мне понятней не стало)
программа - это excel?
не выгружается куда? что в вашем понимании "выгружать"?
 
Ответить
СообщениеМне понятней не стало)
программа - это excel?
не выгружается куда? что в вашем понимании "выгружать"?

Автор - sboy
Дата добавления - 10.01.2018 в 14:49
Starbirst Дата: Среда, 10.01.2018, 14:59 | Сообщение № 9
Группа: Пользователи
Ранг: Участник
Сообщений: 55
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003
В стандартном диалоговом окне нажатие кнопок "ДА" или "НЕТ" закрывает Excel полностью, а с UserForm почему-то такой трюк не работает
 
Ответить
СообщениеВ стандартном диалоговом окне нажатие кнопок "ДА" или "НЕТ" закрывает Excel полностью, а с UserForm почему-то такой трюк не работает

Автор - Starbirst
Дата добавления - 10.01.2018 в 14:59
and_evg Дата: Среда, 10.01.2018, 15:01 | Сообщение № 10
Группа: Проверенные
Ранг: Обитатель
Сообщений: 286
Репутация: 49 ±
Замечаний: 0% ±

Excel 2007
Starbirst, наверно хотите полностью эксель закрыть?
тогда уберите совсем вот это:
[vba]
Код
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    'If NoEvents Then Exit Sub
        'Cancel = Not CanClose
    Выход.Show
    Cancel = Not CanClose
End Sub
[/vba]

упс нет. Вы кажется именно это и хотите обработать - событие закрытия файла... тогда не так.
просто уберите строку:
[vba]
Код
Cancel = Not CanClose
[/vba]


Сообщение отредактировал and_evg - Среда, 10.01.2018, 15:14
 
Ответить
СообщениеStarbirst, наверно хотите полностью эксель закрыть?
тогда уберите совсем вот это:
[vba]
Код
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    'If NoEvents Then Exit Sub
        'Cancel = Not CanClose
    Выход.Show
    Cancel = Not CanClose
End Sub
[/vba]

упс нет. Вы кажется именно это и хотите обработать - событие закрытия файла... тогда не так.
просто уберите строку:
[vba]
Код
Cancel = Not CanClose
[/vba]

Автор - and_evg
Дата добавления - 10.01.2018 в 15:01
Mikael Дата: Среда, 10.01.2018, 17:11 | Сообщение № 11
Группа: Пользователи
Ранг: Участник
Сообщений: 67
Репутация: 24 ±
Замечаний: 0% ±

Excel 2010
Всем доброго времени!

Я бы вообще все по-другому реализовал.


В таком варианте отпадает необходимость в глобальных переменных в модуле1.
Попробуйте.


Сообщение отредактировал Mikael - Среда, 10.01.2018, 17:52
 
Ответить
СообщениеВсем доброго времени!

Я бы вообще все по-другому реализовал.


В таком варианте отпадает необходимость в глобальных переменных в модуле1.
Попробуйте.

Автор - Mikael
Дата добавления - 10.01.2018 в 17:11
Mikael Дата: Среда, 10.01.2018, 17:43 | Сообщение № 12
Группа: Пользователи
Ранг: Участник
Сообщений: 67
Репутация: 24 ±
Замечаний: 0% ±

Excel 2010
Я бы вообще все по-другому реализовал.

Небольшое пояснение: в обработчик события _BeforeClose должен заключается код, который выполняется непосредственно перед выходом из книги. Пользователь уже нажал выйти и excel уже закрывает книгу, поэтому закрывать ее из формы еще раз нет никакого смысла, даже больше - такой код еще раз вызывает событие _BeforeClose, и Вам приходится придумывать "костыли" в виде глобальных переменных.

Надеюсь смог помочь немного разобраться :)
 
Ответить
Сообщение
Я бы вообще все по-другому реализовал.

Небольшое пояснение: в обработчик события _BeforeClose должен заключается код, который выполняется непосредственно перед выходом из книги. Пользователь уже нажал выйти и excel уже закрывает книгу, поэтому закрывать ее из формы еще раз нет никакого смысла, даже больше - такой код еще раз вызывает событие _BeforeClose, и Вам приходится придумывать "костыли" в виде глобальных переменных.

Надеюсь смог помочь немного разобраться :)

Автор - Mikael
Дата добавления - 10.01.2018 в 17:43
Mikael Дата: Среда, 10.01.2018, 19:08 | Сообщение № 13
Группа: Пользователи
Ранг: Участник
Сообщений: 67
Репутация: 24 ±
Замечаний: 0% ±

Excel 2010
Я тут немного подумал и укоротил код :)


Хотя первый вариант мне тоже нравится - он наглядный и легко читаемый.


Сообщение отредактировал Mikael - Среда, 10.01.2018, 19:14
 
Ответить
СообщениеЯ тут немного подумал и укоротил код :)


Хотя первый вариант мне тоже нравится - он наглядный и легко читаемый.

Автор - Mikael
Дата добавления - 10.01.2018 в 19:08
Starbirst Дата: Среда, 10.01.2018, 20:51 | Сообщение № 14
Группа: Пользователи
Ранг: Участник
Сообщений: 55
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003
Ребята! Гениально!!! specool Огромная благодарность! clap


Сообщение отредактировал Starbirst - Среда, 10.01.2018, 21:15
 
Ответить
СообщениеРебята! Гениально!!! specool Огромная благодарность! clap

Автор - Starbirst
Дата добавления - 10.01.2018 в 20:51
Starbirst Дата: Четверг, 11.01.2018, 07:32 | Сообщение № 15
Группа: Пользователи
Ранг: Участник
Сообщений: 55
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003
Mikael, спасибо большущее :-) Сможете усовершенствовать код таким образом, чтобы диалоговое окно UserForm не открывалось при закрытии Excel, если в книге не были произведены изменения?
 
Ответить
СообщениеMikael, спасибо большущее :-) Сможете усовершенствовать код таким образом, чтобы диалоговое окно UserForm не открывалось при закрытии Excel, если в книге не были произведены изменения?

Автор - Starbirst
Дата добавления - 11.01.2018 в 07:32
and_evg Дата: Четверг, 11.01.2018, 07:41 | Сообщение № 16
Группа: Проверенные
Ранг: Обитатель
Сообщений: 286
Репутация: 49 ±
Замечаний: 0% ±

Excel 2007
Starbirst, [vba]
Код
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    If Not (ThisWorkbook.Saved) Then
        With Выход
            .Show
            If .bCancelClose Then Cancel = 1
        End With
        
        Unload Выход
    End If
End Sub
[/vba]
 
Ответить
СообщениеStarbirst, [vba]
Код
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    If Not (ThisWorkbook.Saved) Then
        With Выход
            .Show
            If .bCancelClose Then Cancel = 1
        End With
        
        Unload Выход
    End If
End Sub
[/vba]

Автор - and_evg
Дата добавления - 11.01.2018 в 07:41
Starbirst Дата: Четверг, 11.01.2018, 08:07 | Сообщение № 17
Группа: Пользователи
Ранг: Участник
Сообщений: 55
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003
Огромная благодарность! :)
 
Ответить
СообщениеОгромная благодарность! :)

Автор - Starbirst
Дата добавления - 11.01.2018 в 08:07
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Закрытие Excel через UserForm (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс цитирования
© 2010-2018 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!