|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
11.03.2017, 12:38 | #11 |
Пользователь
Регистрация: 06.03.2017
Сообщений: 38
|
Ваш макрос работает. Плохо то, что в мои 71 вряд ли успею изучить VBA и разобраться.
Пожалуйста, ответьте: сложно ли задавать (менять) расположение результатов на поле (сдвигать вправо)? сложно ли размещать ответы на другом листе? возможно ли выдавать результат в виде выделенных номеров строк на другом листе? |
11.03.2017, 18:30 | #12 |
Форумчанин
Регистрация: 29.08.2012
Сообщений: 209
|
Ячейки с номерами строк теперь с выделением.
Так надо?
Алексей М.
Последний раз редактировалось AlexM12; 11.03.2017 в 18:33. |
12.03.2017, 04:36 | #13 |
Пользователь
Регистрация: 06.03.2017
Сообщений: 38
|
Не работает заливка в 25 строке. Для проверки я добавил единицу и в 26 строку (AE26) и в ней не работает.
|
12.03.2017, 10:16 | #14 |
Форумчанин
Регистрация: 29.08.2012
Сообщений: 209
|
Прикрепляйте файл, в котором неправильно работает макрос.
В АЕ26 единицу может проставить формула, поэтому я не понимаю как вы проставили ее в эту ячейку Еще доработанный вариант.
Алексей М.
Последний раз редактировалось AlexM12; 12.03.2017 в 10:36. Причина: Добавил файл. |
12.03.2017, 12:16 | #15 |
Пользователь
Регистрация: 06.03.2017
Сообщений: 38
|
Красиво смотрится!
В AE26 я и "вставил" единицу через формулу. Начну разбираться с VBA и макросами, т.к. выставленный на форум файл - усеченный (для удобства представления на форуме) вариант большого рабочего файла, в котором количество столбцов будет наращиваться примерно до 150. Поэтому думаю о том, смогу ли полученное Вами решение "механически" растянуть в три раза и поэтому для меня не праздный вопрос: почему, если Вам не сложно ответить, глючила 25 строка? Благодарен Вам за решение, ведь это мой первый выход на форум в инете и Вы первый, кто помог мне. А еще у меня пока не получается перенос макроса в другие файлы. |
12.03.2017, 14:42 | #16 |
Форумчанин
Регистрация: 29.08.2012
Сообщений: 209
|
Как переносить в дугой файл, если размер и положение таблицы точно такое же.
1. ПКМ кликнуть по ярлычку листа. Выбрать пункт "Исходный текст" Откроется модуль листа проекта VBA с именем книги в редакторе VBA. 2. Копировать код макроса в этом модуле. 3. В новой книге выполнить пункт 1 4. В модуль листа вставить код. 5. Закрыть редактор VBA 6. Сохранить файл. 7. Проверить работу. Если таблица больше редактируем код В строке Range("A1:AN18").Interior.ColorInde x = 0 Указан диапазон в котором работает выделение цветом Конкретно эта строка снимает выделение. В этой строке меняется диапазон на такой, как в новой таблице. А в строке For i = 1 To 18 18 меняют на число строк нового диапазона. В строке If Not Intersect(Range("B20:AN37"), Target) Is Nothing Then задан диапазон, в котором макрос выполняет заданные действия. И этот диапазон надо изменить. Почему глючила 25 строка. В предыдущем коде проверялось наличие единиц в том столбце где кликаем по ячейке и еще и еще в двух. Из формулы извлекались адреса только двух ячеек и определялись номера столбцов. Такой подход дал ошибку в 25 строке. В новом коде определяется три адреса из формулы.
Алексей М.
|
19.03.2017, 06:30 | #17 |
Пользователь
Регистрация: 06.03.2017
Сообщений: 38
|
Здравствуйте!
Развитие моей задачи. На примере. Допустим, активна ячейка AM34 (оранжевая) и, соответственно, выделены строки 8 и 14. Требуется в заданном (выбранном) столбце другого листа выставить единицы в 8 и 14 строках. Еще вопрос: в строке sm2 = Range(sm(4)).Column - Target.Column sm(4) корректно? Последний раз редактировалось Aristarkch; 19.03.2017 в 10:51. |
19.03.2017, 09:15 | #18 |
Форумчанин
Регистрация: 29.08.2012
Сообщений: 209
|
sm - массив адресов ячеек в текстовом формате.
Как он получается. Рассмотрим на примере выделения ячейки АМ34. Target.Formula - возвращает формулу из ячейки АМ34, =СУММПРОИЗВ(AM$1:AM$18*X$1:X$18*W$1 :W$18) Replace заменяет знаки умножения на двоеточие. Получаем =СУММПРОИЗВ(AM$1:AM$18:X$1:X$18:W$1 :W$18) Функция Split делит формулу на части по разделителю двоеточие. Получаем массив подстрок =СУММПРОИЗВ(AM$1 AM$18 X$1 X$18 W$1 W$18) Номера элементов массива начинаются с нуля. В макросе используем элемент sm(1) - AM$18, sm(2) - X$1 и sm(4) - W$1 sm0-sm2 - это смещение столбца относительно столбца выделенной ячейки АМ34 Значения смещения нужны для определения столбца, в котором искать единички и подкрашивать их. Развитие задачи не понял. Конкретно фразу "Требуется в заданном (выбранном) столбце другого листа выставить единицы в 8 и 14 строках". В предыдущей задачи выделяем ячейку на листе2 и там же подкрашиваем. А тут выделяем в столбце другого листа. Попробуйте объяснить подробно, так как я подробно расписал что делает всего одна строка кода sm = Split(Replace(Target.Formula, "*", ":"), ":")
Алексей М.
|
19.03.2017, 10:35 | #19 |
Пользователь
Регистрация: 06.03.2017
Сообщений: 38
|
Выделение строк
Удалил один ненужный лист и поэтому снова прикладываю файл уже с двумя листами.
На первом листе я выделяю ЛК в диапазоне B20:AN37 любую единичную ячейку, например, AM34 - показана оранжевой заливкой. При этом в диапазоне A1:AN18 заливаются зеленкой ячейки, лежащие в 8 и 14 строках, в том числе, A8 и A14. Мне требуется, чтобы на другом листе (у нас это второй лист) также выделились бы 8 и 14 строки. Лучшим вариантом выделения 8 и 14 строк на втором листе для меня была бы запись единицы в 8 строку и запись единицы в 14 строку одного из столбцов. Например, в ячейку A8 второго листа записывается единица и в ячейку A14 второго листа записывается единица. Т.е. на первом листе ячейки A8 и A14 залиты, а на втором листе в них единицы. Но еще лучше, чтобы столбец для записи единиц во втором листе можно было задавать (чтобы это был не обязательно первый столбец A) и чтобы можно было задавать и другой лист для записи (чтобы это был не обязательно второй лист). Предполагается, что выделения (единицы) на другом листе снимаются синхронно с выделениями на первом листе. |
19.03.2017, 11:04 | #20 |
Форумчанин
Регистрация: 29.08.2012
Сообщений: 209
|
Все реально сделать. Только есть вопрос.
Как вы планируете задавать в каком столбце и на каком листе ставить единички? Последняя фраза не совсем понятна. Надо ставить и убирать единицы или еще выделять цветом и снимать выделение?
Алексей М.
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Выделение строк | Aristarkch | Microsoft Office Excel | 12 | 07.03.2017 17:09 |
Выделение позиций(строк) | PayPinki | C++ Builder | 1 | 31.01.2013 10:11 |
Выделение строк в Мемо | Zuba | C++ Builder | 1 | 28.04.2012 13:11 |
выделение строк | ruavia3 | Microsoft Office Excel | 2 | 26.08.2009 13:36 |
Выделение строк с... по - в SynEdit | Noor | Общие вопросы Delphi | 2 | 29.12.2007 12:41 |