Страницы: 1
RSS
Замена артикулов на коды в одной ячейке из базы кодов
 
В ячейке значения стоят через запятую - артиклы. Несколько значений в одной ячейке. Их нужно заменить на коды. Есть два столбика, напротив которого стоят нужные значения которые нужно заменить. Файл с примером прилагаю. Кто сможет сделать таблицу, готов заплатить.
https://disk.yandex.ru/i/q8d27E9qisJKag
Изменено: vikttur - 11.02.2022 16:10:19
 
Прошу перенести в платную ветку
Пишу в личку
Заказ свободен. admin606, озвучьте бюджет, чтобы не тратить время исполнителей  ;)
Изменено: Jack Famous - 11.02.2022 15:24:06
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Не особо сложно сделать, но есть вопросы по всему...
 
Ну пока в бесплатной предложу вариант
Код
Public Function Замена_арт(ByRef s As Range, r As String, v1 As Range) As String
On Error GoTo ErrHand
Dim n As Long, x As Integer, i As Boolean, arr1 As Variant, arr3 As Variant
arr1 = v1
arr3 = Split(s, r)
i = False
    For x = LBound(arr3) To UBound(arr3)
        If arr3(x) <> "" Then
            For n = LBound(arr1) To UBound(arr1)
                If arr1(n, 1) <> "" Then
                    If Trim(arr3(x)) = Trim(arr1(n, 1)) Then: arr3(x) = arr1(n, 2): i = True: Exit For
                End If
            Next n
            If Not i Then arr3(x) = arr3(x) & " - не найден" Else i = False
        End If
    Next x
Замена_арт = Join(arr3, r)
Exit Function
ErrHand:
Замена_арт = "Ошибка"
End Function
Изменено: Msi2102 - 11.02.2022 16:10:16
 
/dell pls, не учел условие "столбика, напротив которого" и вышло совсем не то что нужно
Изменено: andylu - 11.02.2022 16:37:26
 
Цитата
andylu написал:
и вышло совсем не то что нужно
Что Вы имеете в виду, что если будет в базе найден артикул, а код напротив него будет пустым? Почему сразу неправильно? Будет просто две подряд запятых.Ну если нужно отметить это место тогда так:
Код
Public Function Замена_арт(ByRef s As Range, r As String, v1 As Range) As String
On Error GoTo ErrHand
Dim n As Long, x As Integer, i As Boolean, arr1 As Variant, arr3 As Variant
arr1 = v1
arr3 = Split(s, r)
i = False
    For x = LBound(arr3) To UBound(arr3)
        If arr3(x) <> "" Then
            For n = LBound(arr1) To UBound(arr1)
                If arr1(n, 1) <> "" Then
                    If Trim(arr3(x)) = Trim(arr1(n, 1)) Then
                        If arr1(n, 2) = "" Then i = False: Exit For
                        arr3(x) = arr1(n, 2): i = True: Exit For
                    End If
                End If
            Next n
            If Not i Then arr3(x) = arr3(x) & " - не найден" Else i = False
        End If
    Next x
Замена_арт = Join(arr3, r)
Exit Function
ErrHand:
Замена_арт = "Ошибка"
End Function
Изменено: Msi2102 - 11.02.2022 17:04:23
Страницы: 1
Наверх