Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Макрос поиск по артикулу и замена остатков - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Макрос поиск по артикулу и замена остатков (Макросы/Sub)
Макрос поиск по артикулу и замена остатков
steck Дата: Среда, 20.05.2015, 12:54 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Здравствуйте, есть такая проблема расскажу полностью.
От поставщика приходит прайс лист с остатками каждую неделю, так вот проблема заключается в том что они нулевые позиции просто в него не включают.
Хотелось бы иметь макрос:

-который сверял бы артикулы и заменял на совпадающих артикулах цену и остаток
-а на отсутствующих артикулах в старом прайсе ставил бы остаток 0
-а если в обновленном прайсе появились новые позиции, по сравнению со старым, выделял бы их зеленым

готов заплатить за макрос, буду благодарен если кто поможет

p.s. позиций в прайсе около 2500, краткий образец во вложении.
К сообщению приложен файл: price.xlsx (10.3 Kb)
 
Ответить
СообщениеЗдравствуйте, есть такая проблема расскажу полностью.
От поставщика приходит прайс лист с остатками каждую неделю, так вот проблема заключается в том что они нулевые позиции просто в него не включают.
Хотелось бы иметь макрос:

-который сверял бы артикулы и заменял на совпадающих артикулах цену и остаток
-а на отсутствующих артикулах в старом прайсе ставил бы остаток 0
-а если в обновленном прайсе появились новые позиции, по сравнению со старым, выделял бы их зеленым

готов заплатить за макрос, буду благодарен если кто поможет

p.s. позиций в прайсе около 2500, краткий образец во вложении.

Автор - steck
Дата добавления - 20.05.2015 в 12:54
nilem Дата: Среда, 20.05.2015, 16:13 | Сообщение № 2
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
steck, привет
вот это не поможет?


Яндекс.Деньги 4100159601573
 
Ответить
Сообщениеsteck, привет
вот это не поможет?

Автор - nilem
Дата добавления - 20.05.2015 в 16:13
steck Дата: Среда, 20.05.2015, 16:23 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
steck, привет
вот это не поможет?


не чуть не то, спасибо
 
Ответить
Сообщение
steck, привет
вот это не поможет?


не чуть не то, спасибо

Автор - steck
Дата добавления - 20.05.2015 в 16:23
nilem Дата: Среда, 20.05.2015, 17:01 | Сообщение № 4
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
а что делать вот с этим:
артикул А_6354 остаток 4 цена 3500
артикул А_6354 остаток 1 цена 1164
-который сверял бы артикулы и заменял на совпадающих артикулах цену и остаток
на какие цену и остаток менять?


Яндекс.Деньги 4100159601573
 
Ответить
Сообщениеа что делать вот с этим:
артикул А_6354 остаток 4 цена 3500
артикул А_6354 остаток 1 цена 1164
-который сверял бы артикулы и заменял на совпадающих артикулах цену и остаток
на какие цену и остаток менять?

Автор - nilem
Дата добавления - 20.05.2015 в 17:01
steck Дата: Среда, 20.05.2015, 19:19 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Цену и остаток взять из обновленного прайса и заменить в старом, т.е. Получается мне стырый прайс нужно постоянно дополнять и обновлять. Извините пишу с телефона
За помощь обязательно отблагодарю, спасибо
 
Ответить
СообщениеЦену и остаток взять из обновленного прайса и заменить в старом, т.е. Получается мне стырый прайс нужно постоянно дополнять и обновлять. Извините пишу с телефона
За помощь обязательно отблагодарю, спасибо

Автор - steck
Дата добавления - 20.05.2015 в 19:19
nilem Дата: Среда, 20.05.2015, 19:27 | Сообщение № 6
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
Это понятно. Но если в старом прайсе есть два (или более) одинаковых артикула, то который из них нужно обновлять по цене и по остатку?

Сори, пишу с утюга :)))


Яндекс.Деньги 4100159601573
 
Ответить
СообщениеЭто понятно. Но если в старом прайсе есть два (или более) одинаковых артикула, то который из них нужно обновлять по цене и по остатку?

Сори, пишу с утюга :)))

Автор - nilem
Дата добавления - 20.05.2015 в 19:27
steck Дата: Среда, 20.05.2015, 21:07 | Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Не в старом нет одинаковых артикулей там 6354 и 6334
 
Ответить
СообщениеНе в старом нет одинаковых артикулей там 6354 и 6334

