Страницы: 1
RSS
Защита области для определенного пользователя
 
Добрый день!  
Подскажите, пожалуйста, можно ли в Excel сделать так, чтобы в зависимости от имени юзера разрешалось/не разрешалось корректировать определенные области на листе.  
Пример, в приложении.  
Я хочу одному юзеру разрешить менять только ячейки E4:F18, второму юзеру G4:H18.  
А себе оставить право менять все и везде.  
Возможно ли это сделать в одном файле?  
Заранее спасибо!
 
А может каждому пользователю дать свой лист, а все данные сводить на свой?
 
Можно. Способов много. Интересует именно такая возможность. Просто это пример, а в жизни будет всего побольше и сводить не хочется.  
Может быть можно как-то с помощью макроса запрашивать, напрмер, название отдела на выбор. А затем предлагать внести изменения в определенные колонки.  
Не подскажите, можно ли сделать так, чтобы сразу при открытии файла был запрос на выбор отдела, а затем автоматически появлялась возможность менять только то, что надо (в зависимости от выбранного отдела).
 
Всем добрый день!  
Помогите , пожалуйста, подправить макрос.  
Файл в приложении.  
Смысл макроса: запретить вводить значения в определенные ячейки в зависимости от имени пользователя. Т.е., например, одному пользвателю разрешается вводить данные в ячейки ("C36:D59,F36:G59,C66:D89,F66:G89"), а остальные ячейки для него заблокированы. Другому разрешить вводить данные в ячейки ("C36:D59,I36:J59,C66:D89,I66:J89") "), а остальные ячейки для него заблокированы.  
Вопросы:  
1) Можно ди сделать так, чтобы макрос автоматически выполнялся каждый раз, когда пользователь открывает файл? Если да, то подскажите, пожалуйста, как?  
2) Как сделать так, чтобы сначала макрос проверял есть ли уже созданные разрешенные области, а затем если есть удалял их? Т.к. если пользователь ни разу не открывал этот файл, то разрешенных областей не будет. И он не может их удалить, пишет ошибку.  
3) Как сделать так, чтобы сначала макрос проверял заблокирован ли файл. И если да, то тогда удалял блокировку?  
 
В общем 2 и 3 вопрос похожи. Это проблема связана с тем, когда человек открывает этот файл первый раз.  
А я не знаю, как правильно написать условие на проверку существования блокировки файла и разрешенных областей.  
 
Заранее спасибо!
 
Всем добрый день!  
Подскажите, пожалуйста, я что-то спрашиваю не так? Или неправильно формулирую вопросы? А то мне кажется, что про мой вопрос забыли :(  
Помогите, пожалуйста, с решением... если надо что-то пояснить или сделать по-другому, напишите, пожалуйста.    
Для меня это оч. важно - реализовать эту задачу!  
Помогите, пожалуйста!  
 
Заранее спасибо!
 
Юля, Вам точно здесь помогут: http://programmersforum.ru/forumdisplay.php?s=&daysprune=&f=20  
На самом деле это несложно!
 
Пользователей будет 4 человека (а потом может быть и больше, но это сейчас неважно) для которых надо будет разрешать изменять определенные ячейки. Для всех остальных пользователей будут доступны все ячейки для изменения без исключения.    
В моем примере (ексель файл) макрос написан всего для двух юзеров. Одному разрешить менять одни ячейки, другому другие. По образу и подобию я сама распишу для остальных юзеров что должно происходить. Если решу задачу с двумя пользователями. Поэтому не стала расписывать все варианты.  
-----  
Про сам макрос. Макрос имеют переменную imya, куда записывает имя пользователя:  
imya = Application.UserName  
Затем идет проверка условий if imya="1user" then  
1)разрешить редактировать ячейки с ... по ....  
2)все остальные ячейки заблокировать для редактирования  
if imya="2user" then  
1)разрешить редактировать ячейки с ... по ....  
2)все остальные ячейки заблокировать для редактирования  
------  
Проблема:  
1user открывает файл. Включает макрос. Для него все ок. Те области, которые надо остались для редактирования, все остальное заблокировалось. Все ок. Но если он этот файл сохранит, а затем откроет ещё раз и запустит макрос ещё раз (через час, неделю, месяц). То выдастся ошибка:  
1)что разрешеная область для этого пользователя уже есть с таким названием. Т.к. он уже открывал макрос и после выполнения сохранил документ.  
2)такая же проблема будет и с тем, что в этом файле уже будет (при открытии 2-й раз) стоять блокировка остальных ячеек для редактирования.  
Поэтому я хочу сделать приписку в макросе вначале:  
а) удалить созданные "разрешить редактировать ячейки с ... по ...."  
б) удалить "блокировку остальных ячеек"    
Но если файл будет открываться впервые пользователем, то макрос выдает ошибку, что не может удалить это:    
а) удалить созданные "разрешить редактировать ячейки с ... по ...."  
б) удалить "блокировку остальных ячеек"    
т.к. при первом открытии файла этого ещё не создавалось.  
Поэтому я прошу Вас помочь, как написать условие на проверку:    
1)Есть ли разрешенные области для редактирования, если да, то удалить их,если нет, то дальше  
2) Если есть блокировка на редактирование ячееек, то удалить ее. Если её нет, то дальше  
А затем макрос в зависимости от имени юзера будет разрешать изменять что-то  и запрещать изменять все остальное.  
-------  
Т.е. каждый раз при выполнении макроса. Он будет удалять ранее разрешенные области редактирования и снимать блокировку. А затем, определяя имя пользователя, заново их создавать. Может быть это нерационально или ещё что-то. Просто я только учусь, и этот вариант пока для меня самый понятный и простой.  
 
Заранее спасибо!
 
{quote}{login=The_Prist}{date=27.07.2009 02:05}{thema=}{post}Посмотрите такой вариант. Вы сами задаете диапазоны для каждого пользователя. пользователь вводит свою фамилию, код. После этого он может редактировать только те ячейки(только на одном листе), которые Вы для него указали.  
Вся информация находится на скрытом листе "Users". Отобразить его можно из редактора VBA, поменяв свойство Visible на xlSheetVisible.{/post}{/quote}  
Хороший пример.  
Скажите, а возможно убрать pop-меню на листе и сообщение, что лист защищён при попытке выделения запрещённых областей ячеек для определённого Юзера.  
С уважением...
Страницы: 1
Наверх