Добрый день! Идея заключаться в том, чтобы создать динамический макрос для заполнения таблицы товаров с характеристиками с помощью карточки товара на отдельном листе. Параметр в макросе обведённый красным должен меняться согласно изменению содержимого в ячейке "Карточка!$B$8"
Я посмотрел скрин и как раз ничего не понял. Что за стрелки и что там к чему? Два разных кода, две стрелки, но какая должна быть между ними связь? Мне непонятно ни из скрина, ни из описания. И я чуть ошибся. Надо было бы так:
Код
Range(Range("B8").Value)
это вместо [Товары!A2] В упор не понял какую роль в коде имеет проверка ячейки B4...Да и общая цель непонятна.
Сейчас в прикреплёном файле созданы 2 макроса каждый для своего листа, эти макросы выполняют задачу "двухсторонней синхронизации" ячеек те в какую бы из "синхронизированных" ячеек вы не в несли изменения это отразится в другой ячейке. Необходимо сделать взаимодействие между таблице и карточкой как в Microsoft Access
Ваша рекомендация не решила задачу (хотя возможно я ошибся с синтаксисом)
Дмитрий, для удобства понимания задачи берём наш файл образец https://www.planetaexcel.ru/bitrix/components/bitrix/forum.interface/show_file.php?fid=302425&am... Нам необходимо редактировать таблицу товаров которая находится по адресу в файле "Товары!A2:A21". Редакция должна происходить с помощью динамического окна "Карточка!B4". В этом окне должен происходить выбор ячейки из таблицы "Товары!A2:A21" по средствам переключателя, для внесения изменений.
Взаимосвязь должна происходить как в таблицах и формах Access
Надо полагать, что как-то так должен выглядеть код в листе Карточка:
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$4" Then
Application.EnableEvents = False
Application.Range(Range("B8").Value).Value = Target.Value
Application.EnableEvents = True
End If
End Sub
А в листе Товары такой код:
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Range("A1:A500"), Target) Is Nothing Then
Application.EnableEvents = False
Application.Range("Карточка!B4").Value = Target.Value
Application.EnableEvents = True
End If
End Sub
Следует сразу учесть тот момент, что данные коды не рассчитаны на изменение сразу в нескольких ячейках(например, выделение диапазона А:А и нажатия кнопки Delete или вставки чего-то сразу в диапазон ячеек).
На элемент прокрутки повесьте макрос(правая кнопка мыши -Назначить макрос), который будет изменять данные в списке. За это будет отвечать строка, по сути она будет единственной в коде: