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

Вход

Регистрация

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

 

= Мир MS Excel/Отменить сохранение файла через диалоговое окно. - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Отменить сохранение файла через диалоговое окно. (Макросы/Sub)
Отменить сохранение файла через диалоговое окно.
Tunka-s Дата: Четверг, 28.02.2019, 18:01 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 124
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Здравствуйте. Опять нужна помощь.

Если пользователь пытается сохранить файл с пустыми полями, выходит предупреждение (форма) - Заполните все обязательные поля. Пользователь может заполнить поля сразу - для этого, он должен нажать кнопку "ОК" и вернуться к редактированию файла без сохранения, или он может сделать это позже. Для этого он должен выбрать кнопку - Сделаю это позже и файл должен сохраниться.

Что-то уже сделано, но 1. В случе с "Сделаю это позже", Форма выскакивает второй раз и только потом сохраняется файл
2. В случае с "ОК" я не знаю как заставить файл не сохраняться.

Помогите пожалуйста.

[vba]
Код
Private Sub Workbook_BeforeSave(ByVal SaveAsUi As Boolean, Cancel As Boolean)

Call Module7.highlight

Call Module8.War_Mes

End Sub
[/vba]

[vba]
Код
Sub War_Mes()

Dim rCell As Range, A As Integer

Set xyzRange = Range("J5:J400")

For Each rCell In xyzRange

If rCell.Interior.ColorIndex = 22 Then

A = 1

End If

Next

If A = 1 Then

UserForm2.Show

End If

End Sub
[/vba]

[vba]
Код
Private Sub CommandButton1_Click()

Unload Me
ActiveWorkbook.Save

End Sub

Private Sub CommandButton2_Click()

Dim Cancel As Boolean

*Тут надо что-то написать, чтобы не сохраняло?*

Unload Me

End Sub

Private Sub UserForm_Click()

End Sub
[/vba]
К сообщению приложен файл: test.xlsm (86.2 Kb)
 
Ответить
СообщениеЗдравствуйте. Опять нужна помощь.

Если пользователь пытается сохранить файл с пустыми полями, выходит предупреждение (форма) - Заполните все обязательные поля. Пользователь может заполнить поля сразу - для этого, он должен нажать кнопку "ОК" и вернуться к редактированию файла без сохранения, или он может сделать это позже. Для этого он должен выбрать кнопку - Сделаю это позже и файл должен сохраниться.

Что-то уже сделано, но 1. В случе с "Сделаю это позже", Форма выскакивает второй раз и только потом сохраняется файл
2. В случае с "ОК" я не знаю как заставить файл не сохраняться.

Помогите пожалуйста.

[vba]
Код
Private Sub Workbook_BeforeSave(ByVal SaveAsUi As Boolean, Cancel As Boolean)

Call Module7.highlight

Call Module8.War_Mes

End Sub
[/vba]

[vba]
Код
Sub War_Mes()

Dim rCell As Range, A As Integer

Set xyzRange = Range("J5:J400")

For Each rCell In xyzRange

If rCell.Interior.ColorIndex = 22 Then

A = 1

End If

Next

If A = 1 Then

UserForm2.Show

End If

End Sub
[/vba]

[vba]
Код
Private Sub CommandButton1_Click()

Unload Me
ActiveWorkbook.Save

End Sub

Private Sub CommandButton2_Click()

Dim Cancel As Boolean

*Тут надо что-то написать, чтобы не сохраняло?*

Unload Me

End Sub

Private Sub UserForm_Click()

End Sub
[/vba]

Автор - Tunka-s
Дата добавления - 28.02.2019 в 18:01
vikttur Дата: Четверг, 28.02.2019, 18:19 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2941
Репутация: 526 ±
Замечаний: 0% ±

Зачем там вообще что-то писать?
[vba]
Код
Private Sub CommandButton2_Click()
    Unload Me
End Sub
[/vba]
 
Ответить
СообщениеЗачем там вообще что-то писать?
[vba]
Код
Private Sub CommandButton2_Click()
    Unload Me
End Sub
[/vba]

Автор - vikttur
Дата добавления - 28.02.2019 в 18:19
Tunka-s Дата: Четверг, 28.02.2019, 18:29 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 124
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
vikttur, Потому что без этого файл сохраняется. Тогда смысла в двух кнопках вообще нет.
 
Ответить
Сообщениеvikttur, Потому что без этого файл сохраняется. Тогда смысла в двух кнопках вообще нет.

Автор - Tunka-s
Дата добавления - 28.02.2019 в 18:29
bmv98rus Дата: Четверг, 28.02.2019, 18:45 | Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4099
Репутация: 766 ±
Замечаний: 0% ±

Excel 2013/2016
Глобальную переменную ей true когда не надо записывать и в before_save cancel=этой аеременной. А переменной присвоить false


Замечательный Временно просто медведь , процентов на 20.
 
Ответить
СообщениеГлобальную переменную ей true когда не надо записывать и в before_save cancel=этой аеременной. А переменной присвоить false

Автор - bmv98rus
Дата добавления - 28.02.2019 в 18:45
vikttur Дата: Четверг, 28.02.2019, 18:52 | Сообщение № 5
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2941
Репутация: 526 ±
Замечаний: 0% ±

Форма закрывается. Сохраненения нет. Где Вы его увидели?
 
Ответить
СообщениеФорма закрывается. Сохраненения нет. Где Вы его увидели?

Автор - vikttur
Дата добавления - 28.02.2019 в 18:52
doober Дата: Четверг, 28.02.2019, 18:57 | Сообщение № 6
Группа: Друзья
Ранг: Ветеран
Сообщений: 947
Репутация: 323 ±
Замечаний: 0% ±

