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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.03.2009, 14:15   #1
Mylips
 
Регистрация: 13.03.2009
Сообщений: 7
Вопрос Macros

Помогите плиз, нужн онайти инфу о том,как написать макрос, при запуске которого
1)Появится окошко для ввода имени закладки1 и закладки2, возле каждого поля ввода должна быть галочка.
2) Макрос сравнит соответствующие значения в колонке “С” обоих листов и на листе, который будет отмечен галочкой подсветит цветом те значения, которые отличаются от соответствующих на другом листе.
3) По отдельной кнопке на листе отмеченном всё той же галочкой запишет Total значения для каждого продукта в таблицу сверху слева.
Mylips вне форума Ответить с цитированием
Старый 13.03.2009, 14:39   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,858
По умолчанию

Как-то мутно Вы всё это объяснили...
Написать макрос недолго, но для начала неплохо было бы понять, что именно Вам требуется.
Как я понял, "закладка" есть ни что иное, как лист Excel.

Цитата:
окошко для ввода имени закладки1 и закладки2, возле каждого поля ввода должна быть галочка
Окошко-то мы нарисуем.
Но зачем вводить имена листов, если названия всех листов заранее известны?
Может, проще сделать выпадающий список, в котором будут изначально записываться (программно) имена всех листов книги Excel?

Цитата:
Макрос сравнит соответствующие значения в колонке “С” обоих листов и на листе, который будет отмечен галочкой
Так сколько будет полей для выбора названий листов, и сколько галочек?

Если подробно опишите, что же на самом деле Вам нужно, да ещё и прикрепите пример файла, то макрос получите в самое ближайшее время.
EducatedFool вне форума Ответить с цитированием
Старый 13.03.2009, 16:00   #3
Mylips
 
Регистрация: 13.03.2009
Сообщений: 7
По умолчанию

Да,закладка-это лист эксель. Их имена заранее не известны (т.е. Sheet1, Sheet2). Например, всплывает окно, в котором надо ввести имя листа, рядом можно сделать чекбокс , потом второе окно,в котором имя второго листа вводим, и, в зависимости от того, какой чекбокс чекнут на том листе значения и подсветит:"Макрос сравнит соответствующие значения в колонке “С” обоих листов и на листе, который будет отмечен галочкой подсветит цветом те значения, которые отличаются от соответствующих на другом листе."
Спасибо за ответ))
Вложения
Тип файла: zip TestCasesNumberPerProduct.zip (12.7 Кб, 15 просмотров)
Mylips вне форума Ответить с цитированием
Старый 13.03.2009, 16:18   #4
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,858
По умолчанию

Цитата:
Их имена заранее не известны (т.е. Sheet1, Sheet2)
Ну и что?
В выпадающем списке уже перечислены ВСЕ листы, присутствующие в файле.

Цитата:
Макрос сравнит соответствующие значения в колонке “С” обоих листов и на листе
То есть в обработке участвуют 3 листа?
Ну, 2 листа - это те, которые заполнены
А для выбора должны предоставляться только незаполненные листы?


Макрос написать очень просто, но что и как он должен делать - я не понял.

Посмотрите, так должна выглядеть форма?
Вложения
Тип файла: rar TestCasesNumberPerProduct.rar (17.1 Кб, 18 просмотров)
EducatedFool вне форума Ответить с цитированием
Старый 13.03.2009, 16:29   #5
Mylips
 
Регистрация: 13.03.2009
Сообщений: 7
По умолчанию

Нет, в обработке учавствуют только 2 листа. Вот те 2 первых,что есть в форме (она так и должна выглядеть как вы прислали). Прсот одолжно всплывать окно, в котором надо ввести название первого листа, рядом с полем для ввода чекбокс. Пото второе окно, тоже с полем для ввода и чекбоксом. Макрос сравнивает значения на первом и втором листе в колонках С, а потом на том листе который отмечен галочкой (чекбоксом) подсветить отличающиеся значения от первого листа в этой же колонке С. Потом должна быть кнопочка Total, при нажатии на которую значения под каждым продуктом из ячейки D67 например (для первого продукта) запишет Total значения для каждого продукта в таблицу сверху слева (для первого продукта это значит скопировать значение D67 в ячейку H2)
Mylips вне форума Ответить с цитированием
Старый 13.03.2009, 17:01   #6
Mylips
 
Регистрация: 13.03.2009
Сообщений: 7
По умолчанию

Итого, нужен макрос, который:
1. создает окно для ввода названия экселевских листов и с возможностью ставить галочку возле имени листа
2. сравнивает значения на 2ух листах в колонке С
3. те значения,кот отличаются подсвечивает на листе. отмеченном галочкой в п.1
4. создает кнопку Total
5. при нажатии на кнопку ячейки с Total для каждого продукта копируются в другие ячейки (сверху справа есть табличка)
Mylips вне форума Ответить с цитированием
Старый 13.03.2009, 17:11   #7
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,858
По умолчанию

Цитата:
сравнивает значения на 2ух листах в колонке С
при такой формулировке задачи вряд ли Вы дождётесь её решения...

Надо ПОДРОБНО описывать задачу.
Например:
Макрос сравнивает каждую ячейку диапазона c2:c350 на листе Лист1, с ячейками диапазона c2:c200 на листе с названием Лист2.
В случае, если на листе2 найдено такое значение, производится поиск такого значения на листе с именем Лист3, и найденная ячейка (на Листе3) окрашивается в красный цвет


Будет описание - будет решение.
EducatedFool вне форума Ответить с цитированием
Старый 13.03.2009, 17:24   #8
Mylips
 
Регистрация: 13.03.2009
Сообщений: 7
По умолчанию

Именно так)))
макрос:
1. создает окно для ввода названия 2ух экселевских листов и с возможностью ставить галочку(чекбокс) возле имени листа
2. сравнивает каждую ячейку диапазона c3:c66, с69-с88, с92-с94, с98-с103, с107-с113, с119-с121 (просто диапазон разбит совмещенными ячейками с названиями)на листе Лист1, с ячейками такого же диапазона на листе с названием Лист2.
3. В случае, если на листе2 найдено такое значение то найденная ячейка окрашивается в красный цвет (на листе который отмечен чекбоксом в пункте 1: т.е. это может быть как Лист1 так и Лист2)
4. создает кнопку Total на Листе1 и на Листе2
5. при нажатии на кнопку Total : D67 копируется в H2, D89 в I2, D95 в Л2, D104 в L2, D114 в M2, D122 в N2
Mylips вне форума Ответить с цитированием
Старый 13.03.2009, 17:25   #9
Mylips
 
Регистрация: 13.03.2009
Сообщений: 7
По умолчанию

Попытка более точно описать)
Mylips вне форума Ответить с цитированием
Старый 13.03.2009, 18:00   #10
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,858
По умолчанию

Это Вы называете описанием?
Цитата:
В случае, если на листе2 найдено такое значение то найденная ячейка окрашивается в красный цвет (на листе который отмечен чекбоксом в пункте 1: т.е. это может быть как Лист1 так и Лист2)
Я не нашёл в вашем файле ни листа с именем Лист1, ни листа с именем Лист2

Цитата:
при нажатии на кнопку Total : D67 копируется в H2, D89 в I2, D95 в Л2, D104 в L2, D114 в M2, D122 в N2
На каком листе это всё делать?
На первом попавшемся?

Может, кто другой разберётся, что вы там имели ввиду...
Я же без подробного описания ничего делать не буду.
EducatedFool вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Joining Two Macros london735 Microsoft Office Excel 13 29.06.2008 18:37