|
0 / 0 / 0
Регистрация: 08.04.2013
Сообщений: 29
|
|
Как зафиксировать кнопку при скроллинге25.06.2015, 17:24. Показов 9010. Ответов 24
Метки нет (Все метки)
Всем привет!
Посоветуйте, как можно зафиксировать элемент управления при скроллинге? Задача такая: имеется очень длинная таблица Excel, порядка 300 столбцов. Нужно создать что-то типо меню средствами элементов управления и разместить его в верхней части листа. При этом при скроллинге (либо при скрытии столбцов) элементы должны быть всегда видимыми. То есть они должны как бы "висеть" над листом. Какие идеи? Вариант зафиксировать первые столцы и там размещать отпадает, т.к. элементов много - "меню" пойдет в длину а не в ширь. P.S. пробовала создать пользовательское меню, но не понравился интерфейс, который получается. В частности нужно компактно разместить 25 элементов при этом логически отделить их друг от друга..с этим и возникла проблема.
0
|
|
| 25.06.2015, 17:24 | |
|
Ответы с готовыми решениями:
24
Как зафиксировать меню без шапки при скроллинге?
Как зафиксировать div-кнопку в одних координатах? |
|
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
|
|
| 25.06.2015, 17:59 | |
|
1
|
|
|
2049 / 479 / 133
Регистрация: 13.11.2008
Сообщений: 918
|
|
| 25.06.2015, 18:02 | |
|
Почему закрепление не подходит? Ведь можно закрепить и строку и столбец. Оставляете первый столбец под элементы. Придаете ему ширину, достаточную для компромисса между доступностью элементов и рабочей областью. Тоже со строкой.
Еще можно форму сделать с кнопками и меню. Скомпоновать в группы можно при помощи MultiPage. Или надстройку тогда делайте - все элементы будут на ленте. А иных вариантов просто нет.
1
|
|
|
0 / 0 / 0
Регистрация: 08.04.2013
Сообщений: 29
|
|
| 25.06.2015, 18:29 [ТС] | |
|
у меня нужные стоблцы и строки итак зафискированы. Вариант с отдельным столбцом не подходит, т.к. съедает много места, единственное возможное использовать первые 5 строк..
прикрепляю скрин файла для наглядности при создании надстройки возникла проблема с внешним видом - красиво расположить данные не получилось, не знаю как controls объединить в определённые смысловые группы - деятельность, период, сценарий и т.д. и отделить их друг от друга. Получается все скопом. поэтому решила сделать "меню" на самом листе. Добавлено через 5 минут А поподробнее насчет ShowModal? я использую отдельные элементы activex на листе
0
|
|
|
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
|
||
| 25.06.2015, 20:04 | ||
|
1
|
||
|
0 / 0 / 0
Регистрация: 08.04.2013
Сообщений: 29
|
|
| 25.06.2015, 21:53 [ТС] | |
|
Так и сделала, но когда выводишь форму все остальные элементы становятся не активы, в том числе прокрутка..Нужно чтобы в момент работы формы можно было вносить изменения в листе и пользоваться всеми другими функциями excel
0
|
|
|
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
|
|
| 25.06.2015, 21:59 | |
Сообщение было отмечено anilonia как решение
Решение
anilonia, пардон, нужно наоборот ShowModal=False
1
|
|
|
0 / 0 / 0
Регистрация: 08.04.2013
Сообщений: 29
|
|
| 25.06.2015, 22:48 [ТС] | |
|
Спасибо! Очень круто! Все работает!
Но я бы еще хотела попробовать с надстройкой разобраться Может быть посоветуете, как можно в созданной надстройке command bar сгруппировать command button ? Нужно сделать красивое меню, чтобы все "чек боксы" были выровнены, сгруппированы и разделены разделителем?
0
|
|
|
2049 / 479 / 133
Регистрация: 13.11.2008
Сообщений: 918
|
|
| 26.06.2015, 00:20 | |
|
Здесь нельзя выкладывать ссылки на другие сайты, могу в личку скинуть ссылку - я статью писал про надстройки. Как я понял - у Вас Excel не ниже 2007. А там можно красивые меню делать через XML-схемы.
2
|
|
|
0 / 0 / 0
Регистрация: 08.04.2013
Сообщений: 29
|
|
| 26.06.2015, 00:53 [ТС] | |
|
Спасибо! Походу я именно эту статью и нашла. Сейчас делаю через ribbon editor ) шик блеск)
Добавлено через 11 минут Но всё равно пришлите, пож-та, на всякий случай) Добавлено через 16 минут Так, вроде с ribbon разобралась, теперь необходимо чтобы для каждого листа в книге надстройки, созданные в ribbon, или наполнение надстройки менялось. Например, выбираю лист 1 - в надстройке отображается один набор кнопок, выбираю лист 2-другой и т.д. Как это сделать? Идея в том, чтобы прописать разный функционал управления для разных листов.
0
|
|
|
2049 / 479 / 133
Регистрация: 13.11.2008
Сообщений: 918
|
|
| 26.06.2015, 01:29 | |
Сообщение было отмечено anilonia как решение
Решение
Ссылку отправил.
По вопросу отображения элементов по активации листа. Особо "кошерных" методов нет. Можно использовать функции обратного вызова, например "getVisible". Во вложении пример наглядного использования именно этой функции. Ничего заумного нет. Если захотите под себя подстроить, то останется только плодить группы в схеме XML и дополнять их в код.
1
|
|
|
0 / 0 / 0
Регистрация: 08.04.2013
Сообщений: 29
|
|
| 26.06.2015, 10:42 [ТС] | |
|
Это действительно то, что нужно!
Буду адаптировать под свой файл) Дмитрий, скажите, а если файл будет открыт в 2003 офисе, будет ли работать ribbon меню и соответственно макросы к нему? мне нужно сделать универсальный вариант, чтобы все корректно работало и отображалось в разных версиях офиса.
0
|
|
|
2049 / 479 / 133
Регистрация: 13.11.2008
Сообщений: 918
|
|
| 26.06.2015, 11:49 | |
|
Нет, 2003 не поддерживает Ribbon. Я бы посоветовал тогда сделать просто две версии - одна для 2007 и выше, другая для ранних версий.
2003 поддерживает только создание панели, при этом на 2007 она будет выглядеть...ну не очень, в контрасте с остальным интерфейсом. Но управлять видимостью и доступностью тоже можно. Во вложении пример из моей статьи, дополненный управлением видимостью кнопки в зависимости от имени активного листа. Обращаю внимание - там добавился объект objExApp, чтобы можно было отследить любые доступные события приложения(активация книг, листов, ячеек). Я использовал событие активации любого листа любой из открытых книг. И в зависимости от имени этого листа показывается кнопка. Как добавить свои кнопки, думаю разберетесь.
1
|
|
|
0 / 0 / 0
Регистрация: 08.04.2013
Сообщений: 29
|
|
| 28.06.2015, 23:54 [ТС] | |
|
Теперь появился следующий вопрос. Как мне из vba узнать какие чекбоксы выбраны? Ведь они теперь элементы ribbon. Как к ним обратиться?
0
|
|
|
2049 / 479 / 133
Регистрация: 13.11.2008
Сообщений: 918
|
||||||
| 29.06.2015, 10:53 | ||||||
|
Я думаю имеет все же смысл почитать чуть-чуть про создание функций обратных вызовов. У того же Новикова хватает информации, а RibbonXMLEditor может создавать автоматом "скелет" этих функций. Для CheckBox-ов это выглядит примерно так:
Change_CheckBox - процедура, которая должна быть назначена на OnAction для этого CheckBox-a.
1
|
||||||
|
0 / 0 / 0
Регистрация: 08.04.2013
Сообщений: 29
|
|
| 29.06.2015, 21:17 [ТС] | |
|
Спасибо, еще почитаю дополнительно. Сразу извиняюсь, за может быть глупые вопросы, но я не волшебник, я только учусь
Дмитрий, еще такой вопрос, в присланном примере файл.xlsm когда начинаешь работать с самим файлом - заполняешь данные в листах - все чекбоксы в созданном меню пропадают / либо перестают меняться в зависимости от выбранного листа. как с этим бороться?
0
|
|
|
2049 / 479 / 133
Регистрация: 13.11.2008
Сообщений: 918
|
||
| 30.06.2015, 19:12 | ||
|
1
|
||
|
0 / 0 / 0
Регистрация: 08.04.2013
Сообщений: 29
|
|
| 30.06.2015, 20:58 [ТС] | |
|
В том то и дело что код не трогаю, а чекбоксы не меняются. Попробуйте сами в вашем файле написать что-нибудь в ячейке, а потом перейти на другой лист.
0
|
|
|
2049 / 479 / 133
Регистрация: 13.11.2008
Сообщений: 918
|
||||||
| 30.06.2015, 22:32 | ||||||
|
В каком именно файле? Попробовал - все работает. Записал в ячейке цифру. Перешел на другой лист. Все поменялось на панели. Изменил 1 на слово "единица". Тоже все работает.
Как вариант, попробуйте в модуль ЭтаКнига вставить такой код:
1
|
||||||
|
0 / 0 / 0
Регистрация: 08.04.2013
Сообщений: 29
|
|
| 01.07.2015, 11:11 [ТС] | |
|
Да, добавила в Эту Книгу, все заработало, теперь не пропадает.
А как сделать так, чтобы и при работе с ячейками чекбоксы не исчезали (или просто становились неактивными, как например во вкладке "разметка страницы")? Сейчас в момент когда пишешь что-нибудь в ячейки - панель с чекбосками пропадает, заканчиваешь - появляется. Чтобы этого мерцания не было..
0
|
|
| 01.07.2015, 11:11 | |
|
Помогаю со студенческими работами здесь
20
ListView: сбивается содержимое ImageView элемента при скроллинге + как сделать выделение пункта списка при нажатии? Автоподгрузка контента при скроллинге, как в Инстаграм Как ускорить работу TreeView (мерцание при скроллинге)
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога
Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
|