Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Управление группировкой из ячейки - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Управление группировкой из ячейки
ilikeread Дата: Пятница, 10.01.2014, 14:24 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 56
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
День добрый, уважаемые.

Подскажите возможно ли управлять скрытием/отображением строк по клику на ячейку, а не на крестики.
А панель с крестиками вообще скрыть.

В приложенном файле 2 уровня. Вообще планируется до 4-5
К сообщению приложен файл: 8687174.xlsx (10.2 Kb)
 
Ответить
СообщениеДень добрый, уважаемые.

Подскажите возможно ли управлять скрытием/отображением строк по клику на ячейку, а не на крестики.
А панель с крестиками вообще скрыть.

В приложенном файле 2 уровня. Вообще планируется до 4-5

Автор - ilikeread
Дата добавления - 10.01.2014 в 14:24
_Boroda_ Дата: Пятница, 10.01.2014, 14:32 | Сообщение № 2
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
А как Вы себе это представляете? Ну ладно, скрыть еще можно, а вот отобразить-то как, если ячейка, на которую кликать нужно, скрыта? Куда Вы кликать будете?
Кстати, можно самими крестиками не пользоваться. Видите над ними вверху цифры 1, 2 и 3? понажимайте на них, может, Вас это устроит?


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеА как Вы себе это представляете? Ну ладно, скрыть еще можно, а вот отобразить-то как, если ячейка, на которую кликать нужно, скрыта? Куда Вы кликать будете?
Кстати, можно самими крестиками не пользоваться. Видите над ними вверху цифры 1, 2 и 3? понажимайте на них, может, Вас это устроит?

Автор - _Boroda_
Дата добавления - 10.01.2014 в 14:32
ilikeread Дата: Пятница, 10.01.2014, 14:44 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 56
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
А как Вы себе это представляете?


представляю так:
по клику на ячейку B6 скрываются строки 7-16. ещё один клик по ячейке B6 - строки отображаются.
по клику на ячейку С7 - скрываются/отображаются строки 8-9
ну и так далее

ячейки по которым кликаем никуда не скрываются
в идеале должен получится управляемый кликами по заголовкам многоуровневый список
 
Ответить
Сообщение
А как Вы себе это представляете?


представляю так:
по клику на ячейку B6 скрываются строки 7-16. ещё один клик по ячейке B6 - строки отображаются.
по клику на ячейку С7 - скрываются/отображаются строки 8-9
ну и так далее

ячейки по которым кликаем никуда не скрываются
в идеале должен получится управляемый кликами по заголовкам многоуровневый список

Автор - ilikeread
Дата добавления - 10.01.2014 в 14:44
_Boroda_ Дата: Пятница, 10.01.2014, 15:32 | Сообщение № 4
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Ну тада где-то так:
[vba]
Код
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
        'If Intersect(Target, UsedRange) Is Nothing Then Exit Sub'Не нужно
        If Target.Count > 1 Then Exit Sub'если случайно даблкликнули на линию меж ячейками - до свидания
        If Target.Value = "" Then Exit Sub'если ячейка пустая - тоже
        If Target.Offset(1).Value <> "" Then Exit Sub'если ячейка ниже не пустая - тоже
        r0_ = Target.Row + 1'пусть r0_= номер строки ниже
        r1_ = Target.End(xlDown).Row - 1'пусть r1_=номер заполненной ячейки ниже -1
        If r1_ = Rows.Count - 1 Then'если ниже заполненных нет
            r1_ = Range("A1").SpecialCells(xlLastCell).Row'r1_=строке последней значимой ячейке листа (Как Контрл Енд)
            If r1_ < r0_ Then r1_ = UsedRange.Row + UsedRange.Rows.Count'если кликнута ячкейка в последней значимой строке, то смотрим уже на UsedRange и берем на 1 больше
        End If
        Cancel = True'не проваливаться в ячейку
        Rows(r0_ & ":" & r1_).EntireRow.Hidden = Not Rows(r0_ & ":" & r1_).EntireRow.Hidden'скрыть строки с r0 по r1