Автор - steck
Дата добавления - 20.05.2015 в 21:07
Skif-F Дата: Среда, 20.05.2015, 21:33 | Сообщение № 8
Группа: Проверенные
Ранг: Участник
Сообщений: 73
Репутация: 14 ±
Замечаний: 0% ±

Excel 2007, 2010, 2013, 2016
Хочу уточнить.
1. Формат данных именно такой или могут быть варианты? Если есть варианты, то как определить нужные столбцы?
2. Новый прайс подаётся в новой книге или новом листе?
3. Результат размещать в старый прайс-лист или создать новый лист?
 
Ответить
СообщениеХочу уточнить.
1. Формат данных именно такой или могут быть варианты? Если есть варианты, то как определить нужные столбцы?
2. Новый прайс подаётся в новой книге или новом листе?
3. Результат размещать в старый прайс-лист или создать новый лист?

Автор - Skif-F
Дата добавления - 20.05.2015 в 21:33
steck Дата: Среда, 20.05.2015, 21:56 | Сообщение № 9
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Хочу уточнить.
1. Формат данных именно такой или могут быть варианты? Если есть варианты, то как определить нужные столбцы?
2. Новый прайс подаётся в новой книге или новом листе?
3. Результат размещать в старый прайс-лист или создать новый лист?


1. формат данных будет именно такой как в примере, потому что я буду руками туда копировать артикулы и остатки с нового прайса, а старый прайс я буду выгружать с сайта
2. я так понимаю новый прайс идет в листе вот его пример на яндекс диске
3. по результатам можно прям заменять остатки и цены в старом прайс листе
 
Ответить
Сообщение
Хочу уточнить.
1. Формат данных именно такой или могут быть варианты? Если есть варианты, то как определить нужные столбцы?
2. Новый прайс подаётся в новой книге или новом листе?
3. Результат размещать в старый прайс-лист или создать новый лист?


1. формат данных будет именно такой как в примере, потому что я буду руками туда копировать артикулы и остатки с нового прайса, а старый прайс я буду выгружать с сайта
2. я так понимаю новый прайс идет в листе вот его пример на яндекс диске
3. по результатам можно прям заменять остатки и цены в старом прайс листе

Автор - steck
Дата добавления - 20.05.2015 в 21:56
nilem Дата: Среда, 20.05.2015, 22:14 | Сообщение № 10
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
Не в старом нет одинаковых артикулей там 6354 и 6334

не увидел сразу (утюг, блин :))
пробуйте вот так:
[vba]
Код
Sub ertert()
Dim x, y, i&, j&, k
x = Range("A3:C" & Cells(Rows.Count, 1).End(xlUp).Row).Value
With CreateObject("Scripting.Dictionary")
     .CompareMode = 1
     For i = 1 To UBound(x)    'Старый прайс
         .Item(x(i, 1)) = i
     Next i

     With Range("H3:J" & Cells(Rows.Count, 9).End(xlUp).Row)
         y = .Value
         .Interior.Color = xlNone
     End With
     For i = 1 To UBound(y)
         If .Exists(y(i, 1)) Then
             j = .Item(y(i, 1))
             ' который сверял бы артикулы и заменял на совпадающих артикулах цену и остаток
             x(j, 2) = y(i, 2): x(j, 3) = y(i, 3)
             .Remove y(i, 1)
         Else
             ' а если в обновленном прайсе появились новые позиции, по сравнению со старым, выделял бы их зеленым
             Cells(i + 2, 8).Resize(, 3).Interior.Color = vbGreen
         End If
     Next i
     For Each k In .keys
         ' а на отсутствующих артикулах в старом прайсе ставил бы остаток 0
         x(.Item(k), 2) = 0
     Next
End With
Range("A3:C3").Resize(UBound(x)).Value = x
End Sub
[/vba]
К сообщению приложен файл: _price.xlsm (24.2 Kb)


Яндекс.Деньги 4100159601573
 
Ответить
Сообщение
Не в старом нет одинаковых артикулей там 6354 и 6334

