Здравствуйте Уважаемые форумчане, требуется Ваша профессиональная помощь. Сам к сожалению не смог найти решения данной проблемы.
Есть Excel таблица, на первом листе таблица из которой нужно получать отчеты на других листах ( какого вида можно увидеть в приложенном файле. Причем на первом листе могут добавляться строки с товаром. В отчет же переносятся при формированиитолько те строки где присутсвует товар.
Буду благодарен за Вашу помощь.
С Уважением.
Здравствуйте Уважаемые форумчане, требуется Ваша профессиональная помощь. Сам к сожалению не смог найти решения данной проблемы.
Есть Excel таблица, на первом листе таблица из которой нужно получать отчеты на других листах ( какого вида можно увидеть в приложенном файле. Причем на первом листе могут добавляться строки с товаром. В отчет же переносятся при формированиитолько те строки где присутсвует товар.
Sub perenos() Dim firm() As String, sh As Object Dim i#, ch#, fin#, h#, kol# fin = Sheets("общий").Cells(Rows.Count, 1).End(xlUp).Row kol = 7 Do While Sheets("общий").Cells(1, kol) <> "" kol = kol + 1 Loop For i = 7 To kol - 2 Sheets.Add After:=Sheets(Sheets.Count) Next i h = 7 For Each sh In ThisWorkbook.Worksheets ch = 1 If sh.Name <> "общий" Then For i = 2 To fin Step 2 If Worksheets("общий").Cells(i + 1, h) <> 0 Then sh.Cells(ch + 1, 2) = Worksheets("общий").Cells(i, 1) sh.Cells(ch + 1, 3) = Worksheets("общий").Cells(i + 1, h) ch = ch + 1 End If Next i h = h + 1 End If Next End Sub
[/vba]
Наверное так, сделал на скорую руку: [vba]
Code
Sub perenos() Dim firm() As String, sh As Object Dim i#, ch#, fin#, h#, kol# fin = Sheets("общий").Cells(Rows.Count, 1).End(xlUp).Row kol = 7 Do While Sheets("общий").Cells(1, kol) <> "" kol = kol + 1 Loop For i = 7 To kol - 2 Sheets.Add After:=Sheets(Sheets.Count) Next i h = 7 For Each sh In ThisWorkbook.Worksheets ch = 1 If sh.Name <> "общий" Then For i = 2 To fin Step 2 If Worksheets("общий").Cells(i + 1, h) <> 0 Then sh.Cells(ch + 1, 2) = Worksheets("общий").Cells(i, 1) sh.Cells(ch + 1, 3) = Worksheets("общий").Cells(i + 1, h) ch = ch + 1 End If Next i h = h + 1 End If Next End Sub