Здравствуйте, я здесь новенький, мой уровень - краткий курс по Exel во время учебы семилетней давности, минус то, что забылось. Прошу помочь в таком деле - как сделать, чтобы пользователь мог вносить в таблицу данные, а исправлять сам не мог, только с админом.
Здравствуйте, я здесь новенький, мой уровень - краткий курс по Exel во время учебы семилетней давности, минус то, что забылось. Прошу помочь в таком деле - как сделать, чтобы пользователь мог вносить в таблицу данные, а исправлять сам не мог, только с админом.Vovo4ko
если долго смотреть на юг, на затылке вырастет мох...
Я думаю, что такое можно сделать только с помощью формы. Лист защитить от изменений UserInterfaceOnly:=True, что позволит кодом формы вносить данные, а пользователю (да и админу тоже) менять данные запрещено. Или защитить лист обычным способом, а кодом формы снимать пароль перед изменением и ставить назад после. Чтоб изменить данные вручную, нужно снять защиту листа, зная пароль. Но конечно эта защита для любителей...
Я думаю, что такое можно сделать только с помощью формы. Лист защитить от изменений UserInterfaceOnly:=True, что позволит кодом формы вносить данные, а пользователю (да и админу тоже) менять данные запрещено. Или защитить лист обычным способом, а кодом формы снимать пароль перед изменением и ставить назад после. Чтоб изменить данные вручную, нужно снять защиту листа, зная пароль. Но конечно эта защита для любителей...Hugo
Да, такой простой вариант тоже можно использовать, что-то недодумался Правда его нужно доработать - сейчас вполне можно выделить пару ячеек, получить ошибку макроса, стереть всё и забивать снова что угодно.
Доработать например так:
Code
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Count > 1 Then Target(1).Select: Exit Sub If Target.Value <> "" Then Target.Offset(, 1).Select End Sub
Да, такой простой вариант тоже можно использовать, что-то недодумался Правда его нужно доработать - сейчас вполне можно выделить пару ячеек, получить ошибку макроса, стереть всё и забивать снова что угодно.
Доработать например так:
Code
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Count > 1 Then Target(1).Select: Exit Sub If Target.Value <> "" Then Target.Offset(, 1).Select End Sub
Беда... надо менять концепцию... - из другой книги скопировал блок ячеек 2строки х 3столбца - поставил курсор в А3 - нажал вставить - благополучно заменил данные в 4-й строке(((
Беда... надо менять концепцию... - из другой книги скопировал блок ячеек 2строки х 3столбца - поставил курсор в А3 - нажал вставить - благополучно заменил данные в 4-й строке(((IgorGo
Концепция уже была озвучена - форма и защита листа А тут тогда ещё и меню нужно менять, и сочетания клавиш... В итоге получается сложнее, чем с формой.
Концепция уже была озвучена - форма и защита листа А тут тогда ещё и меню нужно менять, и сочетания клавиш... В итоге получается сложнее, чем с формой.Hugo