В этом разделе уже была подобная тема но ее закрыли, уважаемые форумчане! прошу вас разрешить задачку с макросом Данные: есть 2 столбца первый "Порядковый номер (1)", второй "Комментарий(2)", все записано в столбик, количество комментариев может быть от 1 до бесконечного количества. Задача: 1. По выполнению макроса, напротив каждого порядкового номера должны группироваться комментарии в 3-м столбце через знак ";" 2. Тож самое только есть 2 рядом столбца с комментариями. Результат в строке должен быть номер (1 столбец), комментарий (2 столбец), комментарий (3 столбец), объедение всех строк - 2 столбца (4 столбец), объедение всех строк - 3 столбца (5 столбец).
Т.к. тут уже была подобная тема я прикладываю файл с макросом который надо допилить под мои условия.
[p.s.]Во втором файле задача решается без макроса с помощью формулы, но она почему то не хочет объединять более 15 строк как пример в диапазоне (А180:А199)
Добрый день!
В этом разделе уже была подобная тема но ее закрыли, уважаемые форумчане! прошу вас разрешить задачку с макросом Данные: есть 2 столбца первый "Порядковый номер (1)", второй "Комментарий(2)", все записано в столбик, количество комментариев может быть от 1 до бесконечного количества. Задача: 1. По выполнению макроса, напротив каждого порядкового номера должны группироваться комментарии в 3-м столбце через знак ";" 2. Тож самое только есть 2 рядом столбца с комментариями. Результат в строке должен быть номер (1 столбец), комментарий (2 столбец), комментарий (3 столбец), объедение всех строк - 2 столбца (4 столбец), объедение всех строк - 3 столбца (5 столбец).
Т.к. тут уже была подобная тема я прикладываю файл с макросом который надо допилить под мои условия.
[p.s.]Во втором файле задача решается без макроса с помощью формулы, но она почему то не хочет объединять более 15 строк как пример в диапазоне (А180:А199)yellsamara
Sub res() lLastrow = Cells(Rows.Count, 6).End(xlUp).Row For i = 1 To lLastrow If Cells(i, 2) <> "" Then iY = Cells(i, 2).End(xlDown).Row - 1 If Cells(i, 6).Value <> "" Then Text = Cells(i, 6).Value & "; " For iT = i + 1 To iY If iT > lLastrow Then Exit For If Cells(iT, 6).Value <> "" Then Text = Text & Cells(iT, 6).Value & "; " End If Next Cells(i, 7).Value = Left(Text, Len(Text) - 2) End If Next End Sub
[/vba] По второму не поняла, нужен пример
По первому пункту [vba]
Код
Sub res() lLastrow = Cells(Rows.Count, 6).End(xlUp).Row For i = 1 To lLastrow If Cells(i, 2) <> "" Then iY = Cells(i, 2).End(xlDown).Row - 1 If Cells(i, 6).Value <> "" Then Text = Cells(i, 6).Value & "; " For iT = i + 1 To iY If iT > lLastrow Then Exit For If Cells(iT, 6).Value <> "" Then Text = Text & Cells(iT, 6).Value & "; " End If Next Cells(i, 7).Value = Left(Text, Len(Text) - 2) End If Next End Sub
по второму варианту все то же самое, только 2 группы комментариев при одном условие, пример во вложении.
[p.s.]Простите за мою не грамотность, я только начинающий пользователь макросов, раньше как то формулами обходился, но прям проникся темой, начну книжки читать)
по второму варианту все то же самое, только 2 группы комментариев при одном условие, пример во вложении.
[p.s.]Простите за мою не грамотность, я только начинающий пользователь макросов, раньше как то формулами обходился, но прям проникся темой, начну книжки читать)yellsamara