Добрый день. Столкнулись с такой проблемой. Многие поставщики дают скидку на некоторые позиции из прайса, а именно на те, строки которых в прайсе отмечены другим цветом.
На данный момент нет возможности сделать автоматическую наценку для таких товаров. Один способ, вручную контролировать эти позиции. Решите, пожалуйста, эту проблему.
Наценка на основании цвета строки или ячейки
Второй способ - с помощью VBA-макроса.eugen писал(а):Один способ, вручную контролировать эти позиции.
Пишу макросы VBA на заказ от 100 руб. обращаться в личку.
Подключение макросов | Подключение макросов 2 | Регулярные выражения | Руководство E-Trade PLI | EdiTTempDir | РРЦ | правильное обновление ПЛИ и СС | данные импортируются как звездочки | контакты тех.поддержки
Подключение макросов | Подключение макросов 2 | Регулярные выражения | Руководство E-Trade PLI | EdiTTempDir | РРЦ | правильное обновление ПЛИ и СС | данные импортируются как звездочки | контакты тех.поддержки
МОжно подробнее? Как реализовать?
Создается VBA-макрос и подключается к импортируемому прайс-листу. Во время импорта с помощью VBA-макроса происходит автоматическая обработка прайс-листа, получившийся в результате обработки VBA-макросом прайс-лист, импортируется в ПЛИ.eugen писал(а):МОжно подробнее? Как реализовать?
В 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
Пишу макросы VBA на заказ от 100 руб. обращаться в личку.
Подключение макросов | Подключение макросов 2 | Регулярные выражения | Руководство E-Trade PLI | EdiTTempDir | РРЦ | правильное обновление ПЛИ и СС | данные импортируются как звездочки | контакты тех.поддержки
Подключение макросов | Подключение макросов 2 | Регулярные выражения | Руководство E-Trade PLI | EdiTTempDir | РРЦ | правильное обновление ПЛИ и СС | данные импортируются как звездочки | контакты тех.поддержки
Решение вроде должно быть рабочее. вопрос только в том, какой функцией можно определить какого цвета ячейка и задать правильное условие?
Пишу макросы VBA на заказ от 100 руб. обращаться в личку.
Подключение макросов | Подключение макросов 2 | Регулярные выражения | Руководство E-Trade PLI | EdiTTempDir | РРЦ | правильное обновление ПЛИ и СС | данные импортируются как звездочки | контакты тех.поддержки
Подключение макросов | Подключение макросов 2 | Регулярные выражения | Руководство E-Trade PLI | EdiTTempDir | РРЦ | правильное обновление ПЛИ и СС | данные импортируются как звездочки | контакты тех.поддержки
Может кому понадобится...
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
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
Скажите, через excel функция работает, но через PLI не хочет. ВСе ли верно я сделал. добавил весь код в txt редактор и сохранил в формате .vb
Далее указал путь к этому файлу из PLI в настройках прайса.
Ошибка http://prntscr.com/1gii44
Далее указал путь к этому файлу из PLI в настройках прайса.
Ошибка http://prntscr.com/1gii44
Поддерживаю вопрос!eugen писал(а):Скажите, через excel функция работает, но через PLI не хочет. ВСе ли верно я сделал. добавил весь код в txt редактор и сохранил в формате .vb
Далее указал путь к этому файлу из PLI в настройках прайса.
Ошибка http://prntscr.com/1gii44
Уважаемые разработчики, подскажите пожалуйста, каким образом можно использовать пользовательские функции(сохраненные, например, в персональной книге макросов) в подключаемых к ПЛИ макросах?
Пишу макросы VBA на заказ от 100 руб. обращаться в личку.
Подключение макросов | Подключение макросов 2 | Регулярные выражения | Руководство E-Trade PLI | EdiTTempDir | РРЦ | правильное обновление ПЛИ и СС | данные импортируются как звездочки | контакты тех.поддержки
Подключение макросов | Подключение макросов 2 | Регулярные выражения | Руководство E-Trade PLI | EdiTTempDir | РРЦ | правильное обновление ПЛИ и СС | данные импортируются как звездочки | контакты тех.поддержки
в этой теме последний пост. Там написано, что и как нужно сделать с макросом, чтобы он заработал в ПЛИ.eugen писал(а):ВСе ли верно я сделал
Пишу макросы VBA на заказ от 100 руб. обращаться в личку.
Подключение макросов | Подключение макросов 2 | Регулярные выражения | Руководство E-Trade PLI | EdiTTempDir | РРЦ | правильное обновление ПЛИ и СС | данные импортируются как звездочки | контакты тех.поддержки
Подключение макросов | Подключение макросов 2 | Регулярные выражения | Руководство E-Trade PLI | EdiTTempDir | РРЦ | правильное обновление ПЛИ и СС | данные импортируются как звездочки | контакты тех.поддержки
