Страницы: 1
RSS
VBA Как определить сгруппированные столбцы
 
Ни где не смог найти. Полно примеров описывающих сгруппировка, разгруппироку есть или нет группировка на листе.
Но на листе есть группировки. Мне нужно отловить все их и узнать какие столбцы в какие группировки входят
 
Цитата
antipod13 написал:
Мне нужно отловить все их и узнать какие столбцы в какие группировки входят
Попробуйте так
Код
Sub ColGroup()
Dim iClmn As Range
Dim clmnLetter$
For Each iClmn In ActiveSheet.UsedRange.Columns
  If iClmn.Columns.OutlineLevel > 1 Then
    clmnLetter = Split(iClmn.Columns.Address(1, 0), "$")(0)
    MsgBox "Столбец '" & clmnLetter & "' входит в группировку " & iClmn.Columns.OutlineLevel & " уровня"
  End If
Next
End Sub
Согласие есть продукт при полном непротивлении сторон
 
Я пробовал. Нечто подобное. Но OutlineLevel отвечает за уровень группировки, как понял
у меня все группировки первого уровня нет второго и все последовательно. в результате я их программно друг от друга отличить не могу.
Отладчиком смотрел  
 
Может по другому признаку отлавливать нужные столбцы?
Согласие есть продукт при полном непротивлении сторон
 
Цитата
antipod13 написал:
у меня все группировки первого уровня
можете пример приложить? Потому что насколько знаю, группировок с одним лишь уровнем нет. Даже если на чистом листе создать одну единственную группировку - создается 2 уровня: 1-ый - скрыты все подчиненные группировки, 2-ой - скрыты все, выше 2-го уровня, а строки/столбцы 2-о уровня раскрыты. И т.д.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Что нужно узнать? Группировка - всегда непрерывный диапазон. То есть блок с одним и тем же уровнем, если есть разрыв , то это другой блок. Если надо определить блок в котором конкретный столбе(строка) то идем по убыванию до изменения и по возрастанию до изменения.
По вопросам из тем форума, личку не читаю.
 
Ну, если подробно.
   Я Экселину загружаю в аксес, эксель - экспортированный отчет 1С. Группировка соответствует иерархии, при загрузке мне эту иерархию нужно понять.
По сути - эти столбцы в эту группу - ее первый столбец скажем подразделение - все остальные - менеджеры и так далее.
Так сказать понять -  в этом столбце такая информация в другом другая.
  Строки я разобрал, там все просто - уровень иерархия в котором строка зависит от отступа. А тут никак не пойму.
Экселина большая, я даже сразу не заметил, что там не два уровня вертикальных группировок (экселина косячно сохранилась).

   Бегать по ячейка по всякому я умею. Даже пробовал, iClmn.Columns.Address(___),, анализировать. Он выдает адрес сгруппированной области. Можно конечно и так, пробегая их предложенным циклом и анализируя (он их всех проходит) - долго и упорно можно.
   попроще бы
 
Многобукв. Приложите лучше файл-пример. Как есть-Как надо
Согласие есть продукт при полном непротивлении сторон
 
Урааа, мы читать разучились.
Давно это уже на форумах.

Читаем "По сути - эти столбцы в эту группу - ее первый столбец скажем подразделение - все остальные - менеджеры "
Сложно представить и понять, интересно а нафиг вообще группировки придумали. Если сложно пожалуйста. Фай приложил.
Я там даже в 5 строке чето заполнил.

Читаем дальше, "Загружаю в аксесс", извиняете, не вижу смысла аксесс прикреплять.

Задача проста, расписную детальнень-ко "на всех уровнях группировки первом уровне группировки, первый столбец - Директор (злющий зараза но драть сивую кобылу умет), все остальные столбцы ы этой группе - тоже сгруппированы,, но дело в том что все второго уровня. Во как бывает. , не сгруппированных столбцов нет, ну нет у них вакансий для начальников (на всех родственников и так отделов не хватает). Далее второй уровень Группировки - по тому же принципу. Но тут понимаешь первый столбец в группе - Начальник отдела - а у него направлений несколько. Сколько любовниц - столько и направлений.

  А вот на восьмом уровне группировки мы значит, сисадмины там, программисты, прикиньте - есть даже сварщики кабелей (эти значит с особенными коробочками ходят и никому не показываю)
  Вот жаль, что эксель только 8 уровней поддерживает
 
Цитата
antipod13 написал:
Урааа, мы читать разучились.
Скорее, писать. В последнем сообщении (#9) информативен только прикрепленный файл.
Здесь Михаил разбирал аналогичный пример.
Изменено: sokol92 - 17.11.2023 16:49:55
Владимир
 
Для тех кто умеет читать, писать и даже  Access приплетать,
Что нужно получить в итоге? Пробежались поняли что к чему и странно что забег долгий. Что на выходе то должно быть?
Цитата
sokol92 написал:
Михаил разбирал аналогичный пример.
михаил и не помнит даже :-)
Изменено: БМВ - 17.11.2023 18:33:29
По вопросам из тем форума, личку не читаю.
 
Дубль на Кибере
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Цитата
Jack Famous написал:
Дубль на Кибере
там тоже грамотных нет  :D
По вопросам из тем форума, личку не читаю.
 
Цитата
БМВ написал:
там тоже грамотных нет  
и ТУТ не нашлось, по ходу дело не в нас
 
Цитата
БМВ написал:
михаил и не помнит даже :-)
Было бы странным, если бы помнил 22 232 (на данный момент) сообщения.  :D
Владимир
 
Цитата
sokol92 написал:
если бы помнил 22 232
так остальные я помню.  :D  а это нет  :D

Справедливости ради там ваще простая история, а тут не понятно что таки хочется получить и пока это не понятно, вряд ли появится решение.
По вопросам из тем форума, личку не читаю.
 
На кибере ответили. По крайней мере код смог успешно использовать.
Я в экселе  не часто макросы пишу.
    Я пытался его изучать, но нигде нормального описания объектной модели не видел, точнее они наверно есть, но на английском. На русском все учебники я даже покупал какой то.
    Всего лишь нужно, нужно было найти способ определения на каком уровне группировки находится тот или иной столбец.
 
Цитата
antipod13 написал:
Всего лишь нужно, нужно было найти способ определения на каком уровне группировки находится тот или иной столбец.
полное противоречие то что
Цитата
antipod13 написал:
Я пробовал. Нечто подобное. Но OutlineLevel отвечает за уровень группировки,
а на  мои
Цитата
БМВ написал:
Что нужно узнать?
Цитата
БМВ написал:
Что нужно получить в итоге?
ноль ответов

ну и вишенка
Цитата
antipod13 написал:
Я пытался его изучать, но нигде нормального описания объектной модели не видел, точнее они наверно есть, но на английском.
если на это наложить  
Цитата
antipod13 написал:
А вот на восьмом уровне группировки мы значит, сисадмины там, программисты,
то мне ужасно стыдно за уровень этот восьмой, ибо
https://learn.microsoft.com/en-us/office/vba/api/overview/excel/object-model и я спецом переключаю язык а то всегда предлагает с автопереводом
https://learn.microsoft.com/ru-ru/office/vba/api/overview/excel/object-model
которого вполне достаточно для не только начального изучения.
По вопросам из тем форума, личку не читаю.
 
Вот и я про то же
Цитата
antipod13 написал:
Всего лишь нужно, нужно было найти способ определения на каком уровне группировки находится тот или иной столбец.
Макрос в сообщении #2 (2! Карл!) делает именно это
Согласие есть продукт при полном непротивлении сторон
Страницы: 1
Наверх