Страницы: 1
RSS
Макрос сравнение значений в двух столбцах на разных листах и дополнение на первом недостающими
 
Добрый вечер форумчане.
Имею лишь общее понимание работы макросов, но абсолютный "0" в их написании, что собственно и привело к провалам все мои попытки самостоятельно адаптировать все найденные на форуме похожие варианты  своим потребностям. Поэтому и прошу у вас помощи.
Суть вопроса следующая:
Есть три листа - Планировщик;Дебит Свод;Дополнение кодов   (лист "Справочник в другой книге" исключительно для примера)
Необходимо - значения в столбце "А" с листа "Планировщик" сравнить с значениями в столбце "А" с листа "Дополнение кодов". Все значения которых не хватает на листе "планировщик" необходимо добавить в следующую ячейку после последней заполненной в столбце "А". Важные нюанс - все ячейки данного столбца в текстовом формате (это кода клиентов многие из которых начинаются с нолей), в столбце "А" на листе "планировщик "есть повторяющиеся значения которые нельзя удалять, а также нельзя удалять значения которые были не найдены при сравнении с данными на листе "Дополнение кодов"
И добавить сортировку на листе "планировщик" по столбцам - "J" (Весь период) - от большего к меньшему и по "N" (Дата) - от от старых к новым, которая запускается после внесения значений в столбце "N" (Дата)

Приблизительно также сравнить значения в столбце "А" на листе "Дебит свод" с значениями в столбце "С" на листе "Дополнение кодов", Все значения которых не хватает на листе "Дебит свод" необходимо добавить в следующую ячейку после последней заполненной в столбце "А".На этом листе в столбце "А" нет повторяющихся значений, и в случае если значения не найдены при сравнении их можно удалить.
И добавить сортировку на листе "Дебит свод" по столбцу - "I" (Просрочка) - от большего к меньшему, которая запускается открытии и сохранении или обновлении книги (не принципиально)

Очень надеюсь на вашу помощь.
Заранее благодарен.
 
ну если я правильно понял...
Код
Sub qq()
    LR = Worksheets("Дополнение кодов").Cells(Rows.Count, 1).End(xlUp).Row + 1
    For i = 12 To Worksheets("Планировщик").Cells(Rows.Count, 1).End(xlUp).Row
    E = True
        For j = 2 To Worksheets("Дополнение кодов").Cells(Rows.Count, 1).End(xlUp).Row
            If Worksheets("Планировщик").Cells(i, 1).Value = Worksheets("Дополнение кодов").Cells(j, 1).Value Then E = False: Exit For
        Next j
    If E Then Worksheets("Дополнение кодов").Cells(LR, 1).Value = Worksheets("Планировщик").Cells(i, 1).Value: LR = LR + 1
    Next i
End Sub


наверно так правильнее
Код
Sub qq()
    LR = Worksheets("Планировщик").Cells(Rows.Count, 1).End(xlUp).Row + 1
    For i = 2 To Worksheets("Дополнение кодов").Cells(Rows.Count, 1).End(xlUp).Row
   
    E = True
        For j = 12 To Worksheets("Планировщик").Cells(Rows.Count, 1).End(xlUp).Row
            If Worksheets("Планировщик").Cells(j, 1).Value = Worksheets("Дополнение кодов").Cells(i, 1).Value Then E = False: Exit For
        Next j
    If E Then Worksheets("Планировщик").Cells(LR, 1).Value = Worksheets("Дополнение кодов").Cells(i, 1).Value: LR = LR + 1
    Next i
End Sub
Изменено: Malion - 18.02.2016 10:28:46
 
Спасибо Malion, вполне подходит такой вариант. Огромное Вам спасибо.
Еще пытаюсь адаптировать это дело к второму листу.
Страницы: 1
Читают тему
Наверх