Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

В случае, когда поставщик вам дает скидки на товар, при этом часть скидок идет от оптовой цены, а часть скидок от розничной цены (РРЦ), такие скидки применяются при помощи макроса. При этом в макросе задаются только скидки от розничной цены, а от оптовой вводятся как обычные скидки во вкладке Настройка прайса. Для работы макроса необходимо, чтобы в прайсе был Бренд в отдельной колонке, скидки применяются по названию бренда.

Expand
titleМакрос в свернутом виде
Code Block
languagevb
Set BrandDisc = New Collection

'Скидки от розничной цены
'бренд укзаывать большими буквами!!
'дробную часть скидки через точку         
BrandDisc.Add Key:="ABAT", Item:=26.24
BrandDisc.Add Key:="ATESY", Item:=29.5
BrandDisc.Add Key:="МХМ", Item:=30
BrandDisc.Add Key:="CARBOMA", Item:=30 
BrandDisc.Add Key:="ПОЛЮС", Item:=30
BrandDisc.Add Key:="POLAIR", Item:=31
BrandDisc.Add Key:="RADA", Item:=30
BrandDisc.Add Key:="HICOLD", Item:=25
BrandDisc.Add Key:="ГОЛЬФСТРИМ", Item:=31
BrandDisc.Add Key:="VIATTO", Item:=14.08
BrandDisc.Add Key:="СНЕЖ", Item:=20.74
BrandDisc.Add Key:="DERBY", Item:=16.5
BrandDisc.Add Key:="GELLAR", Item:=26.5
BrandDisc.Add Key:="FROSTOR", Item:=26.5

'колонка опт (диллерская цена)
COL_PRICE_DILER = 20

'колонка РРЦ (розничная цена)
COL_PRICE_ROZN = 21

'колонка в которой указан Бренд
COL_BRAND = 13

'лист на котором применять макрос
SHEET_IDX = 1

'строка с которой начинаются товары
ROW_START = 6

Set sht = Sheets(SHEET_IDX)                   
row_count = sht.UsedRange.Rows.Count

On Error Resume Next
For i = ROW_START To row_count
    brnd = UCase(Trim(sht.Cells(i, COL_BRAND).Value))
    
    If brnd <> "" Then
        brnd_disc = 0
        brnd_disc = BrandDisc.Item(brnd)
        
        If brnd_disc > 0 Then         
            sht.Cells(i, COL_PRICE_DILER).Value = sht.Cells(i, COL_PRICE_ROZN).Value - _      
                sht.Cells(i, COL_PRICE_ROZN).Value * brnd_disc / 100
        End If
        
    End If
Next i

Данный макрос вставляется в настройку прайса, как написано здесь Настройка прайса: макросы

В макросе вам нужно изменить (указать в соответствии с вашим прайсом) следующие значения:

COL_PRICE_DILER - номер колонки с оптовой ценой

COL_PRICE_ROZN - номер колонки с розничной ценой (РРЦ)

COL_BRAND - колонка с названием бренда

ROW_START - номер строки с которой начинаются товары в прайсе

Дальше нужно указать скидки с помощью следующих строк:

Code Block
languagevb
BrandDisc.Add Key:="ABAT", Item:=26.24
BrandDisc.Add Key:="ATESY", Item:=29.5

Key:="ABAT" - вводится название бренда большими буквами

Item:=26.24 - вводится скидка, десятичные значения через точку

Таких строк можно добавить любое нужное вам количество.