|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
28.08.2017, 16:21 | #1 |
Пользователь
Регистрация: 27.01.2017
Сообщений: 21
|
как защитить ячейки от изменения пользователем, но не макрос
когда в файле снята защита листа от изменений, внутренний макрос работает корректно.
Цель макроса - записать в определенную ячейку (исходя из набора правил) текущую дату. Нужно защитить те ячейки, куда макрос пишет дату от изменений "вручную", что бы ячейка была запрещена на редактирование, но макрос мог в эту ячейку записывать данные. В файле макрос пишет в ячейки: P65 - SZ66. Текущий код макроса: Private Sub Worksheet_Change(ByVal Target As Range) Dim col As Long: col = Target.Column If Target.Count > 1 Then Exit Sub If Intersect(Range("P8:SZ9,P63:SZ64,P6 7:SZ68"), Target) Is Nothing Then Exit Sub Application.ScreenUpdating = False Application.EnableEvents = False If Cells(8, col) <> "" And Cells(9, col) <> "" And _ Cells(63, col) <> "" And Cells(64, col) <> "" Then Cells(65, col) = Date Else Cells(65, col) = "" End If If Cells(8, col) <> "" And Cells(9, col) <> "" And _ Cells(67, col) <> "" And Cells(68, col) <> "" Then Cells(66, col) = Date Else Cells(66, col) = "" End If Application.EnableEvents = True Application.ScreenUpdating = True End Sub Ошибка возникает именно при попытке макроса записать в защищенную от редактирования ячейку. Файл у меня большой 400 КБ и версия excel 2010, потому приложить файл не могу Помогите подкорректировать текущий макрос. Спасибо. |
28.08.2017, 16:43 | #2 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,238
|
как вариант - защитить нужные ячейки только от пользователя.
это можно сделать через макрос. Как защитить лист от пользователя, но не от макроса? |
28.08.2017, 17:13 | #3 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
в Excel нет механизна защиты отдельных ячеек, в Excel - защищается лист.
а у ячеек есть свойство "Защищаемая ячейка". если это свойство активно - при защите листа данная ячейка будет защищена. защитить лист от пользователей можно так: ActiveSheet.Protect UserInterfaceOnly:=True если лист защитить от пользователя, файл сохранить, закрыть, открыть... он окажется не защищенным при след. открытии файла. эту строку нужно выполнять при каждом новом открытии файла.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
28.08.2017, 17:53 | #4 |
Участник клуба
Регистрация: 02.05.2010
Сообщений: 1,390
|
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728 |
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как защитить от изменений ячейки к которым применяется макрос | juliet85 | Microsoft Office Excel | 6 | 31.03.2016 08:25 |
макрос изменения цвета шрифта ячейки, при наличии определенной буквы | Alex_91 | Microsoft Office Excel | 8 | 24.05.2012 21:44 |
Защитить код от изменения | Sauber | Помощь студентам | 5 | 07.05.2011 02:34 |
макрос для изменения содержимого ячейки | Cawa1990 | Microsoft Office Excel | 6 | 24.03.2010 18:19 |
Как увидеть изменения в БД, внесенные другим пользователем? | Сергей089 | Помощь студентам | 5 | 12.02.2010 15:45 |