Страницы: 1
RSS
Защита от удаления и редактирования
 
Есть  файл в  который  разные  пользователи  вносят
информацию.   Это   авторизация  новых  клиентов.  Наличие  клиента  в
таблице  -  сигнал  другим менеджерам, что данный клиент занят и с ним
уже работают.
Задача  состоит  в том чтобы сделать возможным только добавление информации,
и  запрещение  удаления,  редактирования уже имеющейся, иначе говоря -
внес  информацию, сохранил, и после этой процедуры появлялся запрет на
редактирования записи, своей, или чужой (не имеет значение)
При этом пользователь мог бы свободно добавлять следующую запись
Изменено: gvawlad - 18.07.2018 13:29:38
 
Отредактируйте текстсообщения. Зачем рвать предложения?
Так ли нужнен такой объем данных для решения вопроса?
 
Нужен, не нужен..... - это не по сути. Ответ на него не решает проблему.

примечание: впервые обратился, может не выдержал форму, но ведь не она важна
 
Вам безразлично, сколько времени помогающие будут тратить на то, чтобы разбраться в даных?
Пример должен быть максимально простым, но отражать структуру данных.

Сообщение исправлять собираетесь?
 
Извините, дело не в данных.
Объем в файле - из-за пустых форматированных строк. Выделить лишние строки, удалить строки, обязательно сохранить.
 
Цитата
gvawlad написал:
Нужен, не нужен..... - это не по сути
согласен. Нужен ответ, не нужен - это не по сути. Зачем отвечающим облегчать понимание Вашей задачи? Пусть зайдут, посмотрят и уйдут. Так всем проще. Только вот зачем тогда вообще было создавать тему? Если любые замечания в свой адрес Вы считаете не существенными и к делу отношения не имеющими?

По факту: Вам скорее всего только макрос поможет, который будет защищать данные сразу после внесения данных. Т.е. изначально оставляете пустые ячейки не заблокированными, а заполненные - заблокированными(правая кнопка мыши -Формат ячеек -Защита -галка Защищаемая ячейка).
А затем кодом в WorksheetChange для каждого Target выставляете атрибут Защищаемая. код в модуле листа(правая кнопка мыши на ярлыке листа -Исходный текст или Посмотреть код) будет примерно таким:
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim rc As Range
    Me.Unprotect "1234"
    For Each rc In Target.Cells
        If Not rc.Locked Then
            rc.Locked = True
        End If
    Next
    Me.Protect "1234"
End Sub
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
gvawlad написал: Нужен, не нужен..... - это не по сути
Зачем Вам на кухне ложки, тарелки? Можно же и с кастрюли похлебать... Порядок нужен - вот зачем.
После решения пробемы  тема останется для других.
 
Я сократил таблицу
 
Замените файл  в первом сообщении. И отредактируйте, наконец, текст сообщения, сколько просить можно?
 
Дмитрий! Спасибо за макрос. То что надо!!!!  Если бы фильтрация осталась, при этих условиях, активной. Было бы совсем замечательно. Но в целом предложенный вариант помог решить проблему.
 
Цитата
gvawlad написал:
Если бы фильтрация осталась
а код ничего с фильтрацией и не делает. Запишите макрос с разрешением фильтра, посмотрите какой параметр за это отвечает и добавьте в мой код к методу Protect. Вот и все.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
gvawlad, а почему Вы огрызаетесь на замечания модератора? Ведь правильное замечания: зачем в файле-примере задействовано более 65 000 строк?
 
Цитата
Дмитрий(The_Prist) Щербаков написал:
Запишите макрос с разрешением фильтра,
Если можно для "чайников" -  как это сделать?  Я на уровне -  скопировать и вставить готовый макрос (
 
Цитата
gvawlad написал:
Я на уровне
значит надо развиваться, не всегда же бегать на форум при каждом чихе. Наберите в Яндексе - "что такое макрос". Тема не новая, подобных статей море, в том числе и на этом сайте. На форуме не обучают людей азам, а помогают в конкретных или интересных проблемах.
У Вас должно получиться что-то вроде:
Код
Me.Protect "1234", Allowfiltering:=true
макрорекордер запишет много чего еще, но это не мешает работе.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Фильтр заработал! Спасибо!
Страницы: 1
Наверх