Форум программистов, компьютерный форум, киберфорум
Наши страницы
VBA
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
BadNV
3 / 0 / 0
Регистрация: 24.01.2013
Сообщений: 11
1

Разграничение прав доступа на области листа

07.02.2013, 10:48. Просмотров 1041. Ответов 8
Метки нет (Все метки)

Задача: сделать так, чтобы лист могли видеть все пользователи, но Группа 1 могла редактировать и добавлять только в одном диапозоне ячеек, а Группа 2 - в другом.
Как это сделать?
Пока смог только прятать листы от разнух групп, в зависимости от Username (пользователи в основном - люди возрастные и в компьютере не особо разбираются, как поменять имя пользователя в exel не найдут). Поскольку в 1-й группе 8 человек, в другой - 12, можно вбить их всех в макрос.

Visual Basic
1
2
3
If Application.UserName = "" Then
Sheets("Доходы").Visible = xlVeryHidden
Sheets("Расходы").Visible = True
Какое свойство можно поставитть вместо Visible (и соответственно какое значение ему придать), чтобы было видно все ячейки, но было раздлеление по диапозонам в части возможности редактирования?
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.02.2013, 10:48
Ответы с готовыми решениями:

Разграничение прав доступа в Excel
Добрый день! Как реализовать разграничение прав для пользователей? Допустим у нас имеются 4...

Разграничение доступа к ячейкам в таблице
Необходимо чтобы при вводе данных в ячейку. Ячейка привязывалась к пользователю, т.е. только он мог...

Разграничение прав доступа к БД
Имеется простенький веб сайт, у которого 3 страницы(homepage, page1, page2), в двух последних...

Разграничение прав доступа
Здравствуйте. Занялся в своей организацией разграничением правд доступа. В ДИ написано, что должен...

Разграничение прав доступа.
есть БД в SQL Server 2000 и приложение в Delphi. при запуске приложения появляется форма где...

8
Апострофф
Заблокирован
07.02.2013, 11:36 2
Лучший ответ Сообщение было отмечено как решение

Решение

Вариант (в модуль эта книга) -
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
Private Sub Workbook_Open()
ActiveSheet.Unprotect
Cells.Locked = False
Select Case Application.UserName
  Case "user1", "user2", "user3", "user4", "user5" 'для перечисленных пользователей
    Columns(1).Locked = True 'запрещаем редактирование первого стобца
  Case "user11", "user12", "user13", "user14", "user15" 'для перечисленных пользователей
    Columns(2).Locked = True 'запрещаем редактирование второго стобца
  Case Else 'для все прочих
    Cells.Locked = True 'запрещаем редактирование всего листа
End Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub
3
BadNV
3 / 0 / 0
Регистрация: 24.01.2013
Сообщений: 11
07.02.2013, 13:01  [ТС] 3
Спасибо! А как отключить всплывающее сообщения? Чтобы не писал "Ячейка защищена от редактирования. Зайдите туда то и отключите то-то". Так даже мои возрастники ее отключят из чистого любопытства.
Строчка Application.DisplayAlerts = False почему-то не помогла.

Добавлено через 12 минут
Отбой. Нашел как сделать.
0
Апострофф
07.02.2013, 13:49
  #4

Не по теме:

Цитата Сообщение от BadNV Посмотреть сообщение
Отбой. Нашел как сделать.
Нашел, так поделись со всеми:)

0
BadNV
3 / 0 / 0
Регистрация: 24.01.2013
Сообщений: 11
07.02.2013, 13:53  [ТС] 5
Это не через макрос делается.
Вкладка рецензирование - Защитить лист - убрать галочку напротив "выделение заблокированных ячеек". В итоге, те ячейки, которые макрос блокирует для юзера не могут быть выделены, а значит и сообщений не будет.
0
Апострофф
Заблокирован
07.02.2013, 14:03 6
Цитата Сообщение от BadNV Посмотреть сообщение
Это не через макрос делается.
Можно и через макрос
Visual Basic
1
ActiveSheet.EnableSelection = xlUnlockedCells
1
BadNV
3 / 0 / 0
Регистрация: 24.01.2013
Сообщений: 11
07.02.2013, 15:06  [ТС] 7
Чей-то не помогает эта строчка, все равно сообщение выскакивает.
0
Апострофф
Заблокирован
07.02.2013, 15:27 8
Цитата Сообщение от BadNV Посмотреть сообщение
все равно сообщение выскакивает
Я вставил эту строку после 2-й строки своего варианта. Сообщение выскакивает только при двойном клике и при условии, что весь лист заблокирован, иначе происходит вход в активную ячейку. Возможно, что-то не учтено?
0
BadNV
3 / 0 / 0
Регистрация: 24.01.2013
Сообщений: 11
07.02.2013, 15:29  [ТС] 9
Пардон, все встало как надо. Так и не понял, где не так сделал. Просто перезалил в VBA твой макрос еще раз.
0
07.02.2013, 15:29
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.02.2013, 15:29

Разграничение прав доступа
Требуется разграничить права доступа, если мы залогинимся под юзером на форме. Тоже самое сделать,...

Разграничение прав доступа
Есть таблица, в ней n строк, n столбцов (id integer, gid text, etc...) Как реализовать доступ...

Разграничение прав доступа БД предприятия
Уважаемые Товарищи ! Первый раз открыл Access 2003. Прошу объясните или помогите кто чем может. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.