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

Вход

Регистрация

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

 

= Мир MS Excel/Перехват перехода в режим редактирования. - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Перехват перехода в режим редактирования. (Макросы/Sub)
Перехват перехода в режим редактирования.
and_evg Дата: Четверг, 06.04.2017, 08:54 | Сообщение № 1
Группа: Проверенные
Ранг: Обитатель
Сообщений: 452
Репутация: 78 ±
Замечаний: 0% ±

Excel 2007
Всем добрый день.
Собственно вопрос - как перехватить момент перехода в режим редактирования ячейки? (ДаблКлик по ячейке, клавиша F2, строка формул).
Идея что бы пользователь в определенном диапазоне мог вводить только через форму.
Для ДаблКлик Вроде бы все понятно:
[vba]
Код
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Not Intersect(Target, Range("Диапазон")) Is Nothing Then
        UserForm1.Show
        Cancel = True
    End If
End Sub
[/vba]
но вот как для других?
 
Ответить
СообщениеВсем добрый день.
Собственно вопрос - как перехватить момент перехода в режим редактирования ячейки? (ДаблКлик по ячейке, клавиша F2, строка формул).
Идея что бы пользователь в определенном диапазоне мог вводить только через форму.
Для ДаблКлик Вроде бы все понятно:
[vba]
Код
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Not Intersect(Target, Range("Диапазон")) Is Nothing Then
        UserForm1.Show
        Cancel = True
    End If
End Sub
[/vba]
но вот как для других?

Автор - and_evg
Дата добавления - 06.04.2017 в 08:54
nilem Дата: Четверг, 06.04.2017, 09:50 | Сообщение № 2
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
например, установить защиту на определенные ячейки с параметром UserinterfaceOnly:=True
т.е. изменять такие ячейки можно будет только программно


Яндекс.Деньги 4100159601573
 
Ответить
Сообщениенапример, установить защиту на определенные ячейки с параметром UserinterfaceOnly:=True
т.е. изменять такие ячейки можно будет только программно

Автор - nilem
Дата добавления - 06.04.2017 в 09:50
and_evg Дата: Четверг, 06.04.2017, 10:18 | Сообщение № 3
Группа: Проверенные
Ранг: Обитатель
Сообщений: 452
Репутация: 78 ±
Замечаний: 0% ±

Excel 2007
nilem, Спасибо за оперативный ответ, но к сожалению не подходит.
 
Ответить
Сообщениеnilem, Спасибо за оперативный ответ, но к сожалению не подходит.

Автор - and_evg
Дата добавления - 06.04.2017 в 10:18
nilem Дата: Четверг, 06.04.2017, 11:30 | Сообщение № 4
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
а так?
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Intersect(Target, Range("A1:D10")) Is Nothing Then Exit Sub

With Application
    .EnableEvents = False
    .Undo
    .EnableEvents = True
End With
MsgBox "Используйте форму", 64
End Sub
[/vba]
хотя с защитой было бы лучше


Яндекс.Деньги 4100159601573
 
Ответить
Сообщениеа так?
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Intersect(Target, Range("A1:D10")) Is Nothing Then Exit Sub

With Application
    .EnableEvents = False
    .Undo
    .EnableEvents = True
End With
MsgBox "Используйте форму", 64
End Sub
[/vba]
хотя с защитой было бы лучше

Автор - nilem
Дата добавления - 06.04.2017 в 11:30
and_evg Дата: Четверг, 06.04.2017, 11:44 | Сообщение № 5
Группа: Проверенные
Ранг: Обитатель
Сообщений: 452
Репутация: 78 ±
Замечаний: 0% ±

Excel 2007
nilem, То же вариант. Но при этом дается возможность начать редактирование.
Похоже верно, что лучше с защитой.
 
Ответить
Сообщениеnilem, То же вариант. Но при этом дается возможность начать редактирование.
Похоже верно, что лучше с защитой.

Автор - and_evg
Дата добавления - 06.04.2017 в 11:44
and_evg Дата: Четверг, 06.04.2017, 12:01 | Сообщение № 6
Группа: Проверенные
Ранг: Обитатель
Сообщений: 452
Репутация: 78 ±
Замечаний: 0% ±

Excel 2007
Хммм... Но при защите выскакивает системное сообщение о защищенной ячейки и
[vba]
Код
Application.DisplayAlerts = False
[/vba]
не помогает
 
Ответить
СообщениеХммм... Но при защите выскакивает системное сообщение о защищенной ячейки и
[vba]
Код
Application.DisplayAlerts = False
[/vba]
не помогает

Автор - and_evg
Дата добавления - 06.04.2017 в 12:01
nilem Дата: Четверг, 06.04.2017, 16:52 | Сообщение № 7
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
Ну да, это и есть сообщение о том, что в этих ячейках нужно вводить данные не вручную, а ч/з форму.
А как нужно?


Яндекс.Деньги 4100159601573
 
Ответить
СообщениеНу да, это и есть сообщение о том, что в этих ячейках нужно вводить данные не вручную, а ч/з форму.
А как нужно?

Автор - nilem
Дата добавления - 06.04.2017 в 16:52
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Перехват перехода в режим редактирования. (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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