Перемещение курсора в ограниченном диапазоне.

Автор bsi, 5 марта 2017, 12:41

0 Пользователи и 1 гость просматривают эту тему.

bsi

Привет форумчане. Необходимо написать макрос ограничивающий перемещение курсора в таблице. Исходное положение курсора столбец В строка 6, конечный столбец H6 и так до 500 строки. Что-то типа Private PrevCell(1) As Range
Private Const TabStart = 2
Private Const TabEnd = 8
Private Sub worksheet_selectionchange(ByVal target As Range)
  Set PrevCell(0) = PrevCell(1)
  Set PrevCell(1) = target
  If PrevCell(0) Is Nothing Then Exit Sub
  If target.Column = 1 Then Exit Sub
  EnableEvents = False
  If target.Column = TabEnd + 1 Then
    If PrevCell(0).Address = target.Offset(0, -1).Address Then Cells(target.Row + 1, TabStart).Select
    Set PrevCell(1) = ActiveCell
  End If
  EnableEvents = True
End Sub

в Excel.
Всем спасибо.

mikekaganski

А защита ячеек и листа без всяких макросов не пойдёт?
С уважением,
Михаил Каганский

bsi

ЦитироватьА защита ячеек и листа без всяких макросов не пойдёт?
Не пойдёт.

rami

Создать курсор для диапазона можно так:
Sub Main
oSheet=ThisComponent.Sheets(0)
oRange=oSheet.getCellRangeByName("B6:H500")
curs=oSheet.createCursorByRange(oRange)
End Sub

bsi

Цитироватькурсор для диапазона можно так
Пробовал вешать этот макрос на разные события и листа и документа. Что-то у меня не работает. Или в макрос надо ещё что-то добавлять?

rami

Цитата: bsi от  5 марта 2017, 12:17Пробовал вешать этот макрос на разные события и листа и документа. Что-то у меня не работает. Или в макрос надо ещё что-то добавлять?
Я показал создание курсора для диапазона, что дальше делать с этим курсорам не знаю.

А зачем ограничивать перемещение курсора? он что, может вырваться из диапазона и покусать людей ???

bsi

ЦитироватьА зачем ограничивать перемещение курсора?
Хотелось, чтобы при достижении в таблицы столбца Н, курсор при нажатии Тab или Enrter,
активировался в следующей строке в столбце В, а вне пределов таблицы по Tab  и стрелкам перемещался как обычно.

economist

Опять возвращаемся к Защите листа - все что написано в #6 - Защита умеет. 
А в #2 мы увидели безапелляционное "Не пойдет". Макрос любой ценой, короче...

По мне - так это прихоти, имеющие штатные решения Calc. Или покупайте MS Excel 2016 за 7-10 тыс. руб.

Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...

bsi

#8
ЦитироватьОпять возвращаемся к Защите листа
Если защитить лист, то по Tab курсор перемещается по незащищенным ячейкам (условие выполняется),
но остальные макросы в документе барахлят, для вставки или удаления строки надо снимать пароль. Пароль на лист 123.

JohnSUN

#9
А если "выучить матчасть"?

Почему люди считают, что возникшая у них проблема уникальна, что никто до сих пор не сталкивался с подобным, что решения до сих пор не существует?..
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне