Есть база данных в Excel. Как сделать так, чтобы измененная/редактируемая строка поднялась в верх таблицы (встала первой под шапкой таблицы, шапка закреплена, в шапке фильтр по столбцам, пример во вложенном файле)?
И чтобы все строки в таблице сортировалась по времени изменений/редактирования данных и последние актуальные данные всегда были бы в начале таблицы?
З.Ы. поискал, не нашел, горит, выручайте, надо вчера
Есть база данных в Excel. Как сделать так, чтобы измененная/редактируемая строка поднялась в верх таблицы (встала первой под шапкой таблицы, шапка закреплена, в шапке фильтр по столбцам, пример во вложенном файле)?
И чтобы все строки в таблице сортировалась по времени изменений/редактирования данных и последние актуальные данные всегда были бы в начале таблицы?
З.Ы. поискал, не нашел, горит, выручайте, надо вчера Oleg77
в прицеп файл кидал, не могу понять, почему его нет в первом сообщении? попробую отредактировать первое сообщение и туда файл покласть.
Шапка не на строк, а на столбцов: 5, 10, 15, 20 - сколько соизволят добавить-убрать - одному Богу известно. Ячейку правят (несколько человек) любую, какую посчитают нужным. Если в этой строке что-то изменили
Текст, только текст, хотя бы один символ, а не просто хотели редактировать ячейку, зашли в ячейку, вышли и Excel посчитает, что ячейка была отредактирована.
в прицеп файл кидал, не могу понять, почему его нет в первом сообщении? попробую отредактировать первое сообщение и туда файл покласть.
Шапка не на строк, а на столбцов: 5, 10, 15, 20 - сколько соизволят добавить-убрать - одному Богу известно. Ячейку правят (несколько человек) любую, какую посчитают нужным. Если в этой строке что-то изменили
Текст, только текст, хотя бы один символ, а не просто хотели редактировать ячейку, зашли в ячейку, вышли и Excel посчитает, что ячейка была отредактирована.Oleg77
Изящный вариант. Правда, если удалять значения из 2-х и более ячеек сразу - то ничего не произойдёт:
что вы имели ввиду? не совсем понял? выделить несколько ячеек и ДЕЛ? не думал об этом, возможен и такой вариант и надо, чтобы такие строки вверх таблицы поднимались...
Изящный вариант. Правда, если удалять значения из 2-х и более ячеек сразу - то ничего не произойдёт:
что вы имели ввиду? не совсем понял? выделить несколько ячеек и ДЕЛ? не думал об этом, возможен и такой вариант и надо, чтобы такие строки вверх таблицы поднимались...
а как применить такой вариант к другой таблице (вложенный файл)? Там больше столбцов и они периодически добавляются, удаляются - будет ли принцип переноса редактируемых строк в вверх страницы сохраняться если изменить количество столбцов?
а как применить такой вариант к другой таблице (вложенный файл)? Там больше столбцов и они периодически добавляются, удаляются - будет ли принцип переноса редактируемых строк в вверх страницы сохраняться если изменить количество столбцов?Oleg77
Oleg77, в модуле листа gling прописал следующий код:
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
If Target.Cells.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("A5:W100")) Is Nothing Then Range("A" & Target.Row & ":" & "W" & Target.Row).Cut Range("A4").Insert Shift:=xlDown End If
Cells(4, Target.Column).Activate
Application.ScreenUpdating = True
End Sub
[/vba] Чтобы применить код к другому документу - достаточно открыть редактор VBA и вставить этот код в нужный модуль листа.
Обратите внимание на строку: "If Not Intersect(Target, Range("A5:W100")) Is Nothing Then". Красным отмечена область, в которой проверяются изменения. Поработав с ней вы можете распространить действие кода на нужное количество строк и столбцов.
Oleg77, в модуле листа gling прописал следующий код:
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
If Target.Cells.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("A5:W100")) Is Nothing Then Range("A" & Target.Row & ":" & "W" & Target.Row).Cut Range("A4").Insert Shift:=xlDown End If
Cells(4, Target.Column).Activate
Application.ScreenUpdating = True
End Sub
[/vba] Чтобы применить код к другому документу - достаточно открыть редактор VBA и вставить этот код в нужный модуль листа.
Обратите внимание на строку: "If Not Intersect(Target, Range("A5:W100")) Is Nothing Then". Красным отмечена область, в которой проверяются изменения. Поработав с ней вы можете распространить действие кода на нужное количество строк и столбцов.Rioran
Роман, Москва, voronov_rv@mail.ru Яндекс-Деньги: 41001312674279