Страницы: 1
RSS
Автоматическая смена строки при вводе данных
 
Здравствуйте,
озадачился вопросом, как макросом листа сделать автоматическую смену строки при вводе данных.

Например, человек вводит данные в строку с 1-го по 5-й столбец.
И нужно, чтобы  после ввода в последнем 5-м столбце активировалась  ячейка  1-го столбца следующей строки.Чтобы курсором обратно не возвращаться.

Попробовал вот такой штукой, но она при вводе не работает.
Код
Sub Click()
    Dim ARow As Integer, ACol As Long
    ARow = ActiveCell.Row
    ACol = ActiveCell.Column

    If ACol > 5 Then
        ARow = ARow + 1
        Cells(ARow, 1).Activate
    End If

End Sub
а если поставить курсор в ячейку и запустить - переводит.
Изменено: Chueoko - 21.04.2020 18:42:47
 
Chueoko,
день добрый. в модуль листа
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("E:E")) Is Nothing Then
Target.Offset(1, -4).Activate
End If
End Sub
Изменено: Mershik - 21.04.2020 19:28:03
Не бойтесь совершенства. Вам его не достичь.
 
Аналогичный вариант, как указано выше:
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    On Error Resume Next
    If Target.Cells.Count > 1 Then Exit Sub
    On Error GoTo 0
    If Intersect(Target, Range("A:E")) Is Nothing Then Exit Sub
    If Target.Row = 1 Then Exit Sub
    If Target.Column = 5 Then
        Target.Offset(1, -4).Select
    Else
        Target.Offset(0, 1).Select
    End If
End Sub
Изменено: ocet p - 21.04.2020 19:51:10
 
Сделайте "Умную таблицу", в ней уже предусмотрена функция перехода к первой ячейке след строки, если активна последняя ячейка текущей строки. Для этого используется клавиша "Tab"
Изменено: Михаил Лебедев - 22.04.2020 09:57:28
Всё сложное - не нужно. Всё нужное - просто /М. Т. Калашников/
Страницы: 1
Наверх