Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Защита ячеек от манипуляций - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Защита ячеек от манипуляций (Макросы/Sub)
Защита ячеек от манипуляций
Red_Sloth Дата: Воскресенье, 14.02.2016, 14:06 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 29
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Здравствуйте!

Помогите пожалуйста!
Есть код макроса, который находится на листе, а не в модуле.
Требуется определенные ячейки защитить от редактирования.
[vba]
Код
ActiveWorkbook.Activate
    Sheets("Entrance").Activate
    Columns("A:L").Select

    Selection.Locked = True
    Sheets("Entrance").Activate
[/vba]

Получаю ошибку "Run-time error '1004' Метод Select из класса Range завершен неверно" и выделяется строка:
[vba]
Код
Columns("A:L").Select
[/vba]

Как можно исправить это?
Заранее спасибо!
 
Ответить
СообщениеЗдравствуйте!

Помогите пожалуйста!
Есть код макроса, который находится на листе, а не в модуле.
Требуется определенные ячейки защитить от редактирования.
[vba]
Код
ActiveWorkbook.Activate
    Sheets("Entrance").Activate
    Columns("A:L").Select

    Selection.Locked = True
    Sheets("Entrance").Activate
[/vba]

Получаю ошибку "Run-time error '1004' Метод Select из класса Range завершен неверно" и выделяется строка:
[vba]
Код
Columns("A:L").Select
[/vba]

Как можно исправить это?
Заранее спасибо!

Автор - Red_Sloth
Дата добавления - 14.02.2016 в 14:06
KuklP Дата: Воскресенье, 14.02.2016, 14:13 | Сообщение № 2
Группа: Проверенные
Ранг: Старожил
Сообщений: 1996
Репутация: 436 ±
Замечаний: 0% ±

[vba]
Код
Sheets("Entrance").range("A:L").Locked = True
[/vba]


Ну, с НДС и мы чего-то стoим! kuklp@mail.ru
WM Z206653985942, R334086032478, U238399322728
 
Ответить
Сообщение[vba]
Код
Sheets("Entrance").range("A:L").Locked = True
[/vba]

Автор - KuklP
Дата добавления - 14.02.2016 в 14:13
Red_Sloth Дата: Воскресенье, 14.02.2016, 14:16 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 29
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
KuklP,
Все равно не работает.
"Run-time error '1004' Нельзя установить свойство Locked класса Range"
 
Ответить
СообщениеKuklP,
Все равно не работает.
"Run-time error '1004' Нельзя установить свойство Locked класса Range"

Автор - Red_Sloth
Дата добавления - 14.02.2016 в 14:16
KuklP Дата: Воскресенье, 14.02.2016, 14:20 | Сообщение № 4
Группа: Проверенные
Ранг: Старожил
Сообщений: 1996
Репутация: 436 ±
Замечаний: 0% ±

У меня работает. Может для начала снять защиту листа, заблокировать ячейки, а потом уж защищать лист? Так обычно принято :) Попробуйте:
[vba]
Код
Public Sub www()
    With Sheets("Entrance")
        .Unprotect
        .Range("A:L").Locked = True
        .Protect UserInterfaceOnly:=True
    End With
End Sub
[/vba]


Ну, с НДС и мы чего-то стoим! kuklp@mail.ru
WM Z206653985942, R334086032478, U238399322728


Сообщение отредактировал KuklP - Воскресенье, 14.02.2016, 14:27
 
Ответить
СообщениеУ меня работает. Может для начала снять защиту листа, заблокировать ячейки, а потом уж защищать лист? Так обычно принято :) Попробуйте:
[vba]
Код
Public Sub www()
    With Sheets("Entrance")
        .Unprotect
        .Range("A:L").Locked = True
        .Protect UserInterfaceOnly:=True
    End With
End Sub
[/vba]

Автор - KuklP
Дата добавления - 14.02.2016 в 14:20
Red_Sloth Дата: Воскресенье, 14.02.2016, 14:43 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 29
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
KuklP,
О, так заработало, спасибо большое!
А если мне при этом надо еще и первые четыре строки защитить?
Как будет корректнее написать Range?
 
Ответить
СообщениеKuklP,
О, так заработало, спасибо большое!
А если мне при этом надо еще и первые четыре строки защитить?
Как будет корректнее написать Range?

