Наценка на основании цвета строки или ячейки

Пожелания пользователей по усовершенствованию программы E-Trade PriceList Importer
eugen
Сообщения: 58
Зарегистрирован: 25 янв 2013 21:10

Добрый день. Столкнулись с такой проблемой. Многие поставщики дают скидку на некоторые позиции из прайса, а именно на те, строки которых в прайсе отмечены другим цветом.

На данный момент нет возможности сделать автоматическую наценку для таких товаров. Один способ, вручную контролировать эти позиции. Решите, пожалуйста, эту проблему.
Ixenon
Сообщения: 743
Зарегистрирован: 19 ноя 2011 09:03

eugen писал(а):Один способ, вручную контролировать эти позиции.
Второй способ - с помощью VBA-макроса.
eugen
Сообщения: 58
Зарегистрирован: 25 янв 2013 21:10

МОжно подробнее? Как реализовать?
Ixenon
Сообщения: 743
Зарегистрирован: 19 ноя 2011 09:03

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
eugen
Сообщения: 58
Зарегистрирован: 25 янв 2013 21:10

Решение вроде должно быть рабочее. вопрос только в том, какой функцией можно определить какого цвета ячейка и задать правильное условие?
eugen
Сообщения: 58
Зарегистрирован: 25 янв 2013 21:10

Может кому понадобится...
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
eugen
Сообщения: 58
Зарегистрирован: 25 янв 2013 21:10

Скажите, через excel функция работает, но через PLI не хочет. ВСе ли верно я сделал. добавил весь код в txt редактор и сохранил в формате .vb
Далее указал путь к этому файлу из PLI в настройках прайса.
Ошибка http://prntscr.com/1gii44
Ixenon
Сообщения: 743
Зарегистрирован: 19 ноя 2011 09:03

eugen писал(а):Скажите, через excel функция работает, но через PLI не хочет. ВСе ли верно я сделал. добавил весь код в txt редактор и сохранил в формате .vb
Далее указал путь к этому файлу из PLI в настройках прайса.
Ошибка http://prntscr.com/1gii44
Поддерживаю вопрос!
Уважаемые разработчики, подскажите пожалуйста, каким образом можно использовать пользовательские функции(сохраненные, например, в персональной книге макросов) в подключаемых к ПЛИ макросах?
Ixenon
Сообщения: 743
Зарегистрирован: 19 ноя 2011 09:03

eugen писал(а):ВСе ли верно я сделал
в этой теме последний пост. Там написано, что и как нужно сделать с макросом, чтобы он заработал в ПЛИ.
Ответить

Вернуться в «Ваши пожелания»