Страницы: Пред. 1 2
RSS
Сортировка данных таблицы по листам по признаку в определенном столбце
 
Ігор Гончаренко,
Цитата
30 сообщений в теме, а результата все еще нет...
Выуживаю у ТС по крохе задачу с 24 декабря и вот автор написал
Цитата
Спасибо. В пределах В-I все работает.
До Нового года надеюсь осилим!!!
Изменено: Kuzmich - 29.12.2019 17:59:24
 
мы верим и "держим за вас кулачки"))
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Прошу прощения, .... но в отправленном примере все же есть. В итоговой строке формулы по всем столбцам. Каждые 4 столбца однотипные.  
 
Цитата
В итоговой строке формулы по всем столбцам
Если вы хотите, чтобы макрос вставлял формулы в ячейки столбцов F:I,
то замените строки
Код
          'Cells(iLR + 1, "F") = Application.Sum(Range(Cells(4, "F"), Cells(iLR, "F")))
          Cells(iLR + 1, "F").Formula = "=Sum(F4:F" & iLR & ")"
          'Cells(iLR + 1, "G") = Application.Sum(Range(Cells(4, "G"), Cells(iLR, "G")))
          Cells(iLR + 1, "G").Formula = "=Sum(G4:G" & iLR & ")"
          'Cells(iLR + 1, "H") = Application.Sum(Range(Cells(4, "H"), Cells(iLR, "H")))
          Cells(iLR + 1, "H").Formula = "=Sum(H4:H" & iLR & ")"
          'Cells(iLR + 1, "I") = Application.Sum(Range(Cells(4, "I"), Cells(iLR, "I")))
          Cells(iLR + 1, "I").Formula = "=Sum(I4:I" & iLR & ")"
          'Cells(iLR + 2, "F") = Cells(iLR + 1, "F") - Cells(iLR + 1, "H")
          Cells(iLR + 2, "F").Formula = "=F" & iLR + 1 & "- H" & iLR + 1
          'Cells(iLR + 2, "G") = Cells(iLR + 1, "G") - Cells(iLR + 1, "I")
          Cells(iLR + 2, "G").Formula = "=G" & iLR + 1 & "- I" & iLR + 1

Формулы правее столбца I у вас уже прописаны
 
Ну вот как выглядит у меня решение. Со столбца J и далее не работает.  Начиная со столбца J итоговая строка не перемещается при изменении количества элементов.
 
masaran,
Цитата
Начиная со столбца J итоговая строка не перемещается при изменении количества элементов.  
Я вам писал, что макрос заполняет ячейки разных групп в пределах столбцов B:I
Я так понимаю, что при получении нового листа Общ и запуска макроса вы хотите, чтобы строки Итого и Сальдо
для столбцов B:I совпадали с такими строками в столбах правее I, при том что новых строк может быть как больше
строк от предыдущей выгрузки, так и меньше. Это еще один пункт вашего техзадания. Тем более, что количество
столбцов правее столбца I у вас для разных групп различное.
 
с тревогой наблюдаю за темой
с каждой парой-тройкой сообщений понимаю, что мысть о конкурсе на "лучшее описание..." было не такой уже и дикой
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Kuzmich, можно сделать, чтобы макрос распространялся на все заполненные столбцы по строке итого (в т.ч. правее I)?
 
masaran,
Цитата
чтобы макрос распространялся на все заполненные столбцы по строке итого (в т.ч. правее I)?
Как я понимаю, вам нужны формулы не только по строке итого, но и в строке Сальдо.
А формулы в столбцах F:M дальше повторяются с цикличностью 8 столбцов?
Ой, что сейчас скажет Ігор Гончаренко
Изменено: Kuzmich - 02.01.2020 17:02:30
 
в прошлом году не успели, но есть предпосылки, что результат может быть получен уже в этом году
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Цитата
Ігор Гончаренко написал: уже в этом году...
... к новому, 2021 году )
 
Цитата
Kuzmich написал:
А формулы в столбцах F:M дальше повторяются с цикличностью 8 столбцов?
цикличность формул каждые 4 столбца
 
Цитата
цикличность формул каждые 4 столбца
В ячейках по строке Итого  в столбцах F:I у вас суммы по соответствующему столбцу,
а в столбцах J:M разности.
Чтобы прописать суммы с цикличностью 4 надо на каждом листе по группам найти последний столбец
Код
iLastCol = .Cells(3, .Columns.Count).End(xlToLeft).Column  'посл.столбец по строке 3

а затем после того как найдены суммы F:I сделать цикл
 
Код
       'копируем диапазон с формулами сумм F:I до iLastCol - 3
          For j = 14 To iLastCol - 3 Step 4
            Range(Cells(iLR + 1, "F"), Cells(iLR + 1, "I")).Copy Cells(iLR + 1, j)
          Next
 
Начиная, со столбца N стали считаться суммы, а сальдо не считается. В пределах J-М не считается ничего. И начиная с J и далее не добавляются ячейки в строки при увеличении количества аргументов из листа общ. Там просто остается старая информация. Гляньте пожалуйста.  
 
masaran,
Вы помните, что вы просили
Цитата
можно сделать, чтобы макрос распространялся на все заполненные столбцы по строке итого (в т.ч. правее I)?
Речь шла о строке Итого, про Сальдо речи не было
 
Да, мой косяк. В примере сальдо было. По умолчанию думала сделаете.  
 
masaran,
Вы читали мое сообщение #37
Где на него ответ?
 
Простите, но я его смысл не уловила. Я хочу, чтобы количество строк в пределах всех заполненных столбцов на сортированных листах соответствовало количеству соответствующих элементов таблицы общ. В столбцы B-I переносятся значения. В столбцах J и далее формулы. А последними строками по всем заполненным столбцам являются Итого и Сальдо с формулами. Я понятно написала?
 
masaran,
При переносе данных с нового листа Общ может возникнуть два момента
1. Число переносимых строк больше чем было при предыдущем переносе  убираем старую заливку строк Итого и Сальдо от столбца J и правее  копируем формулы в добавленные строки
2. Число переносимых строк меньше чем было при предыдущем переносе удаляем лишние строки
3. Надо все это зациклить на все листы по группам

Вы сами пробовали что-то сделать из этого?
 
Цитата
Kuzmich написал:
Вы сами пробовали что-то сделать из этого?
Я макросами к сожалению не владею напрочь. Могу только руками допилить .... планомерно и медленно.  
 
Цитата
Я макросами к сожалению не владею напрочь.
Не представляю, как можно использовать макросы в работе, не владея ими?
Вот попробуйте следующий вариант. Пилите Шура (masaran), пилите... Удачи!
Скрытый текст
 
Спасибо огроменное. Форматирование в добавленных строках слетает (буду допиливать). А так вроде все работает. Kuzmich, низчайший, глубочайший поклон.  
 
Цитата
Форматирование в добавленных строках слетает (буду допиливать).
Добавьте в макрос строку
Код
Range(Cells(iLR_old - 2, "J"), Cells(iLR_old - 2, iLastCol)).Copy
Range(Cells(iLR_old - 1, "J"), Cells(iLR, iLastCol)).PasteSpecial xlPasteFormulas
Range(Cells(iLR_old - 1, "J"), Cells(iLR, iLastCol)).PasteSpecial xlPasteFormats

Удачи!
Страницы: Пред. 1 2
Наверх