Страница 1 из 2
Наценка на основании цвета строки или ячейки
Добавлено: 16 июл 2013 13:17
eugen
Добрый день. Столкнулись с такой проблемой. Многие поставщики дают скидку на некоторые позиции из прайса, а именно на те, строки которых в прайсе отмечены другим цветом.
На данный момент нет возможности сделать автоматическую наценку для таких товаров. Один способ, вручную контролировать эти позиции. Решите, пожалуйста, эту проблему.
Re: Наценка на основании цвета строки или ячейки
Добавлено: 16 июл 2013 21:24
Ixenon
eugen писал(а):Один способ, вручную контролировать эти позиции.
Второй способ - с помощью VBA-макроса.
Re: Наценка на основании цвета строки или ячейки
Добавлено: 17 июл 2013 09:46
eugen
МОжно подробнее? Как реализовать?
Re: Наценка на основании цвета строки или ячейки
Добавлено: 17 июл 2013 10:20
Ixenon
eugen писал(а):МОжно подробнее? Как реализовать?
Создается VBA-макрос и подключается к импортируемому прайс-листу. Во время импорта с помощью VBA-макроса происходит автоматическая обработка прайс-листа, получившийся в результате обработки VBA-макросом прайс-лист, импортируется в ПЛИ.
В VBA-макросе можно реализовать построчную обработку всех имеющихся в данном прайс-листе товаров, во время которой, в случае выполнения какого-либо условия можно изменить цену данного товара любым желаемым образом.
Например у меня есть в четвертом столбце цена и мне нужно в пятом столбце получить цену с учетом имеющихся скидок, фрагмент VBA-макроса получился такой:
Код: Выделить всё
Cells(i, 5) = Cells(i, 4) * 0.995
If Cells(i, 7) Like "*SINBO*" Then
Cells(i, 5) = Cells(i, 4) * 0.95
ElseIf Cells(i, 7) Like "*POLARIS*" Then
Cells(i, 5) = Cells(i, 4) * 0.95
ElseIf Cells(i, 7) Like "*VITESSE*" Then
Cells(i, 5) = Cells(i, 4) * 0.95
ElseIf Cells(i, 7) Like "*PHILIPS*" Then
Cells(i, 5) = Cells(i, 4) * 0.95
ElseIf Cells(i, 7) Like "*HOLDER*" Then
Cells(i, 5) = Cells(i, 4) * 0.95
ElseIf Cells(i, 7) Like "*KRUPS*" Then
Cells(i, 5) = Cells(i, 4) * 0.95
ElseIf Cells(i, 7) Like "*ROWENTA*" Then
Cells(i, 5) = Cells(i, 4) * 0.95
ElseIf Cells(i, 7) Like "*TEFAL*" Then
Cells(i, 5) = Cells(i, 4) * 0.95
ElseIf Cells(i, 7) Like "*MOULINEX*" Then
Cells(i, 5) = Cells(i, 4) * 0.95
ElseIf LCase(Cells(i, 2)) Like LCase("*швейная*") Or LCase(Cells(i, 2)) Like LCase("*оверлок*") Then
Cells(i, 5) = Cells(i, 4) * 0.97
End If
Re: Наценка на основании цвета строки или ячейки
Добавлено: 17 июл 2013 19:42
eugen
Решение вроде должно быть рабочее. вопрос только в том, какой функцией можно определить какого цвета ячейка и задать правильное условие?
Re: Наценка на основании цвета строки или ячейки
Добавлено: 17 июл 2013 20:31
Ixenon

- 10.jpg (68.42 КБ) 5650 просмотров
Re: Наценка на основании цвета строки или ячейки
Добавлено: 20 июл 2013 16:50
eugen
Может кому понадобится...
Sub excel()
Dim i As Long
For i = 9 To ActiveSheet.UsedRange.Rows.Count
If Cells(i, 5).Interior.ColorIndex <> 6 Then
Cells(i, 6) = Cells(i, 5) / 1.06
ElseIf Cells(i, 5).Interior.ColorIndex = 6 Then
Cells(i, 6) = Cells(i, 5)
End If
Next i
End Sub
Re: Наценка на основании цвета строки или ячейки
Добавлено: 20 июл 2013 17:50
eugen
Скажите, через excel функция работает, но через PLI не хочет. ВСе ли верно я сделал. добавил весь код в txt редактор и сохранил в формате .vb
Далее указал путь к этому файлу из PLI в настройках прайса.
Ошибка
http://prntscr.com/1gii44
Re: Наценка на основании цвета строки или ячейки
Добавлено: 20 июл 2013 19:09
Ixenon
eugen писал(а):Скажите, через excel функция работает, но через PLI не хочет. ВСе ли верно я сделал. добавил весь код в txt редактор и сохранил в формате .vb
Далее указал путь к этому файлу из PLI в настройках прайса.
Ошибка
http://prntscr.com/1gii44
Поддерживаю вопрос!
Уважаемые разработчики, подскажите пожалуйста, каким образом можно использовать пользовательские функции(сохраненные, например, в персональной книге макросов) в подключаемых к ПЛИ макросах?
Re: Наценка на основании цвета строки или ячейки
Добавлено: 21 июл 2013 06:33
Ixenon
eugen писал(а):ВСе ли верно я сделал
в
этой теме последний пост. Там написано, что и как нужно сделать с макросом, чтобы он заработал в ПЛИ.