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

Вход

Регистрация

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

 

= Мир MS Excel/Как разрешить выбор значения из выпадающего списка - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Как разрешить выбор значения из выпадающего списка
Bamboo Дата: Среда, 24.04.2019, 12:36 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 107
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Подскажите, плиз, как на защищенном листе разрешить выбирать значение из выпадающего списка без возможности редактирования других свойств диапазона?
Лист защищается так:

[vba]
Код
Private Sub Workbook_Open()
    'включаем защиту листа для пользователя, но не макроса
    Worksheets("СЗ").Protect Password:="123", UserInterfaceOnly:=True     
    'Разрешаем менять значения ячеек'     
     Worksheets("СЗ").Range("WC"). ????
End Sub
[/vba]
 
Ответить
СообщениеПодскажите, плиз, как на защищенном листе разрешить выбирать значение из выпадающего списка без возможности редактирования других свойств диапазона?
Лист защищается так:

[vba]
Код
Private Sub Workbook_Open()
    'включаем защиту листа для пользователя, но не макроса
    Worksheets("СЗ").Protect Password:="123", UserInterfaceOnly:=True     
    'Разрешаем менять значения ячеек'     
     Worksheets("СЗ").Range("WC"). ????
End Sub
[/vba]

Автор - Bamboo
Дата добавления - 24.04.2019 в 12:36
nilem Дата: Среда, 24.04.2019, 13:18 | Сообщение № 2
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
Bamboo, привет
ПКМ по ячейке - Формат ячеек - Защита - снять галочку Защищаемая ячейка. Потом ставьте защиту на лист.


Яндекс.Деньги 4100159601573
 
Ответить
СообщениеBamboo, привет
ПКМ по ячейке - Формат ячеек - Защита - снять галочку Защищаемая ячейка. Потом ставьте защиту на лист.

Автор - nilem
Дата добавления - 24.04.2019 в 13:18
Bamboo Дата: Среда, 24.04.2019, 13:33 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 107
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Спасибо, этот способ я знаю, но мне нужно через VBA.
 
Ответить
СообщениеСпасибо, этот способ я знаю, но мне нужно через VBA.

Автор - Bamboo
Дата добавления - 24.04.2019 в 13:33
nilem Дата: Среда, 24.04.2019, 13:55 | Сообщение № 4
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
типа такого?:
[vba]
Код
Sub ttt()
With ActiveSheet
    .Unprotect
    With Range("D3").Validation
        .Delete: .Add Type:=xlValidateList, Formula1:="sdf,ert,rty,tyu"
        .Parent.Locked = False
    End With
    .Protect UserInterfaceOnly:=True
End With
End Sub
[/vba]


Яндекс.Деньги 4100159601573
 
Ответить
Сообщениетипа такого?:
[vba]
Код
Sub ttt()
With ActiveSheet
    .Unprotect
    With Range("D3").Validation
        .Delete: .Add Type:=xlValidateList, Formula1:="sdf,ert,rty,tyu"
        .Parent.Locked = False
    End With
    .Protect UserInterfaceOnly:=True
End With
End Sub
[/vba]

Автор - nilem
Дата добавления - 24.04.2019 в 13:55
Bamboo Дата: Среда, 24.04.2019, 15:26 | Сообщение № 5
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 107
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Спасибо!

Почти так, но я запускаю скрипт по событию onOpen и сразу устанавливаю защиту по нескольким листам.

Можете объяснить что это значит:
[vba]
Код
Delete: .Add Type:=xlValidateList, Formula1:="sdf,ert,rty,tyu"
[/vba]
Как переписать эту формулу, если источник списка - диапазон с данными на листе?

Можете объяснить, что это значит:
[vba]
Код
.Parent.Locked = False
[/vba]

Зачем потом защищать весь лист:
[vba]
Код
.Protect UserInterfaceOnly:=True
[/vba]
Ведь он установит защиту на ячейки с которых защиту сняли?
 
Ответить
СообщениеСпасибо!

Почти так, но я запускаю скрипт по событию onOpen и сразу устанавливаю защиту по нескольким листам.

Можете объяснить что это значит:
[vba]
Код
Delete: .Add Type:=xlValidateList, Formula1:="sdf,ert,rty,tyu"
[/vba]
Как переписать эту формулу, если источник списка - диапазон с данными на листе?

Можете объяснить, что это значит:
[vba]
Код
.Parent.Locked = False
[/vba]

Зачем потом защищать весь лист:
[vba]
Код
.Protect UserInterfaceOnly:=True
[/vba]
Ведь он установит защиту на ячейки с которых защиту сняли?

Автор - Bamboo
Дата добавления - 24.04.2019 в 15:26
nilem Дата: Среда, 24.04.2019, 16:35 | Сообщение № 6
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
"Range("D3").Locked = False" = "Формат ячеек - Защита - снять галочку Защищаемая ячейка"
[vba]
Код
.Protect UserInterfaceOnly:=True
[/vba]
- ставим защиту на лист, при этом наша ячейка D3 останется без защиты.
[vba]
Код
Delete: .Add Type:=xlValidateList, Formula1:="sdf,ert,rty,tyu"
[/vba]
- на всякий случай удаляем, а потом добавляем список валидации (выпадающий список). Вот здесь есть примеры.


Яндекс.Деньги 4100159601573
 
Ответить
Сообщение"Range("D3").Locked = False" = "Формат ячеек - Защита - снять галочку Защищаемая ячейка"
[vba]
Код
.Protect UserInterfaceOnly:=True
[/vba]
- ставим защиту на лист, при этом наша ячейка D3 останется без защиты.
[vba]
Код
Delete: .Add Type:=xlValidateList, Formula1:="sdf,ert,rty,tyu"
[/vba]
- на всякий случай удаляем, а потом добавляем список валидации (выпадающий список). Вот здесь есть примеры.

Автор - nilem
Дата добавления - 24.04.2019 в 16:35
  • Страница 1 из 1
  • 1
Поиск:

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