Страница 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
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 писал(а):ВСе ли верно я сделал
в этой теме последний пост. Там написано, что и как нужно сделать с макросом, чтобы он заработал в ПЛИ.