Страницы: 1
RSS
Задержка движения курсора
 
Здравствуйте.  
Подскажите, как сделать так, чтобы в текущей строке после внесения данных в определенную ячейку, курсор оставался бы в ячейке 2-3 сек., а потом автоматически перемещался бы в первую ячеку текущей строки.  Объяснил, наверное, сумбурно. Если будут вопросы - объясню по-подробнее.  
Спасибо.
 
грубая наброска  
 
Sub ToLeft03()  
Selection.End(xlToLeft).Select  
myTime = Now + TimeValue("00:00:03")  
Application.OnTime myTime, "ToLeft03"  
End Sub
 
А что такое "курсор"?  
 
Вы под курсором подразумеваете выделенную ячейку, или стрелку мыши?  
Если надо переместить выделение с одной ячейки на другую - тогда всё просто, пример Вам уже дали.  
 
Если же надо затормозить на 3 секунды мышиный курсор, а потом плавно его переместить в соседнюю ячейку, - тут всё намного сложнее, хотя реально.
 
Единственное надо определить начало периода "после внесения данных в ячейку" :)  
Я не знаю что это такое и как и от чего его считать. Ну ввел пару символов - открыл варежку, и через 3 сек. надо снова идти в эту ячейку и вводить правильные данные...  
Игорь67
 
Началом периода можно считать, когда закончится ввод данных в конкретную ячейку и активной становится следующая ячейка.
 
А зачем тогда задержка в секунды?  
Среди контролируемых событий листа есть Изменение ячейки.  
Ставим макрос на это событие и все/  
Вот примерно так выглядит код, где 99% украшательство  
а cells(Target.row, "A").select  переводит "курсор" в столбец А.  
 
Private Sub Worksheet_Change(ByVal Target As Range)  
   If Target.Cells.Count > 1 Then Exit Sub  
       If Not Intersect(Target, Range("AG2:AG100")) Is Nothing Then  
           'отключаем тормоза  
   With Application  
       .ScreenUpdating = False 'обновление экрана  
       .DisplayAlerts = False 'системные предупреждения  
       .EnableEvents = False 'контроль событий  
       .Calculation = xlManual 'автоматический пересчет формул  
 
             
        cells(Target.row, "A").select    
         
'включаем все, что отключали  
       .Calculation = xlAutomatic  '  
       .EnableEvents = True  '  
       .DisplayAlerts = True  '  
       .ScreenUpdating = True '  
End With  
   
End If  
 
End Sub
 
Игорь, я задумался над тем в каком файле строка "cells(Target.row, "A").select" может тормозить так, что потребуется все это отключать/включать  
О_о  
 
Подозреваю, что задача сложнее чем кажется.  
Автор, вероятно имеет в виду, что если юзер в течении 3 сек. ничего не нажал, то надо передвинуть влево, если нажал, то не надо.  
Серж, так, не?
Bite my shiny metal ass!      
 
Лузер™, уж не думаете Вы что я все это писал ради этой одной строки:)  
Просто копировал Саб и энд саб, и это все было в промежутке между:)
 
Разумеется, я догадался, что это злой зверь копипаст. :)  
Просто выглядит нелепо :)
Bite my shiny metal ass!      
 
Лузер™ прав:"...если юзер в течении 3 сек. ничего не нажал, то надо передвинуть влево, если нажал, то не надо".
 
Предлагаю добавить еще звуковой сигнал, дабы уснувший юзер по истечению заданного срока продолжил ввод...
 
Вроде был разговор о передвижении курсора в первую ячейку (А1) текущей строки  через  2-3 сек., если ничего не нажато. Если было нажатие в другой ячейке, то передвигать курсор не надо.
 
А как сделать так, чтобы после перехода курсора в первую ячейку действие макроса заканчивалось.  
Спасибо.
 
Все работает как надо.  
Огромное спасибо всем. Отдельное спасибо The_Prist.
Страницы: 1
Читают тему
Наверх