не увидел сразу (утюг, блин :))
пробуйте вот так:
[vba]
Код
Sub ertert()
Dim x, y, i&, j&, k
x = Range("A3:C" & Cells(Rows.Count, 1).End(xlUp).Row).Value
With CreateObject("Scripting.Dictionary")
     .CompareMode = 1
     For i = 1 To UBound(x)    'Старый прайс
         .Item(x(i, 1)) = i
     Next i

     With Range("H3:J" & Cells(Rows.Count, 9).End(xlUp).Row)
         y = .Value
         .Interior.Color = xlNone
     End With
     For i = 1 To UBound(y)
         If .Exists(y(i, 1)) Then
             j = .Item(y(i, 1))
             ' который сверял бы артикулы и заменял на совпадающих артикулах цену и остаток
             x(j, 2) = y(i, 2): x(j, 3) = y(i, 3)
             .Remove y(i, 1)
         Else
             ' а если в обновленном прайсе появились новые позиции, по сравнению со старым, выделял бы их зеленым
             Cells(i + 2, 8).Resize(, 3).Interior.Color = vbGreen
         End If
     Next i
     For Each k In .keys
         ' а на отсутствующих артикулах в старом прайсе ставил бы остаток 0
         x(.Item(k), 2) = 0
     Next
End With
Range("A3:C3").Resize(UBound(x)).Value = x
End Sub
[/vba]

Автор - nilem
Дата добавления - 20.05.2015 в 22:14
steck Дата: Среда, 20.05.2015, 22:21 | Сообщение № 11
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
вот примерно что я хотел увидеть, я не знаю на сколько это сложно и можно ли вообще...
ну вроде понятно расписал




Сообщение отредактировал steck - Среда, 20.05.2015, 22:23
 
Ответить
Сообщениевот примерно что я хотел увидеть, я не знаю на сколько это сложно и можно ли вообще...
ну вроде понятно расписал



Автор - steck
Дата добавления - 20.05.2015 в 22:21
steck Дата: Среда, 20.05.2015, 22:57 | Сообщение № 12
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
вс
не увидел сразу (утюг, блин :))
пробуйте вот так:


все работает спасибо, готов отблагодарить!
 
Ответить
Сообщениевс
не увидел сразу (утюг, блин :))
пробуйте вот так:


все работает спасибо, готов отблагодарить!

Автор - steck
Дата добавления - 20.05.2015 в 22:57
steck Дата: Среда, 20.05.2015, 22:59 | Сообщение № 13
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
nilem, не могу написать в ЛС, как тебя отблагодарить?
 
Ответить
Сообщениеnilem, не могу написать в ЛС, как тебя отблагодарить?

Автор - steck
Дата добавления - 20.05.2015 в 22:59
nilem Дата: Четверг, 21.05.2015, 06:58 | Сообщение № 14
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
[offtop]если есть такое жгучее желание, то вот номер на Яндексе - в подписи[/offtop]


Яндекс.Деньги 4100159601573
 
Ответить
Сообщение[offtop]если есть такое жгучее желание, то вот номер на Яндексе - в подписи[/offtop]

Автор - nilem
Дата добавления - 21.05.2015 в 06:58
krosav4ig Дата: Четверг, 21.05.2015, 11:31 | Сообщение № 15
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
еще вариант
К сообщению приложен файл: price1.xlsm (23.2 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениееще вариант

Автор - krosav4ig
Дата добавления - 21.05.2015 в 11:31
Hugo Дата: Четверг, 21.05.2015, 11:44 | Сообщение № 16
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3254
Репутация: 707 ±
Замечаний: 0% ±

2019
Я для таких работ уже давно написал программу
http://www.excelworld.ru/index/comparefiles_find/0-25
или
http://ibay.narod.ru/other/CompareFiles.Find.rar
15 пробных запусков бесплатно.
Конкретно эту работу можно сделать за 2 запуска (поменяв что куда копировать), затем по поставленным меткам вручную отфильтровать найденные/ненайденные в прайсах и поставить одним 0, другим зелёное.
И не нужно ни у кого просить макрос для изменившихся прайсов.


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
СообщениеЯ для таких работ уже давно написал программу
http://www.excelworld.ru/index/comparefiles_find/0-25
или
http://ibay.narod.ru/other/CompareFiles.Find.rar
15 пробных запусков бесплатно.
Конкретно эту работу можно сделать за 2 запуска (поменяв что куда копировать), затем по поставленным меткам вручную отфильтровать найденные/ненайденные в прайсах и поставить одним 0, другим зелёное.
И не нужно ни у кого просить макрос для изменившихся прайсов.

Автор - Hugo
Дата добавления - 21.05.2015 в 11:44
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Макрос поиск по артикулу и замена остатков (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!