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

Вход

Регистрация

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

 

= Мир MS Excel/Разрешить работу макроса, но ограничить работу пользователя - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Разрешить работу макроса, но ограничить работу пользователя
Erik Дата: Вторник, 07.05.2013, 22:28 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 43
Репутация: 0 ±
Замечаний: 0% ±

Всем привет! Нужна Ваша помощь...Защищаю листы и после этого макрос отказывается работать .. Нашел вот такой макрос (он только для одного листа), для того, чтобы лечить эту проблемку, НО чет не могу в нем разобраться. Мне нужно, что бы макрос мог работать на 3-х листах, а пользователю разрешить только форматирование строк, столбцов, ячеек и возможность фильтра. I need your help!!!

[vba]
Код
Private Sub Workbook_Open()
Protect_for_User_Non_for_VBA Me.Sheets("Лист1")
End Sub
Sub Protect_for_User_Non_for_VBA(wsSh As Object)
wsSh.Protect Password:="1111", AllowFiltering:=True, UserInterfaceOnly:=True
End Sub
[/vba]
 
Ответить
СообщениеВсем привет! Нужна Ваша помощь...Защищаю листы и после этого макрос отказывается работать .. Нашел вот такой макрос (он только для одного листа), для того, чтобы лечить эту проблемку, НО чет не могу в нем разобраться. Мне нужно, что бы макрос мог работать на 3-х листах, а пользователю разрешить только форматирование строк, столбцов, ячеек и возможность фильтра. I need your help!!!

[vba]
Код
Private Sub Workbook_Open()
Protect_for_User_Non_for_VBA Me.Sheets("Лист1")
End Sub
Sub Protect_for_User_Non_for_VBA(wsSh As Object)
wsSh.Protect Password:="1111", AllowFiltering:=True, UserInterfaceOnly:=True
End Sub
[/vba]

Автор - Erik
Дата добавления - 07.05.2013 в 22:28
Serge_007 Дата: Вторник, 07.05.2013, 22:53 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Цитата (Erik)
макрос мог работать на 3-х листах, а пользователю разрешить только форматирование строк, столбцов, ячеек и возможность фильтра

Если в книге три листа, то так (в модуль Эта книга):
[vba]
Код
Private Sub Workbook_Open()
Dim x As Worksheet
For Each x In ThisWorkbook.Worksheets
x.Protect Password:="1111", AllowFormattingCells:=True, AllowFormattingColumns:=True, _
           AllowFormattingRows:=True, AllowFiltering:=True
Next x
End Sub
[/vba]
К сообщению приложен файл: Erik.xls (37.5 Kb)


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Цитата (Erik)
макрос мог работать на 3-х листах, а пользователю разрешить только форматирование строк, столбцов, ячеек и возможность фильтра

Если в книге три листа, то так (в модуль Эта книга):
[vba]
Код
Private Sub Workbook_Open()
Dim x As Worksheet
For Each x In ThisWorkbook.Worksheets
x.Protect Password:="1111", AllowFormattingCells:=True, AllowFormattingColumns:=True, _
           AllowFormattingRows:=True, AllowFiltering:=True
Next x
End Sub
[/vba]

Автор - Serge_007
Дата добавления - 07.05.2013 в 22:53
Саня Дата: Вторник, 07.05.2013, 23:10 | Сообщение № 3
Группа: Друзья
Ранг: Ветеран
Сообщений: 1068
Репутация: 560 ±
Замечаний: 0% ±

XL 2016
Цитата (Erik)
Защищаю листы и после этого макрос отказывается работать

Цитата (Erik)
Нашел вот такой макрос (он только для одного листа), для того, чтобы лечить эту проблемку

этот макрос не решает никаких подобных проблем

Обычно схема такая:
[vba]
Код
sub Sheet_p (wks as worksheet, sPass as string)
    wks.Protect Password:=sPass, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
         AllowFormattingRows:=True, AllowFiltering:=True
end sub

sub Sheet_u (wks as worksheet, sPass as string)
    wks.Unprotect sPass
end sub
[/vba]

затем обработчик:
[vba]
Код
Private Sub Workbook_Open()
Dim x As Worksheet
For Each x In ThisWorkbook.Worksheets
    Sheet_p x, "1111"
Next x
End Sub
[/vba]

ну, собс-но, сам макрос (которому позволительно кромсать листочек)

[vba]
Код
sub punisher
    Sheet_u activesheet, "1111"

    ' разные бесчинства

    Sheet_p activesheet, "1111"
end sub
[/vba]
 
Ответить
Сообщение
Цитата (Erik)
Защищаю листы и после этого макрос отказывается работать

Цитата (Erik)
Нашел вот такой макрос (он только для одного листа), для того, чтобы лечить эту проблемку

этот макрос не решает никаких подобных проблем

Обычно схема такая:
[vba]
Код
sub Sheet_p (wks as worksheet, sPass as string)
    wks.Protect Password:=sPass, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
         AllowFormattingRows:=True, AllowFiltering:=True
end sub

sub Sheet_u (wks as worksheet, sPass as string)
    wks.Unprotect sPass
end sub
[/vba]

затем обработчик:
[vba]
Код
Private Sub Workbook_Open()
Dim x As Worksheet
For Each x In ThisWorkbook.Worksheets
    Sheet_p x, "1111"
Next x
End Sub
[/vba]

ну, собс-но, сам макрос (которому позволительно кромсать листочек)

[vba]
Код
sub punisher
    Sheet_u activesheet, "1111"

    ' разные бесчинства

    Sheet_p activesheet, "1111"
end sub
[/vba]

Автор - Саня
Дата добавления - 07.05.2013 в 23:10
Hugo Дата: Четверг, 09.05.2013, 17:23 | Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3703
Репутация: 792 ±
Замечаний: 0% ±

365
Недавно столкнулся - комментарии не входят в эти "всякие бесчинства" sad
Т.е. чтоб работать с комментариями, а так же копировать строку с комментариями - пришлось полностью снимать защиту, "бесчинствовать", ставить защиту назад.


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеНедавно столкнулся - комментарии не входят в эти "всякие бесчинства" sad
Т.е. чтоб работать с комментариями, а так же копировать строку с комментариями - пришлось полностью снимать защиту, "бесчинствовать", ставить защиту назад.

Автор - Hugo
Дата добавления - 09.05.2013 в 17:23
  • Страница 1 из 1
  • 1
Поиск:

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