Excel 2010
Так можно.
К сообщению приложен файл: 0369176.xlsm (81.8 Kb)


 
Ответить
СообщениеТак можно.

Автор - doober
Дата добавления - 28.02.2019 в 18:57
Tunka-s Дата: Четверг, 28.02.2019, 19:16 | Сообщение № 7
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 124
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
bmv98rus, А можно примерчик. :confused:
 
Ответить
Сообщениеbmv98rus, А можно примерчик. :confused:

Автор - Tunka-s
Дата добавления - 28.02.2019 в 19:16
bmv98rus Дата: Четверг, 28.02.2019, 19:30 | Сообщение № 8
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4099
Репутация: 766 ±
Замечаний: 0% ±

Excel 2013/2016
Tunka-s, ну doober почти уже изобразил, но как то сложно.
К сообщению приложен файл: Copy_of_692.xlsm (78.9 Kb)


Замечательный Временно просто медведь , процентов на 20.
 
Ответить
СообщениеTunka-s, ну doober почти уже изобразил, но как то сложно.

Автор - bmv98rus
Дата добавления - 28.02.2019 в 19:30
Tunka-s Дата: Четверг, 28.02.2019, 19:54 | Сообщение № 9
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 124
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
bmv98rus, Спасибо большое! Не сохраняет!
 
Ответить
Сообщениеbmv98rus, Спасибо большое! Не сохраняет!

Автор - Tunka-s
Дата добавления - 28.02.2019 в 19:54
Tunka-s Дата: Четверг, 28.02.2019, 19:55 | Сообщение № 10
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 124
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
doober, У меня почему-то ошибка выскакивает... Но все равно спасибо. :) Задача решена.
 
Ответить
Сообщениеdoober, У меня почему-то ошибка выскакивает... Но все равно спасибо. :) Задача решена.

Автор - Tunka-s
Дата добавления - 28.02.2019 в 19:55
doober Дата: Четверг, 28.02.2019, 20:52 | Сообщение № 11
Группа: Друзья
Ранг: Ветеран
Сообщений: 947
Репутация: 323 ±
Замечаний: 0% ±

Excel 2010
Задача решена.

Так решена или ошибка присутствует?


 
Ответить
Сообщение
Задача решена.

Так решена или ошибка присутствует?

Автор - doober
Дата добавления - 28.02.2019 в 20:52
bmv98rus Дата: Четверг, 28.02.2019, 21:22 | Сообщение № 12
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4099
Репутация: 766 ±
Замечаний: 0% ±

Excel 2013/2016
doober, Зачем через Доп функцию? Все ж в пределах одной книги. Раз все равно глобальная переменная, то просто её и теребить.


Замечательный Временно просто медведь , процентов на 20.
 
Ответить
Сообщениеdoober, Зачем через Доп функцию? Все ж в пределах одной книги. Раз все равно глобальная переменная, то просто её и теребить.

Автор - bmv98rus
Дата добавления - 28.02.2019 в 21:22
doober Дата: Четверг, 28.02.2019, 21:41 | Сообщение № 13
Группа: Друзья
Ранг: Ветеран
Сообщений: 947
Репутация: 323 ±
Замечаний: 0% ±

Excel 2010
Глобальные переменные имеют особенность обнуляться.
Я добавил свойство для книги, и оно передается непосредственно перед сохранением.
Я стараюсь избегать глобальных переменных.




Сообщение отредактировал doober - Четверг, 28.02.2019, 21:42
 
Ответить
СообщениеГлобальные переменные имеют особенность обнуляться.
Я добавил свойство для книги, и оно передается непосредственно перед сохранением.
Я стараюсь избегать глобальных переменных.

Автор - doober
Дата добавления - 28.02.2019 в 21:41
bmv98rus Дата: Четверг, 28.02.2019, 21:52 | Сообщение № 14
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4099
Репутация: 766 ±
Замечаний: 0% ±

Excel 2013/2016
doober, ну, в данном случае обнуление не навредит. только я что-то не понял.
Я добавил свойство для книги, и оно передается непосредственно перед сохранением.
Я стараюсь избегать глобальных переменных.

Public MyCancel As Boolean - это по вашему свойство книги? :-)


Замечательный Временно просто медведь , процентов на 20.
 
Ответить
Сообщениеdoober, ну, в данном случае обнуление не навредит. только я что-то не понял.
Я добавил свойство для книги, и оно передается непосредственно перед сохранением.
Я стараюсь избегать глобальных переменных.

Public MyCancel As Boolean - это по вашему свойство книги? :-)

Автор - bmv98rus
Дата добавления - 28.02.2019 в 21:52
doober Дата: Четверг, 28.02.2019, 22:22 | Сообщение № 15
Группа: Друзья
Ранг: Ветеран
Сообщений: 947
Репутация: 323 ±
Замечаний: 0% ±

Excel 2010
Так у меня в модуле книги прописано
[vba]
Код

Private MeCancel_ As Boolean
Public Property Get MeCancel() As Boolean
MeCancel = MeCancel_
End Property

Public Property Let MeCancel(ByVal vNewValue As Boolean)
MeCancel_ = vNewValue
End Property
[/vba]
А так передается в книгу
ThisWorkbook.MeCancel = False


 
Ответить
СообщениеТак у меня в модуле книги прописано
[vba]
Код

Private MeCancel_ As Boolean
Public Property Get MeCancel() As Boolean
MeCancel = MeCancel_
End Property

Public Property Let MeCancel(ByVal vNewValue As Boolean)
MeCancel_ = vNewValue
End Property
[/vba]
А так передается в книгу
ThisWorkbook.MeCancel = False

Автор - doober
Дата добавления - 28.02.2019 в 22:22
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Отменить сохранение файла через диалоговое окно. (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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