Страницы: 1
RSS
Запрет выбора из раскрывающегося списка
 
alex55116, антиспам скрыл Ваш пост. Повторите сообщение.
 
Добрый вечер!

Обидно, что столько текста пропало из-за антиспама. :)
В общем, нужно как-то отключить выбор из раскрывающегося списка в ячейке.

Есть 2 ячейки в одном столбце. В ячейке №1 хранятся текстовые значения, и эта ячейка защищена от редактирования.
В ячейке №2 хранятся числовые значения (вкл. проверка данных, туда можно вводить только циферки), и эта ячейка не защищена и доступна для редактирования.
Суть в том, что в ячейке №2 я могу выбрать из раскрывающегося списка данные из ячейки №1 и вставить их. При этом проверка данных не будет ругаться на неверное значение.

Возможно ли как-то отключить / защитить эту функцию от использования?

Изменено: alex55116 - 31.05.2020 18:58:56
 
Нашел более радикальный способ - отрубить полностью меню на ПКМ.

Код
Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
    Cancel = True
End Sub

Думаю, это уж слишком. Хотелось бы просто отключить тот пункт.

Изменено: alex55116 - 01.06.2020 18:57:12
 
Доброе время суток
Цитата
alex55116 написал:
Хотелось бы просто отключить тот пункт.
Ну, положим, надстройкой вы его отключите. Далее будете отключать Alt+↓. А потом потребуется запретить Ctrl+C, Ctrl+V ;)  Или всё же лучше сразу начать с культуры ввода данных?
 
Код
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range("a5")) Is Nothing Then

    For Each icbc In Application.CommandBars("cell").Controls
        If icbc.ID = 1966 Then icbc.Visible = False
    Next
Else
    For Each icbc In Application.CommandBars("cell").Controls
        If icbc.ID = 1966 Then icbc.Visible = True
    Next
End If

End Sub


Если меню не модифицировалось то проще и быстрее
Код
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range("a5")) Is Nothing Then
    Application.CommandBars("cell").Controls(18).Visible = False
Else
    Application.CommandBars("cell").Reset
End If

End Sub


Только это не заблокирует alt+{down}
Изменено: БМВ - 01.06.2020 19:53:20
По вопросам из тем форума, личку не читаю.
 
Цитата
Андрей VG написал: ...Далее будете отключать Alt+↓. А потом потребуется запретить Ctrl+C, Ctrl+V ...
Буду пересматривать свои решения. Лучше, конечно, накатать на VBA проверку данных в ячейках.

Цитата
БМВ написал: Только это не заблокирует alt+{down}
Спасибо большое за помощь!
Страницы: 1
Наверх