Доброго времени суток, вопрос по замусоленной теме "фиксированная дата изменения соседней ячейки"
Начал изучать архив данного форума и другие ресурсы, но макросы предлогаемые имели ряд недостатков, а сцепить их в тот что нужен, ума не хватило.
Мы имеем вот такой код взят из темы
Код |
---|
Private Sub Worksheet_Change(ByVal Target As Range) Application.ScreenUpdating = False ' отключает обработку событий для исключения зацикливания или выполнения незапланированных действий For Each cell In Target 'проходим по всем измененным ячейкам If Not Intersect(cell, Range("F2:F100")) Is Nothing Then 'если изменененная ячейка попадает в диапазон A2:A100 On Error Resume Next ' Выполнение пойдет дальше, несмотря на ошибку, вероятно опасная функция If IsEmpty(Target) Then ' если цель/цели пустые либо очистили цель Target(1, -0) = Empty ' то очистит ячейку с датой, слева от цели Else With Target(1, -0) ' если цель/цели не пустая ' нужен вариант для вставки фиксированного значения к примеру "ХЗ" .Value = Now ' вписывается дата (текущая) .EntireColumn.AutoFit ' подстройка ячейки End With ' заканчивает with End If ' заканчивает 1ый if End If ' заканчивает 2ой if Next cell ' к слудующей ячейки Application.ScreenUpdating = True ' возвращает в исходное положение обработку событий для исключения зацикливания или выполнения незапланированных действий End Sub |
какой минус в моем использовании, есть таблица SMART, то есть с автозаполнением и авто расширением.
данный код написан под фиксированный диапазон, я не использую SMART таблицу обычным образом, то есть на пустой после последней строчки вводишь данные, а смарт включает автозаполнение и расширение.
у меня кнопка макроса, запускает между 2 и3 строкой вставить новую строку (с форматом смарт таблицы)
- в этом случае код ругается.
//почему так, конкретно таблица называется "TO DO", разные задачи на день месяц и тп, в идеале не хочется прокручивать листы постоянно вниз, в обще в планах сделать так что бы обработанные задания строки перемещались (автосортировались) в самый низ таблицы. а активные задания всегда оставились на глазах, при возникновении новой задачи, путем кнопки вносится задание.
Что хотелось бы, указать динамический дипазон к примеруКод |
---|
dim lRow& If Target.Cells.Count > 1 Then Exit Sub lRow = Cells(Rows.Count, "F").end(xlUp).row If Not Intersect(Target, Range("F2:F" & lRow)) Is Nothing Then |
Или - использовав имя диапазона "Tracker_list[[#Headers],[ACTION]]" эта цель мониторинга, а дату вписывать в "Tracker_list[[#Headers],[Date of completion]]" ну естественно обновлять ячейки находящихся на одной строке.( в данном случае слева от заполненной)
+так же было бы хорошо сделать, что бы макрос гулял в диапазоне столбца умной таблице, что бы не было ложных или ошибочных обработок.
+ вместо пустого значения, что бы могли написать какой нибудь фиксировнный текст .
То, что я на собирал сверху работает корректно (может это не очень граммотный пример) в условиях если мы работаем с фикс таблицей.
так же просмотрел темы:
заранее спасибо