Страницы: 1
RSS
Как разнести на 2 листа данные
 
Доброго времени суток, Уважаемые!  
 
Есть книга (см.пример). В ней 3 листа. Руками забивается только первый лист.  
Остальные должны формироваться на основе первого.  
во второй лист должно вноситься общее (просуммированное) количество товара по поставщику,  
а в третий номера накладных через запятую.  
Наименования поставщиков, по идее, не изменяются, наименования товаров - тоже.  
 
Беда вся в том, что таблица каждый день разная по количеству строк -    
их может быть 10, а может и 500...    
 
В идеале бы изобрести макрос, который бы висел на кнопке в первом листе, и по окончании ввода (нажатию кнопки) разносил бы все данные..  
 
Или оно как-то формулами можно организовать...  
 
Помогите, кто может?))
 
ИМХО сводными просится.
Я сам - дурнее всякого примера! ...
 
{quote}{login=KuklP}{date=19.08.2010 06:26}{thema=}{post}ИМХО сводными просится.{/post}{/quote}  
 
Вот не получится тут сводными((( не моя прихоть(((  
надо чтоб именно в листы оно разносилось...
 
Погодите, сводники подтянутся... И по листам разнесут.
Я сам - дурнее всякого примера! ...
 
А пока для листа "реестр":  
Public Sub Nakladn()  
   Dim mR As Range, lr As Long, i As Long, c As Range  
   With Sheets("приход")  
       lr = .Cells(.Rows.Count, 2).End(xlUp).Row  
       Sheets("реестр").Range("C4:C7").ClearContents  
       For Each c In Sheets("реестр").Range("B4:B7")  
           For i = 3 To lr  
               If .Cells(i, 2) = c Then  
                   If c.Offset(, 1) = "" Then  
                       c.Offset(, 1) = .Cells(i, 3)  
                   Else  
                       c.Offset(, 1) = c.Offset(, 1) & "," & .Cells(i, 3)  
                   End If  
               End If  
           Next  
       Next  
   End With  
End Sub
Я сам - дурнее всякого примера! ...
 
Посмотрите это:
Я сам - дурнее всякого примера! ...
 
{quote}{login=KuklP}{date=19.08.2010 07:13}{thema=}{post}Посмотрите это:{/post}{/quote}  
 
Премного благодарствую-с. Преклоняюсь, снимаю шляпу...  
 
Но есть несколько вопросов:  
 
Как оно умудряется в рееср разнести по поставщику и по тоавру??  
можно оно как то отдельным макросом вынести? просто по уровню знаний - профан((  
или, ели не затруднит, то в самом коде макроса подробно разъясните как оно работает??    
И еще - а сводную таблицу эту надо предварительно создать или она автоматом каждый раз рисуется?
 
Ой, не разобрался сразу.. туплю-с. Каюсь, грешен.  
Про реестр понял)))  
 
Но всё-же если не затруднит, то ремарки бы... и если не лень расписывать, то поподробнее)))
 
Лень. Ну вот на что спромогся:  
Public Sub Nakladn()  
   Dim mR As Range, lr As Long, i As Long, c As Range  
   Sheets("сводный приход").PivotTables("СводнаяТаблица1").PivotCache.Refresh 'сводный приход - обновляем  изменения  
   With Sheets("приход")  
       lr = .Cells(.Rows.Count, 2).End(xlUp).Row ' вычисляем последнюю строку в Sheets("приход")  
       Sheets("реестр").Range("C4:C7").ClearContents  
       For Each c In Sheets("реестр").Range("B4:B7")  
           For i = 3 To lr ' в листе "реестр" хозяйничаем  
               If .Cells(i, 2) = c Then 'заполняем текст через запятую  
                   If c.Offset(, 1) = "" Then  
                       c.Offset(, 1) = .Cells(i, 3)  
                   Else  
                       c.Offset(, 1) = c.Offset(, 1) & "," & .Cells(i, 3)  
                   End If  
               End If  
           Next  
       Next  
   End With ' Все  
End Sub
Я сам - дурнее всякого примера! ...
 
Премного благодарствую-с))  
 
последняя просьба:  
а не могли бы Вы показать пример макроса, который бы в произвольной книге  
брал данные из Лист1.Столбец3 начиная со строки 5 и на Лист2 в строку 1 заносил бы значения ячеек через запятую?  
Просто нужен пример рабочего макроса. а я его уже постараюсь осмыслить и понять...    
(((( ну вот не даются мне эти циклы(((( никак я в них не могу разобраться((((  
 
...и если не затруднит, то поясните пожалста для чего в Вашем предыдущем проекте  
обьявлялись переменные: Dim mR As Range, lr As Long, i As Long, c As Range  
mR  
Ir  
i  
c  
сам примерно(совсем примерно) понимаю, но хотелось бы от, так скть, создателя))  
 
И обещаю отстать с вопросами)))
 
mR' Лишняя - можно удалить. В процессе разработки где-то нужна была. Не помню.  
Ir' последняя строка таблицы(вычисляется)  
i'просто счетчик  
c'переменная, ссылающаяся на объект "ячейка"  
"последняя просьба:" не сейчас. Разве что кто-то из планетян...
Я сам - дурнее всякого примера! ...
Страницы: 1
Читают тему
Наверх