Страницы: 1
RSS
Сортировка в каждом блоке группировки
 
Здравствуйте! Помогите сделать сортировку разом в каждом блоке группировки по одному из столбцов? Пример прикрепила, сортировка по столбцу G
Изменено: enot7 - 18.10.2019 08:56:17
 
enot7, здравствуйте! Мне непонятна логика сортировки)))
Обычно сортируют или как будто букв нет, или как будто чисел нет, а тут полный простор для воображения  :D
Скрины «до сортировки» и «после сортировки»
Изменено: Jack Famous - 17.10.2019 16:44:46
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Цитата
Подскажите как сделать сортировку разом в каждом блоке
Макросом определяем границы каждой группы по отступу=1 и сортируем найденный диапазон
 
Jack Famous, сортировка по столбцу G а не B! в столбце B нет никакой сортировки.
Kuzmich, подскажите как сделать это макросом.
 
Вы просили подсказку, Вам ее уже дали.
 
vikttur, значит более развернутой подсказки не будет?
если вопрос конкретно в формулировке слова, то хорошо я изменю текст.
 
enot7, для макроса нужен алгоритм и тут у нас 2 варианта:
    1. выделить всю область от первой шапки группы "123" (строка 13) до последней строки группы "12345" (строка 45) и отсоритровать каждую группу. Для этого нужно макросу дать понять, какие из строк являются шапками. Я бы ставил в "шапки" какие-нибудь уникальные символы типа "•" (символ 149) и, если он есть в строке, то это шапка. Можно по цвету заливки или по наличию/отстутствию чего-либо ещё. Либо вообще определять не строку шапки группы, а сами строки группы для сортировки.
    2. выделять области для сортировки вручную (в примере строки (НЕ ЦЕЛИКОМ) 14-28; 30-33; 35-38; 40-45) и для каждой запускать макрос

Если областей около 10ти, то я бы второй вариант использовал…Что предпочитаете?)))

UPD: поздно выбирать - я уже сделал это за вас  :D
Второй вариант. Можно выделить все области для сортировки сразу
Изменено: Jack Famous - 18.10.2019 11:14:51
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Цитата
подскажите как сделать это макросом.
Делаете цикл по столбцу В, в котором есть артикулы с жирным шрифтом (отступ=0) и
с обычным шрифтом (отступ=1). По этим признакам можно определить границы диапазона,
в котором делать сортировку
 
Цитата
Jack Famous написал:
Если областей около 10ти, то я бы второй вариант использовал…Что предпочитаете?)))
к сожалению областей почти 5000(((
 
enot7, тогда вам всего лишь остаётся определить кодом по подсказкам все области (в моём коде - "ar") а сортировку я вам показал  ;)
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Jack Famous, спасибо, буду разбираться и пробовать)
 
Находим границы диапазонов
Код
Sub Tablica()
Dim i As Long
Dim iLastRow As Long
Dim iBegin As Long
Dim iEnd As Long
    iLastRow = Cells(Rows.Count, "B").End(xlUp).Row
    iBegin = 14
  For i = 14 To iLastRow
      iEnd = iBegin
    Do While Cells(iEnd + 1, "B").IndentLevel = 1 And iEnd <= iLastRow
      iEnd = iEnd + 1
    Loop
    'определили iBegin и iEnd (14-28,30-33,35-38,40-45 , в этом диапазоне делаем сортировку
    'сортировка по столбцу G
    '......................
    iBegin = iEnd + 2
    i = iEnd + 1
  Next
End Sub
Страницы: 1
Наверх