Остановка макроса после неверного пароля

Автор HYPNO, 9 февраля 2024, 17:11

0 Пользователи и 1 гость просматривают эту тему.

HYPNO

Приветствую!
Такая делема:
Сделал макрос, который после снятия защиты листа показывает скрытые листы
Все работает исправно, за исключением одного но: если ввести неверный пароль - то защита листа не снимется, но скрытые листы все равно отобразятся ввиду того, что макрос продолжает работу.
в Excel такого не было и макрос останавливал работу

как сделать чтобы в OpenOffice макрос останавливал работу после неправильно введенного пароля?

REM снятия защиты с листа с вызовом диалогового окна
sub unprotect
dim document as object
dim dispatcher as object
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Protect"
args1(0).Value = false
dispatcher.executeDispatch(document, ".uno:Protect", "", 0, args1())

ShowAll_Sheets REM !!!! вот тут я обращаюсь ко второму макросу с отображением скрытых листов

end sub

sokol92

Владимир.

HYPNO

Честно говоря я в этом еще тот камень...
как бы смысл наверное я понял, сделать опрос - если лист защищен - тогда стоп, но как это воплотить - не знаю..

sokol92

#3
  Dim oSheet
  oSheet=ThisComponent.CurrentController.ActiveSheet
  If oSheet.isProtected Then
    Msgbox "Вы не сняли защиту с листа", MB_ICONEXCLAMATION
  Else
    ShowAll_Sheets REM !!!! вот тут я обращаюсь ко второму макросу с отображением скрытых листов
  End If   

Добавьте вместо строки с ShowAll_Sheets...
Владимир.