Страницы: 1
RSS
Динамический макрос связывающий ячейки по условию
 
Добрый день!
Идея заключаться в том, чтобы создать динамический макрос для заполнения таблицы товаров с характеристиками с помощью карточки товара на отдельном листе.
Параметр в макросе обведённый красным должен меняться согласно изменению содержимого в ячейке "Карточка!$B$8"

Файл прикрепляю
Ссылка на скрин http://skrinshoter.ru/s/180718/97y3vzld
 
Ничего не понял, но возможно это:
Код
Range("B8")
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
а как правильно вписать это в код макроса? (Посмотрите скрин в сообщении)
 
Я посмотрел скрин и как раз ничего не понял. Что за стрелки и что там к чему? Два разных кода, две стрелки, но какая должна быть между ними связь? Мне непонятно ни из скрина, ни из описания.
И я чуть ошибся. Надо было бы так:
Код
Range(Range("B8").Value)
это вместо [Товары!A2]
В упор не понял какую роль в коде имеет проверка ячейки B4...Да и общая цель непонятна.
Изменено: Дмитрий(The_Prist) Щербаков - 18.07.2018 16:34:39
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Сейчас в прикреплёном файле созданы 2 макроса каждый для своего листа, эти макросы выполняют задачу "двухсторонней синхронизации" ячеек те в какую бы из "синхронизированных" ячеек вы не в несли изменения это отразится в другой ячейке.
Необходимо сделать взаимодействие между таблице и карточкой как в Microsoft Access

Ваша рекомендация не решила задачу (хотя возможно я ошибся с синтаксисом)
Изменено: Agro_soft - 18.07.2018 22:55:56
 
Цитата
Agro_soft написал:
двухсторонней синхронизации
Опишите своими словами какие ячейки должны быть взаимосвязаны и что в них должно быть записано и в какой момент. Пока задача понятна только Вам.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Дмитрий, для удобства понимания задачи берём наш файл образец 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 или вставки чего-то сразу в диапазон ячеек).
Изменено: Дмитрий(The_Prist) Щербаков - 18.07.2018 18:29:39
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Дмитрий(The_Prist) Щербаков, Спасибо! Дсё работает!  А есть возможность у Excel обновлять данные пролистывании в ячейке B4 на странице карточка ?
 
На элемент прокрутки повесьте макрос(правая кнопка мыши -Назначить макрос), который будет изменять данные в списке. За это будет отвечать строка, по сути она будет единственной в коде:
Код
Application.Range(Range("B8").Value).Value = Target.Value
только смысл неясен - ведь при пролистывании никаких изменений ни в списке, ни в ячейках не происходит - данные идентичны.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Страницы: 1
Наверх