Nordheim, Мои аппетиты растут теперь с каждым днем)
Не могу решить один момент в макросе. Поняла, что копирование из попределенной ячейки в ячейку не очень правильно в моем случае, так как номера ячеек могут менятся. Как можно добавить привязку к столбцу с id номерами товаров?
Логика думаю должна быть такая: Если в "Книге 2", "лист 1" в столбце "A" есть значение "326" значит в эту строку в столбец "Q"(тобишь в ячейку) поместить значение из "Книга1", "лист 2", ячейка "M23"(заданная мной).
Нашла вот такой кусок кода, но но уверена что он подойдет.
Код
for each n in Range("A:A")
if n=326 Then Value = p2.[N19].Value
If n <> 326 THEN EXIT SUB
next n
И как это все интегрировать в уже имеющийся скрипт?
Код
Option Explicit
Sub Цены()
Dim p1 As Worksheet, p2 As Worksheet
Set p1 = Workbooks("price.xlsm").Worksheets("Профнастил.")
With GetObject("C:\Users\A.Maria\Desktop\TEST\products1.xlsx").Worksheets("Products")
.[Q83].Value = p1.[P18].Value
.[Q88].Value = p1.[P18].Value
Windows(.Parent.Name).Visible = True
.Parent.Close 1
End With
Set p2 = Workbooks("price.xlsm").Worksheets("Металлочерепица RAUNI")
With GetObject("C:\Users\A.Maria\Desktop\TEST\products1.xlsx").Worksheets("Products")
.[Q2].Value = p2.[N19].Value
.[Q7].Value = p2.[N19].Value
Windows(.Parent.Name).Visible = True
.Parent.Close 1
End With
End Sub
yozhik написал: Если копируемые ячейки логически связать никак нельзя по каким-нибудь признакам, чтоб зациклить копирование, размножайте строчку 5 или 6
Логически можно связать только по наименованию и типу но это наверное будет сложнее сделать. С регулярными выражениями я не сильно дружу.
я не вижу, как выложенные примеры вообще связаны с кодом.
Код
.[Q83].Value = p1.[P18].Value
вот это, и подобные этой записи, вообще в данных книгах смысла по-моему не имеют, о чем Вы, в принципе и пишите
Цитата
Maria12345 написал: Если в "Книге 2", "лист 1" в столбце "A" есть значение "326" значит в эту строку в столбец "Q"(тобишь в ячейку) поместить значение из "Книга1", "лист 2", ячейка "M23"(заданная мной).
в коде в лучшем случае, самая близкая ячейка к столбцу М - столбец N
Код
.[Q2].Value = p2.[N19].Value
а он у Вас пустой.
Цитата
Maria12345 написал: связать только по наименованию и типу
а это у Вас где? в одной книге Наименование - Premium, в другой - Водосточные системы и саморезы. Честно пытался найти хоть малейшие совпадения. Не получилось
yozhik написал: а это у Вас где?в одной книге Наименование - Premium, в другой - Водосточные системы и саморезы. Честно пытался найти хоть малейшие совпадения. Не получилось
Выложенные книги - это примеры структуры документа а не реальный пример. Полные варианты книг я могу только по ссылке предоставить вот Ссылка если вы можете по ссылкам ходить, а так ограничение не позволяют.
Maria12345 написал: Выложенные книги - это примеры структуры
я о чем и говорю, что структура выложенных явно отличается от реальных. Примеры должены полностью отражать структуры. Не обязательно целиком книги, но столбцы-то хотя бы должны соответствовать реальным, откуда Вы планируете брать данные. Объясните тогда на Ваших выложенных примерах, что и куда должно попасть. Стоимость с книги1 из столбца М в книгу2 в столбец Q? А в какую строчку? Где в книге2 хоть одно значение, в любом столбце, которое есть где-то в книге1? Мы ж в книгу2 переносим?
yozhik написал: Объясните тогда на Ваших выложенных примерах, что и куда должно попасть. Стоимость с книги1 из столбца М в книгу2 в столбец Q? А в какую строчку? Где в книге2 хоть одно значение, в любом столбце, которое есть где-то в книге1? Мы ж в книгу2 переносим?
Конкретный пример на скинутых книгах будет такой: Цена с книги1 из 1листа с ячейки m4 должна попасть в книгу2, лист1 в столбец Q а строка должна найтись сама из указаного мной id в первом столбце A(product id) В книге2 все значения в столбце Q а их аналоги будут раскиданы по книге1 на разных листах в разных столбцах, в данном примере в столбце M. Да, переносим в книгу2
В ручную, к примеру я нахожу в книге2 в столбце product_id код товара и указываю его в макросе. Макрос ищет строку с этим кодом, выбирает столбец Q и меняет в ячейке цену на другую из книги1 из указаной мной так же вручную ячейки.
Maria12345, Дело в том , что вы хотите что бы все сделали за вас, а как было выше сказано аппетиты выросли, м.б. вам стоит обратиться сюда, там реализуют все ваши хотелки, которые нарастают как снежный ком. А то получается как во сказке про золотую рыбку: 1) сначала просто перенести из книги в книгу 2) потом из разных книг в разные книги 3) теперь еще и выбор ячеек прикрутить В итоге постарайтесь не остаться, как в сказке. Попробуйте начать немного изучать Excel да и VBA в вашем случае не помешал бы. Как-то так.
Nordheim, Ни в коем случае) За меня ничего делать не надо, мне нужна только подсказка профессионалов, что бы сделать это быстро.
Код выбора ячеек я написала:
Код
for each n in Range("A:A")
if n=326 Then Value = p2.[N19].Value
If n <> 326 THEN EXIT SUB
next n
Скажите только, что в нем не так и как его запихнуть в уже готовый:
Код
Option Explicit
Sub Цены()
Dim p1 As Worksheet, p2 As Worksheet
Set p1 = Workbooks("price.xlsm").Worksheets("Профнастил.")
With GetObject("C:\Users\A.Maria\Desktop\TEST\products1.xlsx").Worksheets("Products")
.[Q83].Value = p1.[P18].Value
.[Q88].Value = p1.[P18].Value
Windows(.Parent.Name).Visible = True
.Parent.Close 1
End With
Set p2 = Workbooks("price.xlsm").Worksheets("Металлочерепица RAUNI")
With GetObject("C:\Users\A.Maria\Desktop\TEST\products1.xlsx").Worksheets("Products")
.[Q2].Value = p2.[N19].Value
.[Q7].Value = p2.[N19].Value
Windows(.Parent.Name).Visible = True
.Parent.Close 1
End With
End Sub
Обещаю, что буду учить vba и excel) Извините если много прошу.
Дело в том , что не зная даже азов вы в коде просто будете "плавать", не зная, что и откуда берется. Ваша хотелка м.б. реализована либо с применением InputBox либо через форму с элементами в которых будут указаны адреса (диапазоны), а это уже совершенно другой код да и время больше займет. Если честно, мне уже не понятно, что у вас и куда должно переноситься. А так как четкого понимания задачи нет, то профессионалы не подтягиваются к теме, а я всего лишь любитель, который даже с Excel не работает
"Все гениальное просто, а все простое гениально!!!"
Nordheim, Я уже и сама начинаю запутыватся) Зачем мне InputBox либо форма, если я знаю в каком диапазоне находятся нужные мне ячейки и буду их вбивать сама в код? Вопрос лишь в их поиске