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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.02.2009, 00:57   #1
ok`sana
 
Регистрация: 31.01.2009
Сообщений: 4
По умолчанию блокировать ячейку с формулой

Здравствуйте! Помогите, пожалуйста. Есть столбец, в который забиваются числа и в этом же столбце есть формулы, промежуточно суммирующие значения ячеек в в этом столбце. Можно ли сделать так, чтобы ячейки с формулами проскакивались (т.е при нажатии ENTER ячейка с формулой не становилась активной, а сразу курсор становился на следующую ячейку)? Спасибо.
ok`sana вне форума Ответить с цитированием
Старый 01.02.2009, 08:49   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Щелкаем правой кнопкой на ярлычке листа, выбираем пункт Исходный текст,
и в открывшийся редактор VBA вставляем следующий код:
Код:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Cells.Count = 1 Then If Left(Target.Formula, 1) = "=" Then Target.Offset(1).Select
End Sub
Не забываем сохранить документ.

После этого выделить одиночную ячейку с формулой станет невозможно.
EducatedFool вне форума Ответить с цитированием
Старый 01.02.2009, 13:27   #3
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Я бы так написал:
Цитата:
Private Sub Worksheet_Change(ByVal Target As Range)
If ActiveCell.HasFormula Then ActiveCell.Offset(1).Select
End Sub
Изучать на предемет наличия формулы надо не изменившуюсю ячейку, а ячейку под ней.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 01.02.2009, 13:38   #4
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
Я бы так написал:
Цитата:
Private Sub Worksheet_Change(ByVal Target As Range)
If ActiveCell.HasFormula Then ActiveCell.Offset(1).Select
End Sub
Если, не изменяя значение в ячейке, нажимать Enter, будут выделяться ячейки с формулами...

В Вашем примере надо хотя бы заменить Worksheet_Change на Worksheet_SelectionChange.

Но тогда не получится выделить диапазон ячеек, начиная с ячейки с формулой...

Цитата:
Изучать на предемет наличия формулы надо не изменившуюсю ячейку, а ячейку под ней
В моём примере, если осуществлён переход на ячейку с формулой, макрос сработает снова и снова - до тех пор, пока не попадётся ячейка без формулы.

Но вот насчёт использования свойства HasFormula полностью согласен (забыл про существование формул массивов)

Я бы остановился на таком варианте:
Код:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Cells.Count = 1 Then If Target.HasFormula Then Target.Offset(1).Select
End Sub
EducatedFool вне форума Ответить с цитированием
Старый 01.02.2009, 14:01   #5
Disel
Форумчанин
 
Аватар для Disel
 
Регистрация: 08.01.2009
Сообщений: 180
По умолчанию

А как зделать, чтобы ячейка с формулой выделить было возможно(чтобы выделение не перескакивало вниз), а изменить ее было не возможно?
"Все что натыкано на клаве, ведет тебя к погибели иль славе"
Если помог нажми на весы
Disel вне форума Ответить с цитированием
Старый 01.02.2009, 16:33   #6
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

EducatedFool, извини. Я не обратил внимание какое событие обрабатывается у тебя.
Только твой код вообще не разрешит ячейки с формулой отметить, а мой проскакивает ячейку с формулой, когда введено значение и нажат энтер (как описано в задании). Правда, если в следующей ячейке снова формула - надо править код. Думаю, Оксане будет интересно самой спарвиться с этой задачей. А может в ее столбце двух подряд формул не бывает, тогда и проблемы нет.

Disel - защитить лист. Предварительно отметив ячейки, в которые разрешено вносить данные и обозначив их, как незащищаемые.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 01.02.2009, 18:44   #7
Disel
Форумчанин
 
Аватар для Disel
 
Регистрация: 08.01.2009
Сообщений: 180
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
Disel - защитить лист. Предварительно отметив ячейки, в которые разрешено вносить данные и обозначив их, как незащищаемые.
Так я и сам знаю, мне надо именно макрос.
"Все что натыкано на клаве, ведет тебя к погибели иль славе"
Если помог нажми на весы
Disel вне форума Ответить с цитированием
Старый 01.02.2009, 19:05   #8
slan
Форумчанин
 
Аватар для slan
 
Регистрация: 30.01.2008
Сообщений: 314
По умолчанию

вот такое сочетание макросов вроде бы решает задачу(как я ее понял)
см вложение

"забить" формулу константой(типа случайно) нельзя, но изменить формулу можно
slan вне форума Ответить с цитированием
Старый 01.02.2009, 19:10   #9
slan
Форумчанин
 
Аватар для slan
 
Регистрация: 30.01.2008
Сообщений: 314
По умолчанию

вот такое сочетание макросов вроде бы решает задачу(как я ее понял)
см вложение

"забить" формулу константой(типа случайно) нельзя, но изменить формулу можно
Вложения
Тип файла: rar блок.rar (8.7 Кб, 157 просмотров)
slan вне форума Ответить с цитированием
Старый 01.02.2009, 19:17   #10
Disel
Форумчанин
 
Аватар для Disel
 
Регистрация: 08.01.2009
Сообщений: 180
По умолчанию

Цитата:
Сообщение от slan Посмотреть сообщение
вот такое сочетание макросов вроде бы решает задачу(как я ее понял)
см вложение

"забить" формулу константой(типа случайно) нельзя, но изменить формулу можно
Вот то что нужно, БОЛЬШОЕ СПАСИБО!!!
"Все что натыкано на клаве, ведет тебя к погибели иль славе"
Если помог нажми на весы
Disel вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
подскажите с формулой slonik Microsoft Office Excel 7 11.11.2008 14:58
Помогите с формулой. Lord_Daron Microsoft Office Excel 2 06.11.2008 21:21
Блокировать доступ Pedro Безопасность, Шифрование 8 02.03.2008 18:59
ПОМОГИТЕ С ФОРМУЛОЙ А^ександр Microsoft Office Excel 6 19.02.2008 10:17
блокировать ALT+F4 Михаил Юрьевич Общие вопросы Delphi 2 12.02.2008 23:44