Здравствуйте, уважаемые форумчане! Пожалуйста, помогите решить проблему. Похожие темки почитала, но чуть не то.... Есть таблица, куда заносятся счета и планируемые платежи. На листе 1 по транспорту и таможне сроки оплаты в столбце J привязаны к ячейкам столбца N на листе ИМПОРТ. Можно ли сделать, чтобы при внесении изменений в ячейки столбца N на листе ИМПОРТ те ячейки столбца J листа 1, в которых поменялись из-за этого значения, окрасились бы в зеленый цвет? В остальных ячейках заливка отсутствует.
Никто не знает? Или это вообще невозможно сделать? Может быть, можно хотя бы выделить все зависимые ячейки, которые зависят от конкретной ячейки? Стандартными средствами excel это можно сделать только для одного листа (т.е. и исходная и зависимые ячейки находятся на одном листе), а у меня все зависимые ячейки находятся на другом листе...
Dim r#
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target = "" Then Exit Sub
If Not Intersect(Target, Range("N2:N28")) Is Nothing Then
If Target <> r Then
adres = ActiveSheet.Name & "!" & Target.Address(0, 0)
With Sheets("1")
.Range("J8:J88").Interior.ColorIndex = None
Set Rng = .Range("J8:J88").Find(adres)
If Not Rng Is Nothing Then
Rng.Interior.ColorIndex = 4
a = Rng.Address '---запоминаем адрес первой найденной ячейки
'---цикл по следующим найденным ячейкам
Do
Set Rng = .Range("J8:J88").FindNext(Rng)
If Rng.Address = a Then Exit Do
Rng.Interior.ColorIndex = 4
Loop
End If
End With
End If
End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("N2:N28")) Is Nothing Then r = Target.Value
End Sub
у меня красит. вы случаем отслеживание случайно не отключили? поставте в коде точку останова и увидите заходит ли выполнение туда ну по F8 можете проверить почему не красит. П.С. макрос ищет только относительную ссылку (A1) если будет хоть один доллар то не найдет.
V, я вообще понятия не имела про этот режим.... (темные мы люди). По порядку: у меня стоит Microsoft Office Home and Business 2019. Как оказалось, чтобы включить в нем режим отслеживания, нужно столько операций проделать... Преобразовала таблицы в диапазоны, включила общий доступ к книге, включила отслеживание... После этого появилось предупреждение, что этот файл содержит макрос, который при включенном общем доступе невозможно посмотреть и изменить... В итоге - в ячейках вижу комментарии о сделанных изменениях, при попытке просмотреть исходный код появляется сообщение "Project is unviewable". При нажатии F8 появляется сообщение "Run-time error '13 Type mismatch. Как поставить в коде точку основа (и что это вообще такое) не знаю.. Ссылки все относительные, без $. Что я делаю не так? Куда теперь лезть?
для просмотра кода жмем Alt+F11 находясь на листе Импорт. ТОчка остонова это когда откроется окно VBA леве кода есть поле, если ПКМ по нему на против строчки кода - появится красная точка это она и есть. Во время срабатывания кода он будет идти по строчкам и остановится на строчке где стоит точка. F8 нужно что бы дальше идти по коду пошагово.
Очень сильно извиняюсь, я кажется совсем затупила...даже стыдно... Сейчас дома попробовала опять с нуля (дома старенький 2007 эксель) и тут "разглядела", что в формулах есть-таки $$ - там где идет расчет с учетом праздничных дней, а я про них забыла... ввела их через именованный диапазон и все закрасилось! И никакой общий доступ не включала! Не знаю, как завтра на работе встанет на том экселе, но надеюсь что причина только в этом была (не считая моей дырявой головы). Спасибо всем, кто терпеливо отвечает на тупые вопросы!!! Если все заработает, будет очередное облегчение для глаз и экономия времени.
А я уже там поправила - увеличила до 500 строк, больше никогда не бывает. Спасибо. Меня другой момент заинтересовал - когда нужно было сегодня удалить с листа Импорт два верхних инвойса, которые оплатили, макрос выдал предупреждение об ошибке. Подсветил желтым вот эту строку:
Код
If Not Intersect(Target, Range("N2:N28"))
Пришлось нажать End, после чего позволил удалить. Вроде бы все продолжает работать. Видимо ругался, что лезу в его рабочий диапазон.
Help!!! Что-то сломалось... Я удалила некоторые строки на листе Импорт, еще по некоторым произошло перемещение из плановых в верхнюю часть (т.к. появились инвойсы под эти заказы). И все....макрос не работает. Даже если просто выделить целиком какую-то строку, появляется окно с сообщением об ошибке, при открытии Разработчика желтым подсвечено r = Target.Value и при наведении курсора на r появляется значение r=43654 Что это значит? И как мне менять данные (удалять, добавлять строки на листе Импорт), чтобы не было ошибок??
Опять я накосячила, вроде прикрепляла файл, а его нет... Книга 1 - вроде работает, Книга 1-копия - уже нет - вообще ничего не удаляла, просто выделила одну из строк в импорте и сразу ошибка...
Всем здравствуйте! Я частично разобралась в своей "проблеме". Макрос теперь работает (оказалось, что даже при задании имени для диапазона нельзя использовать $ в ссылке). Так что он работает, но... Если мне нужно на листе Импорт провести какие-то манипуляции (заново отсортировать строки, что-то удалить или добавить), которые требуют выделения мышью всей строки, сразу появляется сообщение об ошибке (скрины прикрепляю). Как выяснилось, на дальнейшую работу макроса это не влияет, но это очень мешает работе - нужно постоянно нажимать End, чтобы это окно закрылось. И второй вопрос, еще более важный для меня - макрос выделяет цветом только самое последнее изменение. А у меня процесс внесения этих изменений следующий - раз в неделю мне присылают отчет с новыми данными и я должна внести корректировки в свой файл. И на листе Импорт у меня будет очень много изменений дат в столбце N и нужно, чтобы на листе 1 все ячейки, связанные с этими изменившимися данными, были выделены цветом. А макрос сейчас работает по циклу, когда каждое следующее изменение "стирает" предыдущее. Можно ли с этим что-то сделать или такая задача невыполнима? В таком виде, как сейчас, он для меня, получается, бесполезен, увы...