End Sub
[/vba]
К сообщению приложен файл: 8687174_1.xlsm (17.6 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеНу тада где-то так:
[vba]
Код
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
        'If Intersect(Target, UsedRange) Is Nothing Then Exit Sub'Не нужно
        If Target.Count > 1 Then Exit Sub'если случайно даблкликнули на линию меж ячейками - до свидания
        If Target.Value = "" Then Exit Sub'если ячейка пустая - тоже
        If Target.Offset(1).Value <> "" Then Exit Sub'если ячейка ниже не пустая - тоже
        r0_ = Target.Row + 1'пусть r0_= номер строки ниже
        r1_ = Target.End(xlDown).Row - 1'пусть r1_=номер заполненной ячейки ниже -1
        If r1_ = Rows.Count - 1 Then'если ниже заполненных нет
            r1_ = Range("A1").SpecialCells(xlLastCell).Row'r1_=строке последней значимой ячейке листа (Как Контрл Енд)
            If r1_ < r0_ Then r1_ = UsedRange.Row + UsedRange.Rows.Count'если кликнута ячкейка в последней значимой строке, то смотрим уже на UsedRange и берем на 1 больше
        End If
        Cancel = True'не проваливаться в ячейку
        Rows(r0_ & ":" & r1_).EntireRow.Hidden = Not Rows(r0_ & ":" & r1_).EntireRow.Hidden'скрыть строки с r0 по r1
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 10.01.2014 в 15:32
ilikeread Дата: Пятница, 10.01.2014, 16:49 | Сообщение № 5
Группа: Пользователи
Ранг: Участник
Сообщений: 56
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
вот СПАСИБО.
То что нужно.

Теперь пара ночей для того чтобы разобраться с макросом (понять что к чему и доделать) и думаю всё получится.

Если не разберусь черкну тут, вы уж не обессудьте.


Сообщение отредактировал ilikeread - Пятница, 10.01.2014, 16:52
 
Ответить
Сообщениевот СПАСИБО.
То что нужно.

Теперь пара ночей для того чтобы разобраться с макросом (понять что к чему и доделать) и думаю всё получится.

Если не разберусь черкну тут, вы уж не обессудьте.

Автор - ilikeread
Дата добавления - 10.01.2014 в 16:49
ilikeread Дата: Понедельник, 13.01.2014, 12:13 | Сообщение № 6
Группа: Пользователи
Ранг: Участник
Сообщений: 56
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
Уважаемый _Boroda_,

А можно получить макрос с комментариями по каждой строке - что делает.

Работает не совсем верно, а что поправить не пойму.
 
Ответить
СообщениеУважаемый _Boroda_,

А можно получить макрос с комментариями по каждой строке - что делает.

Работает не совсем верно, а что поправить не пойму.

Автор - ilikeread
Дата добавления - 13.01.2014 в 12:13
ilikeread Дата: Понедельник, 13.01.2014, 15:19 | Сообщение № 7
Группа: Пользователи
Ранг: Участник
Сообщений: 56
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
Спасибо.
+ в репу поставить сегодня больше не даёт.

Принцип работы понял. знаний реализовать не хватает. :(

А можно ли сделать чтобы разворачивалось не всё дерево сразу, а постепенно, по уровням?
Для того чтобы сворачивать постепенно догадался поставить концевые метки разделов.

Вот если сделать разворачивание постепенное, то получится полная замена группировки, и наверняка не я один скажу вам спасибо.
 
Ответить
СообщениеСпасибо.
+ в репу поставить сегодня больше не даёт.

Принцип работы понял. знаний реализовать не хватает. :(

А можно ли сделать чтобы разворачивалось не всё дерево сразу, а постепенно, по уровням?
Для того чтобы сворачивать постепенно догадался поставить концевые метки разделов.

Вот если сделать разворачивание постепенное, то получится полная замена группировки, и наверняка не я один скажу вам спасибо.

Автор - ilikeread
Дата добавления - 13.01.2014 в 15:19
ilikeread Дата: Понедельник, 13.01.2014, 16:21 | Сообщение № 8
Группа: Пользователи
Ранг: Участник
Сообщений: 56
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
На примере:
глобальная идея: Замена группировки - макросом.
когда мы открываем первый уровень, то мы видим заголовки второго уровня, кликая по ним, разворачиваем следующий уровень и так далее.

приложил пример группировки сделанный стандартным способом, через меню Данные-Структура.
что в нём не устраивает, так это дерево из +/- слева от таблицы, которым осуществляется управление.
На втором листе та же структура + Ваш макрос + метки конца разделов (можно покрасить белым), без них например при клике на D9 стуктура свернётся полностью до 28 строки.
К сообщению приложен файл: 4582036.xlsm (17.1 Kb)
 
Ответить
СообщениеНа примере:
глобальная идея: Замена группировки - макросом.
когда мы открываем первый уровень, то мы видим заголовки второго уровня, кликая по ним, разворачиваем следующий уровень и так далее.

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

Автор - ilikeread
Дата добавления - 13.01.2014 в 16:21
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!