Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.02.2014, 06:28   #31
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
Хорошо

любая ячейка (группа ячеек) отмечается обычным путем
для управления режимами работы программы используется одна кнопка. она же является индикатором состояния.
на кнопке может быть одна из 3-х надписей позволяющих:
1. START Selecting - включить возможность отмечать ячейки
2. SHOW Selected - показать отмеченные (список будет обнулен)
3. STARTed... - остановить функцию отмечания ячеек

в состоянии:
1 - программная возможность отмечать ячейки отключена
2 - отмеченная мышью любая ячейка или гркппа ячеек добавляется в список отмеченных, если ячейка (группа) уже была в списке - то удаляется из него
3 - можно отключить функцию программного отмечания ячеек

каждое измение списка отражается в строке статуса:
К-во: адр1, адр2 ... адрХ

после нажатия SHOW Selected все ранее отмеченные ячейки становятся в режим Selected, правой кнопкой по одной из них, формат ячеек и ... выставляете нужное Вам форматирование

"квадратный бублик" как в приложенном файле можно получить отметив A1:C9 а потом B4:B6 или наоборот.
Вложения
Тип файла: rar MultiSelect.rar (20.1 Кб, 11 просмотров)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете

Последний раз редактировалось IgorGO; 04.02.2014 в 13:31.
IgorGO вне форума Ответить с цитированием
Старый 04.02.2014, 08:18   #32
maksim_serg
Форумчанин
 
Аватар для maksim_serg
 
Регистрация: 25.03.2010
Сообщений: 417
По умолчанию

т.е. возможно отметить 3 ячейки, потом к ним добавить еще 5 где-то рядом, потом еще 1.

в результате:
- имеем 9 отмеченных ячеек (не обязательно граничащих между собой)
- визуально понятно что отмечено
- и им можно задать теперь вручную требуемое форматирование?
это работает???


да, IgorGo, все три пункта у меня работают. Могу видео снять с экрана
maksim_serg вне форума Ответить с цитированием
Старый 04.02.2014, 10:33   #33
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

работатет с приведеным в #16 примером макроса?

Код:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error Resume Next
Dim p As Boolean: p = False
Err.Clear
Dim Items As New Collection
...
при кадом входе в процедуру (каждом новом отмеченном) Items - это новая, пустая коллекция. где хранится информация от отмеченной прошлый раз ячейке (группе ячеек)?

возможно у меня гранаты не той системы, вот и не работает.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 04.02.2014, 10:47   #34
maksim_serg
Форумчанин
 
Аватар для maksim_serg
 
Регистрация: 25.03.2010
Сообщений: 417
По умолчанию

не знаю про какие вы гранаты говорите, наверно это шутка. Да в Items с каждым кликом новая коллекция, которая обновляется при каждом выборе ячеек, пусть то добавление или удаление. Это согласен не вполне удобно, так как долго, но так и не нашел как узнать по какой ячеейке был щелчок, Target возвращает все выбранные ячейки, а не последнею. Каждый раз Items обновляется, в нее заносятся только уникальные адреса ячеек при условии что такого адреса еще не было, а если уже был ранее в коллекции, то не просто не добавляется, а еще и удаляется ранее добавленый (исключение ранее выбраной ячейки из набора). далее все эти адреса объединяются и выделяются на листе с помощью метода Select. И да, можно выделить 5 ячеек, потом еще 3 в другом месте, а потом одно из этих убрать повторным кликом на выделеной ячейке. А потом форматируйте их как угодно, лично я пользуюсь лентой.
maksim_serg вне форума Ответить с цитированием
Старый 04.02.2014, 10:56   #35
maksim_serg
Форумчанин
 
Аватар для maksim_serg
 
Регистрация: 25.03.2010
Сообщений: 417
По умолчанию

P.S.: вот на ум пришло Actvecell. может он вернет текущую ячейку а не набор?
maksim_serg вне форума Ответить с цитированием
Старый 06.02.2014, 05:22   #36
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

чуть поправил предыдущий вариант.
отмечать ячейки можно когда кнопка в состоянии STARTed...

щелчок по кнопке в состоянии START selecting запускает процедуру
щелчек по кнопке в состоянии STARTed... останавливает процедуру, удаляет отметку с ячеек

при включенной процедуре щелчек по любой ячейке (группе ячеек) додавляет ее к числу уже выбранных или удаляет, если ячейка уже была отмечена
отмечать можно целыми колонками и строками, только аккуратно: если отметить колонку, а потом отметить ее повторно (значит снять отметку) пересчет длительный, на моем компьютере - несколько минут.
Вложения
Тип файла: rar MultiSelect.rar (19.1 Кб, 17 просмотров)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 06.02.2014, 10:33   #37
явген
Пользователь
 
Аватар для явген
 
Регистрация: 06.08.2011
Сообщений: 40
По умолчанию

100процентное попадание в цель. Только вот интересно, как это все сделано, макросом или другими возможностями Excel 2003.
Явген
явген вне форума Ответить с цитированием
Старый 06.02.2014, 13:00   #38
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

код доступен. изучайте...
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 07.02.2014, 14:17   #39
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

и еще вариант, который работает вменяемое время (по несколько секунд)на любом количестве отмеченных данных
Вложения
Тип файла: rar MultiSelect.rar (39.9 Кб, 14 просмотров)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 07.02.2014, 15:16   #40
maksim_serg
Форумчанин
 
Аватар для maksim_serg
 
Регистрация: 25.03.2010
Сообщений: 417
По умолчанию

Если выделить несколько столбцов, например A:H, а потом потытатся снять выделение с третьей строки, выделением всей строки, то выделение снимается, но добавляются лишние ячейки( остатки от строки. так сказать). Это какое то инвертирование выделения получается...
maksim_serg вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ctrl+shift+g delphi 7 Jleksern Общие вопросы Delphi 4 25.08.2012 20:33
как отследить нажатие Ctrl+Shift v4567 Qt и кроссплатформенное программирование С/С++ 4 31.05.2011 18:42
Ctrl + Shift + C не работает Neobrat Общие вопросы Delphi 3 15.10.2010 00:17
Ctrl+Shift+Enter наоборот mihakr Microsoft Office Excel 3 13.03.2009 12:25
Обработка Ctrl+V и Shift+Ins в SpinEdit ZeLiK Общие вопросы Delphi 9 26.02.2008 02:22