Страницы: 1
RSS
Как повторять код, пока все значения не будут удовлетворять условиям
 
Форумчане привет.
Есть задачка - не дать закрыть файл пока все нужные поля не заполнены.

Код написан, но не дает закрыть файл только один раз, после - пожалкйста, закрывай.
Нужно сделать так, чтобы не дать это сделать, пока не выполнено условие.
Код
<Private Sub workbook_BeforeClose (Cancel As Boolean)
If sheets ("Ромашка").Range ("диаозон ячеек").Value = "" Then
Cancel=true
MsgBox "Бла бла бла "
Else
ActiveWorkBook.Close SaveChanges:=true
End if
End sub>

Читал про [I]Do while/Loop,/I], но не удается написать с ним.

Прошу помощи
Заранее спасибо, с уважением Артем

PS
Я страшный Нуб в ВБА, напишите для дурачка
Изменено: Powerline - 21.03.2018 15:15:33
 
Да вроде нормально, если все описки скорректировать.
Другое дело что этот код контролирует только одну ячейку...
 
У меня прописано отдельно для всех ячеек, я тут для примера написал, но вот заставить его работать постоянно я не могу....( т.е при первом закрытии он срабатывает, говорит " не заполнены ячейки", пробуешь закрыть еще раз и все получается((
 
Цитата
P0werline написал:
Я страшный Нуб в ВБА
Поэтому скопируйте-вставьте код полностью, а не абы как ("End sup").
 
Цитата
Казанский написал:
Поэтому скопируйте-вставьте код полностью, а не абы как ("End sup").
Просто опечатка, прошу не придираться...)
Лучше помогите реализовать Do while....
 
UP!
Ребята помогите пожалуйста....
Не получается реализовать КОД, что бы срабатывал постоянно при закрытии, срабатывает 1 раз(

Через "Do while loop" получается вечный цикл....(
 
Зачем там Do Loop? в коде объекта ЭтаКнига вот такая процедура:
Код
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    If Worksheets("Лист1").Range("A1") = "" Then
    Cancel = True
    End If
End Sub
успешно противостоит попыткам закрыть файл без заполнения ячейки А1 на листе с именем "Лист1".
Кому решение нужно - тот пример и рисует.
 
Цитата
Пытливый написал:
успешно противостоит попыткам закрыть файл без заполнения ячейки А1 на листе с именем "Лист1".
Попробовал. Он противостоит только один раз, если еще раз нажать крестик - выходит...
 
Да ладно! А ну-ка попробуйте на файле.
Кому решение нужно - тот пример и рисует.
 
Цитата
Пытливый написал:
Да ладно! А ну-ка попробуйте на файле.
Парадокс! на одном компе стоит Эксель 2010 - ваш код работает, а на компьютере, где я пишу код стоит Эксель 2016 - код срабатывает 1 раз....
 
Хм... у меня 2010, что там за глюк в 2016 - не знаю, увы. :(
Кому решение нужно - тот пример и рисует.
Страницы: 1
Наверх