Автор - Red_Sloth
Дата добавления - 14.02.2016 в 14:43
KuklP Дата: Воскресенье, 14.02.2016, 14:45 | Сообщение № 6
Группа: Проверенные
Ранг: Старожил
Сообщений: 1996
Репутация: 436 ±
Замечаний: 0% ±

.Range("1:4") или .[1:4]


Ну, с НДС и мы чего-то стoим! kuklp@mail.ru
WM Z206653985942, R334086032478, U238399322728


Сообщение отредактировал KuklP - Воскресенье, 14.02.2016, 14:48
 
Ответить
Сообщение.Range("1:4") или .[1:4]

Автор - KuklP
Дата добавления - 14.02.2016 в 14:45
Red_Sloth Дата: Воскресенье, 14.02.2016, 14:47 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 29
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
KuklP,
Спасибо большое!
Все работает!
 
Ответить
СообщениеKuklP,
Спасибо большое!
Все работает!

Автор - Red_Sloth
Дата добавления - 14.02.2016 в 14:47
RAN Дата: Воскресенье, 14.02.2016, 14:48 | Сообщение № 8
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4277
Репутация: 829 ±
Замечаний: 0% ±

2010
KuklP,
надо еще и

:)


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеKuklP,
надо еще и

:)

Автор - RAN
Дата добавления - 14.02.2016 в 14:48
KuklP Дата: Воскресенье, 14.02.2016, 14:56 | Сообщение № 9
Группа: Проверенные
Ранг: Старожил
Сообщений: 1996
Репутация: 436 ±
Замечаний: 0% ±

RAN, Привет Андрюш. Ты об этом?:
[vba]
Код
.[A:L,1:4].Locked = True
[/vba]


Ну, с НДС и мы чего-то стoим! kuklp@mail.ru
WM Z206653985942, R334086032478, U238399322728
 
Ответить
СообщениеRAN, Привет Андрюш. Ты об этом?:
[vba]
Код
.[A:L,1:4].Locked = True
[/vba]

Автор - KuklP
Дата добавления - 14.02.2016 в 14:56
RAN Дата: Воскресенье, 14.02.2016, 15:17 | Сообщение № 10
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4277
Репутация: 829 ±
Замечаний: 0% ±

2010
Сереж, именно.
Или
[vba]
Код
Union(.Range("A:L"),.Range("1:4"))
[/vba]


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеСереж, именно.
Или
[vba]
Код
Union(.Range("A:L"),.Range("1:4"))
[/vba]

Автор - RAN
Дата добавления - 14.02.2016 в 15:17
Red_Sloth Дата: Воскресенье, 14.02.2016, 15:36 | Сообщение № 11
Группа: Пользователи
Ранг: Новичок
Сообщений: 29
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
KuklP,
Работать то работает, но у меня почему-то в итоге блокируется вообще все.
а не только выделенные столбцы и ячейки
 
Ответить
СообщениеKuklP,
Работать то работает, но у меня почему-то в итоге блокируется вообще все.
а не только выделенные столбцы и ячейки

Автор - Red_Sloth
Дата добавления - 14.02.2016 в 15:36
RAN Дата: Воскресенье, 14.02.2016, 15:46 | Сообщение № 12
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4277
Репутация: 829 ±
Замечаний: 0% ±

2010
Но тут малец с поправкой влез... :)
[vba]
Код
Public Sub www()
    With Me
        .Unprotect
        .Cells.Locked = False
        Union(.Range("A:L"), .Range("1:4")).Locked = True
        .Protect UserInterfaceOnly:=True
    End With
End Sub
[/vba]


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеНо тут малец с поправкой влез... :)
[vba]
Код
Public Sub www()
    With Me
        .Unprotect
        .Cells.Locked = False
        Union(.Range("A:L"), .Range("1:4")).Locked = True
        .Protect UserInterfaceOnly:=True
    End With
End Sub
[/vba]

Автор - RAN
Дата добавления - 14.02.2016 в 15:46
Red_Sloth Дата: Воскресенье, 14.02.2016, 15:55 | Сообщение № 13
Группа: Пользователи
Ранг: Новичок
Сообщений: 29
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
RAN,
А вот так отлично)
Спасибо!
 
Ответить
СообщениеRAN,
А вот так отлично)
Спасибо!

Автор - Red_Sloth
Дата добавления - 14.02.2016 в 15:55
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Защита ячеек от манипуляций (Макросы/Sub)
Страница 1 из 11
Поиск:

Яндекс цитирования
© 2010-2016 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!