Здравствуйте, есть такая проблема расскажу полностью. От поставщика приходит прайс лист с остатками каждую неделю, так вот проблема заключается в том что они нулевые позиции просто в него не включают. Хотелось бы иметь макрос:
-который сверял бы артикулы и заменял на совпадающих артикулах цену и остаток -а на отсутствующих артикулах в старом прайсе ставил бы остаток 0 -а если в обновленном прайсе появились новые позиции, по сравнению со старым, выделял бы их зеленым
готов заплатить за макрос, буду благодарен если кто поможет
p.s. позиций в прайсе около 2500, краткий образец во вложении.
Здравствуйте, есть такая проблема расскажу полностью. От поставщика приходит прайс лист с остатками каждую неделю, так вот проблема заключается в том что они нулевые позиции просто в него не включают. Хотелось бы иметь макрос:
-который сверял бы артикулы и заменял на совпадающих артикулах цену и остаток -а на отсутствующих артикулах в старом прайсе ставил бы остаток 0 -а если в обновленном прайсе появились новые позиции, по сравнению со старым, выделял бы их зеленым
готов заплатить за макрос, буду благодарен если кто поможет
p.s. позиций в прайсе около 2500, краткий образец во вложении.steck
а что делать вот с этим: артикул А_6354 остаток 4 цена 3500 артикул А_6354 остаток 1 цена 1164 -который сверял бы артикулы и заменял на совпадающих артикулах цену и остаток на какие цену и остаток менять?
а что делать вот с этим: артикул А_6354 остаток 4 цена 3500 артикул А_6354 остаток 1 цена 1164 -который сверял бы артикулы и заменял на совпадающих артикулах цену и остаток на какие цену и остаток менять?nilem
Цену и остаток взять из обновленного прайса и заменить в старом, т.е. Получается мне стырый прайс нужно постоянно дополнять и обновлять. Извините пишу с телефона За помощь обязательно отблагодарю, спасибо
Цену и остаток взять из обновленного прайса и заменить в старом, т.е. Получается мне стырый прайс нужно постоянно дополнять и обновлять. Извините пишу с телефона За помощь обязательно отблагодарю, спасибоsteck
Хочу уточнить. 1. Формат данных именно такой или могут быть варианты? Если есть варианты, то как определить нужные столбцы? 2. Новый прайс подаётся в новой книге или новом листе? 3. Результат размещать в старый прайс-лист или создать новый лист?
Хочу уточнить. 1. Формат данных именно такой или могут быть варианты? Если есть варианты, то как определить нужные столбцы? 2. Новый прайс подаётся в новой книге или новом листе? 3. Результат размещать в старый прайс-лист или создать новый лист?Skif-F
Хочу уточнить. 1. Формат данных именно такой или могут быть варианты? Если есть варианты, то как определить нужные столбцы? 2. Новый прайс подаётся в новой книге или новом листе? 3. Результат размещать в старый прайс-лист или создать новый лист?
1. формат данных будет именно такой как в примере, потому что я буду руками туда копировать артикулы и остатки с нового прайса, а старый прайс я буду выгружать с сайта 2. я так понимаю новый прайс идет в листе вот его пример на яндекс диске 3. по результатам можно прям заменять остатки и цены в старом прайс листе
Хочу уточнить. 1. Формат данных именно такой или могут быть варианты? Если есть варианты, то как определить нужные столбцы? 2. Новый прайс подаётся в новой книге или новом листе? 3. Результат размещать в старый прайс-лист или создать новый лист?
1. формат данных будет именно такой как в примере, потому что я буду руками туда копировать артикулы и остатки с нового прайса, а старый прайс я буду выгружать с сайта 2. я так понимаю новый прайс идет в листе вот его пример на яндекс диске 3. по результатам можно прям заменять остатки и цены в старом прайс листеsteck
Не в старом нет одинаковых артикулей там 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
Не в старом нет одинаковых артикулей там 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
Я для таких работ уже давно написал программу http://www.excelworld.ru/index/comparefiles_find/0-25 или http://ibay.narod.ru/other/CompareFiles.Find.rar 15 пробных запусков бесплатно. Конкретно эту работу можно сделать за 2 запуска (поменяв что куда копировать), затем по поставленным меткам вручную отфильтровать найденные/ненайденные в прайсах и поставить одним 0, другим зелёное. И не нужно ни у кого просить макрос для изменившихся прайсов.
Я для таких работ уже давно написал программу http://www.excelworld.ru/index/comparefiles_find/0-25 или http://ibay.narod.ru/other/CompareFiles.Find.rar 15 пробных запусков бесплатно. Конкретно эту работу можно сделать за 2 запуска (поменяв что куда копировать), затем по поставленным меткам вручную отфильтровать найденные/ненайденные в прайсах и поставить одним 0, другим зелёное. И не нужно ни у кого просить макрос для изменившихся прайсов.Hugo