Нужен макрос для автоматической прокрутки строк, до строки с определенным названием, в определенном столбце. Например есть статус у различных заказов. Есть заказы которые отгружены и в ячейках столбца "А" текст "отгружено". Чтобы каждый раз не скролить к последней строке с ячейкой "отгружено", нужно чтобы при запуске файла отображалась последняя строка с такими данными, учитывая что есть заголовки которые не должны прокручиваться.
Если забыть о прокручивании то нужно просто по кнопке встать на последнюю строку,, где в определенном столбце есть определенное слово, так? Это делается реверсным поиском range.find c параметром searchdirection xlprevious от первой ячейки диаразона .
Sub Macros()
Dim lastRow As Long
Dim searchText As String
Dim searchColumn As String
Dim headerRows As Integer
' Текст и столбец для поиска
searchText = "отгружено"
searchColumn = "A"
headerRows = 1
lastRow = Cells(Rows.Count, searchColumn).End(xlUp).Row
Dim i As Long
For i = lastRow To 1 Step -1
If LCase(Cells(i, searchColumn).Value) = LCase(searchText) Then
ActiveWindow.ScrollRow = i
Cells(i, searchColumn).Select
Exit Sub
End If
Next i
MsgBox "Строка с текстом '" & searchText & "' столбец не содержит" & searchColumn
End Sub
val_kaz, ищете ячейку и потом Application.GoTo Range("АдресЯчейки"), True
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
vilambo, Отлично все работает! А если усложнить задачу. Прокрутка начинает действовать если к примеру когда больше 25 строк заполнено. И при изменении данных , при добавлении строки с "отгружено" , на одну строку скролл вниз
Dim i As Long For i = lastRow To 1 Step -1 If LCase(Cells(i, searchColumn).Value) = LCase(searchText) Then ActiveWindow.ScrollRow = i Cells(i, searchColumn).Select Exit Sub End If Next i
MsgBox "Строка с текстом '" & searchText & "' столбец не содержит" & searchColumn End Sub
Отлично все работает! А если усложнить задачу. Прокрутка должна работать при запуске файла и при изменении данных. Сейчас я запускаю с кнопки, а как сделать чтобы без кнопки в автоматическом режиме?