Exсel. Помощь по составлению таблиц и созданию макросов в мебельных расчётах
Что такое макрос. Как его писать. На каком языке он пишется.
Предлагаю опытным форумчанам делиться своими знаниями Exel, в применении к мебельным задачам. С картинками и примерами. Как, например сделать так, чтобы нажав на созданную кнопку бралось значение ячейки с одного листа и прибавлялось к значению ячейки на другом листе? Варианты решения данной задачи во вложенном файле. |
Вложений: 1
Да, это оно, Из всех трех предложенных вариантов разберу и приму к сведению все три, но нет ни одного варианта, с обратным действием, поставил флажок- там добавилась цена в формулу, снял флажок- все онулилось как было...
P.S. Спасибо огромное за тему. Возможно я неточно сформулировал то, чего хочу,исправился |
Благодарю за файл примера и более чёткую формулировку задачи. Всё стало намного яснее.
Самый простой способ решения этой задачи через связь флажка с ячейкой. Рассказываю, показываю: правой кнопкой щёлкаем на элементе управления (флажке). В контекстном меню выбираем "Формат объекта" http://img13.imageshost.ru/img/2013/...3064dda7fe.jpg Во вкладке "Элемент управления" выбираем для Флажка 1 связь с ячейкой, например, В2, http://img13.imageshost.ru/img/2013/...3077b03a6f.jpg Жмём Ок Теперь при установке Флажка 1 в ячейке В2 появится слово "ИСТИНА" (оно же означает "1" - единица), при снятии флажка "ЛОЖЬ" (оно же "0" - ноль). Тоже повторяем для Флажка 2 и Флажка 3. В целевой ячейке (обведенной рамкой) введим формулу =F2*B2+F4*B4+F6*B6, т.е перемножаем цену товара на ячейки, зависимые от Флажков. Чтобы целевые ячейки не мозолили глаза и таблица выглядела эффектно, столбец В можно просто скрыть (работать таблица от этого не перестанет) http://img13.imageshost.ru/img/2013/...30a0a189d9.jpg Радуемся (не забываем) :) Готовый ответ во вложении. Но рекомендую самостоятельно прийти к нему, повторив вышеописаный "фокус". |
Дело было не в бобине, да?)))
Огромное спасибо, ваш ответ очень поднял планку моей самооценки, теперь я тоже это умею)) надеюсь тема не увянет, и разовьется)) и еще по поводу макросов, все таки хочу научиться их писать, каким должно быть тело макроса, какая должна быть структура его? |
Цитата:
Макрос - это программа, выполняющая вместо нас некие часто повторяющиеся и полезные нам действия. Чтобы вместо нажимания восьмидесяти восьми кнопок на клавиатуре и маслания километров колесом мыши, причём повторяющихся изо дня в день (да смотри не перепутай!) - всё это совершалось нажатием одной клавиши (сочетания клавиш) или клика мышью по созданной кнопочке! Как создаются макросы разберём на простом примере. Скопировать значение ячейки А1 в ячейку В1. Создаём новую книгу и Сохраняем её. В ячейку А1 вводим любое число. Начинаем запись макроса: Сервис - Макрос - Начать запись http://img13.imageshost.ru/img/2013/...3884525930.jpg Всплывает окошко: http://img13.imageshost.ru/img/2013/...38a01b2f11.jpg Рассмотрим его внимательно. Имя макроса автоматом предлагается Макрос1, можно назвать его и по своему например Мой_макрос_который_копирует_значение. Важно! Имя макроса не должно содержать пробелов! Сочетание клавиш. Можно не назначать. Но если действия выполняемые макросом будут очень часты, удобно назначить "горячую клавишу" например Сtrl+й. Важно! Если назначите макросу уже зарезервированные системой сочетания (такие как Сtrl+с - копировать, Сtrl+v - вставить ...), то в этой книге после нажатия сочетаний будет работать макрос, а не они. Латинские и русские буквы различаются. Поэтому Сtrl+й и Сtrl+q будут различаться, хотя и будем нажимать одну и ту же клавишу. Сохранить в .... Здесь в выпадающем меню предлагается сохранить макрос только в этой книге. Так, наше Сtrl+й, будет работать только здесь, а в любой другой книге Сtrl+й - работать не будет. Если же мы сохраним в личной книге макросов, то макрос будет работать в любой даже вновь созданной книге. Описание. Можно не заполнять. Автоматом туда вписывается комментарий когда и кем создан макрос. Если что-то хотите для напоминания ещё туда записать - на здоровье - на работу макроса это влиять не будет. Нажали ОК. Теперь работаем ручками, т.е. клавиатурой или мышью. Эксель всё запоминает и записывает последовательность наших действий. Кликаем на ячейке А1, затем Сtrl+с - копируем, кликаем на ячейке В1, Сtrl+v - вставляем. Готово! Теперь нам надо остановить запись. Сделать это можно, нажав кнопку на всплывшей панели остановки макроса, а можно опять же через меню Сервис - Макрос - Остановить запись http://img13.imageshost.ru/img/2013/...3909e310f0.jpg А теперь самое интересное! Залезем в запись макроса, в программу, которую Эксель сделал следя за нашими действиями и переводя их на язык VBA - Вижуал Бейсик фор Апликейшн. Сервис - Макрос - Макросы (или Alt+F8) http://img13.imageshost.ru/img/2013/...39218bb771.jpg В появившемся окне, выбираем "Войти" http://img13.imageshost.ru/img/2013/...393ebbe2dc.jpg Открывается наш записанный макрос. http://img13.imageshost.ru/img/2013/...395d9e76e0.jpg Это автоматическая запись. Всё это можно было точно также набирать в данной программе ручками, зная язык программирования VBA. Начинается программа с Sub и далее через пробел название программы Затем после ' идут комментарии не влияющие на ход выполнения программы - эти строки зелёные. Далее чёрным - это исполняемые строки программы. В конце End Sub - конец программы. Попробуем прочитать нашу программу. Selection.Copy - Выделенное. Скопировать Range("B1").Select - Ячейку B1. Выделить ActiveSheet.Paste - На текущем листе. Вставить Т.е. макрос записал, что копируется не ячейка А1, а копируется любая выделенная ячейка в B1. Непорядок. :( Останавливаем выполнение макроса. Жмём значок "квадратик" в верхней панели. http://img13.imageshost.ru/img/2013/...398ad4f119.jpg Переписываем макрос добавив вверху строку Range("A1").Select - Ячейку А1. Выделить Selection.Copy Range("B1").Select ActiveSheet.Paste Порядок! Сохраняем нашу редакцию макроса. http://img13.imageshost.ru/img/2013/...399e490c30.jpg Закрываем и тестируем нашу книгу. Вводим любое число в А1. Кликаем абы где, например, на С25. Сtrl+й * и ... Работает, ёшки-матрёшки! Или как гениально высказался предыдущий оратор: "планка самооценки" поднялась (а в месте с ней скорость нарубки капусты). :) *если вы не назначали горячих клавиш, то макрос можно также выполнить Сервис - Макрос - Макросы - Выполнить. Э-э, рано радоваться. Самостоятельное задание. Написать макрос копирования занчение ячейки А1 на другой лист в ячейку В2 и раскрашивания её красным цветом. Успехов. Приду проверю, раздам конфектки. :) (Сегодняшний урок во вложении) |
Вложений: 1
Запишусь на курсы!)...
AndrewP, хорошее дело затеял... *THUMBS UP* Пробую домашнее задание. |
|
Цитата:
|
Урок усвоил, все получилось!
Хотелось бы узнать еще кое-что: Помимо расчетных таблиц, прайсов и подобного - ведем в экселе баланс конторы(контора небольшая, даже очень маленькая, всего 6 человек, из них четверо-трудяги) Вопрос вот в чем. Баланс конторы включает в себя много листов, на каждом свое, где-то расчет зарплат, где-то ведение баланса, учет затрат, приходов-расходов и прочее. Можно ли с помощью макросов, организовать ежедневную выдержку по некоторым параметрам( например- заключенные за день договоры, выдано рабочим денег, приходы по установкам и прочее, в один (читай- другой) файл, уже относящийся чисто к отчетам. Например так: сегодня 1 августа такого-то года, в конце рабочего дня- ставится где-то галочка(которую можно изменить только один раз), и все запланированные выжимки из большого(по размерам) документа,помещаются в отдельный файл( например- Отчеты.xls) Там- 1 лист документа, одна таблица, содержащая нужные данные, которые там копятся каждый рабочий день, и из них, потом делается статистика. Думаю, невнятно и сумбурно объяснил, но делать пример сейчас времени нету, надо уезжать срочно к заказчику... если что- вечерком попробую накалякать.. |
Цитата:
|
Текущее время: 11:33. Часовой пояс GMT +3. |
Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
© 2007-2023 PROMEBEL