Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: ограничение прав доступа к данным на листе excel Добавлено: 30.05.07 09:24  

Автор вопроса:  BarS
Добрый день!
Подскажите как можно реализовать разграничение доступа к данным на листе:
допустим такая таблица: Регион, Город, Население
нужно чтоб определенный пользователь имел доступ к данным только по его региону
По какому пути пойти?
все в Excel
Заранее благодарен!

Ответить

  Ответы Всего ответов: 8  

Номер ответа: 1
Автор ответа:
 Pavel



Вопросов: 0
Ответов: 82
 Профиль | | #1 Добавлено: 30.05.07 10:42
Можно попробывать так. Этот код надо поместить в Модуль ЭтаКнига(ThisWorkbook)

Option Explicit
'при закрытии книги скрываем все листы, кроме "Общий лист"
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Dim iSheet As Worksheet
    For Each iSheet In Worksheets
        If iSheet.Name <> "Общий лист" Then
            iSheet.Visible = xlSheetVeryHidden
        End If
    Next
End Sub

'при открытии книги отображаем листы в зависимости от имени пользователя
Private Sub Workbook_Open()
    Dim iUser As String
    Dim iSheet As Worksheet
    iUser = Application.UserName 'узнаём имя пользователя
    Select Case iUser
        Case "бухгалтер"
            'открываем только лист Город
            Me.Sheets("Город";).Visible = xlSheetVisible
        Case "менеджер"
            'открываем только лист Город
            Me.Sheets("Регион";).Visible = xlSheetVisible
        Case "директор"
            'открываем все листы для директора
            For Each iSheet In Worksheets
                iSheet.Visible = xlSheetVisible
            Next
        'Case Else
        '............
    End Select
End Sub

Ответить

Номер ответа: 2
Автор ответа:
 Pavel



Вопросов: 0
Ответов: 82
 Профиль | | #2 Добавлено: 30.05.07 10:47
А если данные на одном листе, то скрыть все нужные столбцы, потом поставить защиту на лист (Сервис - Защита - Защитить лист). А при открытии книги в процедуре Workbook_Open() определять имя пользователя iUser = Application.UserName и в соответствии с именем пользователя программно (через VBA) отображать скрытые столбцы, нужные для этого пользователя, а ненужные оставлять закрытыми

Ответить

Номер ответа: 3
Автор ответа:
 Pavel



Вопросов: 0
Ответов: 82
 Профиль | | #3 Добавлено: 30.05.07 10:53
Но чтобы макрос мог отображать скрытые столбцы (или вообще что-то делать на защищённом паролем листе) в процедуре Workbook_Open(), которая выполняется при каждом открытии книги, также следует написать

ActiveSheet.Protect UserInterfaceOnly:=True

т.е. защитить лист только от пользователя, а макрос может менять что хочет.

Об этом можно прочитать тут
http://www.progz.ru/forum/index.php?s=e9fd8ae73329e81910feb83c84f89b8b&showtopic=31725

Ответить

Номер ответа: 4
Автор ответа:
 Pavel



Вопросов: 0
Ответов: 82
 Профиль | | #4 Добавлено: 30.05.07 10:54
Когда на этом форуме появиться возможность редактировать свои сообщения ?

ДАЙТЕ МНЕ EMAIL АДМИНА )

Ответить

Номер ответа: 5
Автор ответа:
 Meh&vb



ICQ: 195578509 

Вопросов: 8
Ответов: 25
 Профиль | | #5 Добавлено: 30.05.07 15:57
Нежно скрыть лист , а доступ к данным осуществлять из разработанной формы для ввода или редактирования данных

Ответить

Номер ответа: 6
Автор ответа:
 Meh&vb



ICQ: 195578509 

Вопросов: 8
Ответов: 25
 Профиль | | #6 Добавлено: 30.05.07 15:58
простите - не "нежно", а "нужно" :-)

Ответить

Номер ответа: 7
Автор ответа:
 Rodion



Вопросов: 1
Ответов: 25
 Профиль | | #7 Добавлено: 20.05.08 13:35
2Pavel

Никак не получается Ваше решение (Ответ 1) заставить работать. Не могли бы Вы проконсультировать подробнее?

У меня аналогичная задача - в режиме общего доступа к книге разграничить доступ по листов по юзерам.

email: rodion.bozhanov@eldorado.ru
С уважением, Родион
тел. 8-909-160-61-06

Ответить

Номер ответа: 8
Автор ответа:
 J. Smith



ICQ: ненавижу 

Вопросов: 40
Ответов: 477
 Web-сайт: Не хочу ломать голову, если её уже сломал кто-то другой.
 Профиль | | #8
Добавлено: 20.05.08 14:01
Псевдоним: Pavel
Дата регистрации: 05.05.2007 2:52:03
Последнее посещение: 19.12.2007 18:21:09

Не думаю что он скоро сюда заглянет.

Советы других принимаются? :)

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам