Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.12.2010, 15:29   #11
nilem
Форумчанин
 
Регистрация: 25.04.2010
Сообщений: 616
По умолчанию

Цитата:
Сообщение от Vlad.V Посмотреть сообщение
Чтоб перенисти этот макрос в другой прайс, нужно просто скопировать скрипт?
Да, можно скопировать макрос в стандартный модуль другой книги или скопировать сразу весь модуль: открыть две книги, и потом в VBE (Alt+F11) перетащить мышкой Module1 из одной книги в другую.
Вот в этой строке:
Код:
[f2].Formula = "=IFERROR(VLOOKUP(B2,'" & ThisWorkbook.path & "\[KPI.xlsx]Лист1'!$A$2:$G$2000,7,0),"""")"
записаны имя книги, имя листа и диапазон, из которых берутся данные.
nilem вне форума Ответить с цитированием
Старый 02.01.2011, 15:50   #12
Vlad.V
Пользователь
 
Регистрация: 24.12.2010
Сообщений: 15
По умолчанию

Цитата:
Сообщение от nilem Посмотреть сообщение
Да, можно скопировать макрос в стандартный модуль другой книги или скопировать сразу весь модуль: открыть две книги, и потом в VBE (Alt+F11) перетащить мышкой Module1 из одной книги в другую.
Вот в этой строке:
Код:
[f2].Formula = "=IFERROR(VLOOKUP(B2,'" & ThisWorkbook.path & "\[KPI.xlsx]Лист1'!$A$2:$G$2000,7,0),"""")"
записаны имя книги, имя листа и диапазон, из которых берутся данные.
С НОВЫМ ГОДОМ! Удачи, здоровья и легких денег!!

Ты не мог бы, если не сложно описать каждую строку, что она делает.
Хотелось бы понять логику этого скрипта, т.е. я ее понимаю, но не совсем. Вот например я хотел перенести вывод цифр в другую колонку, вроде все заменил, но все равно какая-то хрень выходит...
Vlad.V вне форума Ответить с цитированием
Старый 02.01.2011, 16:56   #13
nilem
Форумчанин
 
Регистрация: 25.04.2010
Сообщений: 616
По умолчанию

Вот, попробовал расписать.
Вложения
Тип файла: zip мой прайс.zip (19.5 Кб, 9 просмотров)
nilem вне форума Ответить с цитированием
Старый 02.01.2011, 17:21   #14
Vlad.V
Пользователь
 
Регистрация: 24.12.2010
Сообщений: 15
По умолчанию

Спасибо! Особенно ломал голову над этим:
Цитата:
lr = Cells(Rows.Count, 2).End(xlUp).Row
Немог понять что оно делает.
Vlad.V вне форума Ответить с цитированием
Старый 02.01.2011, 19:26   #15
Vlad.V
Пользователь
 
Регистрация: 24.12.2010
Сообщений: 15
По умолчанию

У меня снова проблема. Перенес скрипт в свой парйс, чуть подогнал под себя. Вроде все ок, но когда скрипт выполняется, цены выводятся через одну, а то и через 5 позиций, что это может быть?
Вот что я исправил:
Цитата:
[F4].Formula = "=IFERROR(VLOOKUP(B4,'" & ThisWorkbook.path & "\[KPI.xls]Лист1'!$A$4:$G$70000,7,0),"""")"

[F4].AutoFill Destination:=Range("F4:F" & lr)

x = Range("E4:E" & lr).Value: y = Range("F4:F" & lr).Value

Columns("F").Delete: [e4].Resize(lr - 1).Value = y
Спасибо!
Vlad.V вне форума Ответить с цитированием
Старый 02.01.2011, 19:50   #16
nilem
Форумчанин
 
Регистрация: 25.04.2010
Сообщений: 616
По умолчанию

Цитата:
Сообщение от Vlad.V Посмотреть сообщение
...цены выводятся через одну, а то и через 5 позиций, что это может быть?
Значит в файле "мой прайс" есть такие коды поставщиков, которых нет в файле "KPI". ВПР не находит коды и оставляет пустую строку.
Кстати, Вы пишете KPI.xls - у вас же Е2007, должно быть KPI.xlsx

И еще вместо 1 напишите 3 в этих строках:
Cells(i + 3, 5).Interior.ColorIndex = 40
Cells(i + 3, 5).Interior.ColorIndex = 35
Columns("F").Delete: [e4].Resize(lr - 3).Value = y

Последний раз редактировалось nilem; 02.01.2011 в 19:58.
nilem вне форума Ответить с цитированием
Старый 02.01.2011, 20:10   #17
Vlad.V
Пользователь
 
Регистрация: 24.12.2010
Сообщений: 15
По умолчанию

Фишка в том, что все кода есть и там и там. Проверял, через поиск, есть и кода и цены.
Прайс поставщика, тот который KPI, он идет xls., это я тестовый сохранял в xlsx.
Vlad.V вне форума Ответить с цитированием
Старый 02.01.2011, 20:17   #18
nilem
Форумчанин
 
Регистрация: 25.04.2010
Сообщений: 616
По умолчанию

Может, эти коды в текстовом формате? Можете показать?
nilem вне форума Ответить с цитированием
Старый 02.01.2011, 20:42   #19
Vlad.V
Пользователь
 
Регистрация: 24.12.2010
Сообщений: 15
По умолчанию

решил проблемму! Да, Вы правы, числа были в тексте, но это особо на полет не влияло. Я убрал путь к книге тут:
Цитата:
[F4].Formula = "=IFERROR(VLOOKUP(B4,'[KPI.xls]Лист1!$A$4:$G$70000,7,0),"""")"
И еще попробовал отрыть файл KPI перед запуском скрипта, все заработало!
Vlad.V вне форума Ответить с цитированием
Старый 06.01.2011, 21:19   #20
Vlad.V
Пользователь
 
Регистрация: 24.12.2010
Сообщений: 15
По умолчанию

Всех с праздничком! Может еще кто подскажет, возможно ли вывести два массива с полученного прайса? Это нужно для обновления цен на сайте, нужно вывести артикул товара и цену, т.е. сверить артикулы и заменить цену если они разные.
Вот так выглядит xml:
Цитата:
<channel>
<item>
<product_sku>as003</product_sku>
<product_price>122.00000</product_price>
</item>
....
</channel>
Vlad.V вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
такое вообще возможно? selestenka Помощь студентам 1 15.10.2010 09:46
Оказывается, возможно и такое... Alex Cones Свободное общение 15 06.11.2009 17:55
Возможно реализовать такое Devourer12345 Microsoft Office Access 10 15.08.2008 08:08