Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.02.2020, 11:21   #1
Вячеслав_Цой
Новичок
Джуниор
 
Регистрация: 25.02.2020
Сообщений: 1
По умолчанию Изменение диапазона защищенного листа после ввода данных в этот диапазон

дравствуйте!
Хочу создать файл в общем доступе для 2-х сотрудников в Excel 2013. Защитить лист и дать каждому из них доступ на изменение определенных диапазонов. К примеру Иванов - может вводить данные в диапазон A1:A100, а Петров - в B1:B100 - изначально все ячейки в этих диапазонах будут пустые.
Нужен такой макрос - чтобы после ввода данных в ячейку любым пользователем в допустимом ему диапазоне (например Иванов внес данные в ячейку A5) эта ячейка автоматически исключалась из разрешенного для изменения диапазона. Т.е. чтобы пользователь мог только один раз внести информацию в ячейку, а потом ее самостоятельно не мог отредактировать (без помощи админа файла).
Буду признателен за помощь! Спасибо!
Вячеслав_Цой вне форума Ответить с цитированием
Старый 25.02.2020, 22:44   #2
Elixi
Форумчанин
 
Регистрация: 10.05.2019
Сообщений: 163
По умолчанию

У Иванова и Петрова нет права на ошибку?
С подобными вещами я никогда не игрался,
сделал бы как то так:

Код:
Private Sub Worksheet_Change(ByVal Target As Range)

    Set Zapr = Range("A3:B3, C4:D4, E4, G4")
    If Intersect(Target, Zapr) Is Nothing Or Target.Cells.Count > 1 Then Exit Sub
    Application.EnableEvents = False
        ActiveSheet.Unprotect Password:="Password"
        Cells.Select
        Selection.Locked = False
        For Each Item In Zapr
            If Range(Item.Address) <> "" Then
                Range(Item.Address).Select
                Selection.Locked = True
            End If
        Next Item
        ActiveSheet.Protect Password:="Password", DrawingObjects:=True, Contents:=True, Scenarios:=True
        Range(Target.Address).Offset(1, 0).Select
    Application.EnableEvents = True

End Sub
Elixi вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изменение диапазона данных точечной диаграммы через переменные VBA ymnuhj Microsoft Office Excel 3 05.05.2016 18:59
Копирование диапазона данных с одного листа на другой Аня Басова Microsoft Office Excel 9 04.02.2014 14:17
Запрет ввода данных в ячейки листа. Randy.Mandy Microsoft Office Excel 2 29.12.2011 12:27
Как сделать вывод данных после всего ввода данных. Donatello Общие вопросы C/C++ 6 16.01.2011 16:32
Нужен Макрос для ввода данных в перую пустую ячейку диапазона valik65 Microsoft Office Excel 4 16.12.2010 16:01