Добрый день уважаемые форумчане, в очередной раз требуется Ваша помощь в написании макроса
Есть выгрузка из 1С Исходные данные на листе AS IS (количество строк может быть больше / меньше, чем указано в примере), то что должно получиться на листе TO BE
Необходимо данные в столбце С транспонировать в строку, сложность заключается в том, что количество строк в столбце С для определенной группы может варьироваться от 4 до 6. После транспонирования, транспонированные строки необходимо удалить, а также столбец С в котором находились транспонированные данные
Я думаю, что проще всего будет макросом добавить снизу 0...2 пустые строки в каждую группу строк оригинальной таблицы (дополнить до шести строк во всех группах); а затем макросом или помощи Power Querry преобразовать оригинальную таблицу в желаемую плоскую форму.
Option Explicit
Sub abc_xyz()
Dim x As Long, y As Long, rws As Long
On Error Resume Next
Application.DisplayAlerts = False
Sheets("AS IS (2)").Delete
Sheets("TO BE").Delete
Application.DisplayAlerts = True
On Error GoTo 0
Sheets("AS IS").Copy After:=Sheets("AS IS")
ActiveSheet.Name = "TO BE"
x = 2
rws = Cells(Rows.Count, "C").End(xlUp).Row
Do Until x > rws
y = Range("A" & x).End(xlDown).Row
If y > rws Then y = rws + 1
Range("F" & x).Resize(1, y - x).Value = Application.Transpose(Range("C" & x & ":C" & y - 1).Value)
Rows(x + 1 & ":" & y - 1).Delete Shift:=xlUp
x = Range("A" & x).End(xlDown).Row
Loop
For x = 6 To Range("A1").CurrentRegion.Columns.Count
Cells(1, x).Value = "Pole" & x - 5
Next
Columns("C:C").Delete Shift:=xlToLeft
End Sub
artyrH, маленькая просьба, публикуйте код когда прикладываете решение в файле. А то с телефона невозможно его посмотреть. Если уж большая портянка, то можно спрятать под спойлер. Заранее спасибо.