Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

29 Май 2017, 14:24 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Здесь можно поблагодарить участников форума Улыбка
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1   Вниз
  Печать  
Автор Тема: Перемещение курсора в ограниченном диапазоне.  (Прочитано 381 раз)
0 Пользователей и 1 Гость смотрят эту тему.
bsi
Новичок
*
Offline Offline

Сообщений: 41


« Стартовое сообщение: 5 Март 2017, 12:41 »

Привет форумчане. Необходимо написать макрос ограничивающий перемещение курсора в таблице. Исходное положение курсора столбец В строка 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
Старожил
****
Online Online

Пол: Мужской
Расположение: Хабаровск -> Москва
Сообщений: 425


« Ответ #1: 5 Март 2017, 13:01 »

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

С уважением,
Михаил Каганский
bsi
Новичок
*
Offline Offline

Сообщений: 41


« Ответ #2: 5 Март 2017, 13:31 »

Цитата:
А защита ячеек и листа без всяких макросов не пойдёт?
Не пойдёт.
Записан
rami
Гуру
*******
Offline Offline

Пол: Мужской
Сообщений: 2 089


MacBook Pro, LibreOffice и Apache OpenOffice


« Ответ #3: 5 Март 2017, 14:00 »

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

bsi
Новичок
*
Offline Offline

Сообщений: 41


« Ответ #4: 5 Март 2017, 14:17 »

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

Пол: Мужской
Сообщений: 2 089


MacBook Pro, LibreOffice и Apache OpenOffice


« Ответ #5: 5 Март 2017, 14:37 »

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

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

bsi
Новичок
*
Offline Offline

Сообщений: 41


« Ответ #6: 5 Март 2017, 14:44 »

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

Сообщений: 534


« Ответ #7: 5 Март 2017, 16:02 »

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

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

Записан

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

Сообщений: 41


« Ответ #8: 5 Март 2017, 16:34 »

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

* Акт шаблон — копия.ods (17.88 Кб - загружено 3 раз.)
« Последнее редактирование: 5 Март 2017, 16:41 от bsi » Записан
JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Киев
Сообщений: 2 264


Помогаю людям и компьютерам понимать друг друга


WWW
« Ответ #9: 5 Март 2017, 18:08 »

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

Почему люди считают, что возникшая у них проблема уникальна, что никто до сих пор не сталкивался с подобным, что решения до сих пор не существует?..
« Последнее редактирование: 5 Март 2017, 18:19 от JohnSUN » Записан

Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!