Изменение параметров диаграммы
Очередное полностью практическое занятие. В этот раз оно уже пообъемнее и несколько сложнее, чем "Заполнение бланка документа", но это логично - от простых вещей постепенно двигаемся к более сложным.
зарегистрироваться на сайте
обновите страницу по этой ссылке или кнопкой F5
Комментарии
Сделал все как у Вас, Дмитрий. Всё прекрасно работает,кроме маленькой неприятности, при закрытии книги
выскакивает ошибка Run-time error (91) object variable or With block variable not set и ссылка на строку
With ActiveSheet.ChartObjects(1).Chart
Спасибо! Уроки очень крутые! Мистер Ексель отдыхает.
Какой же Вы, Дмитрий, умничка! Спасибо!
Здорово! Правда этот урок с первого раза тяжеловато воспринимался по сравнению с предыдущими.Пришлось повторить. Кстати хотелось бы уточнить условия для более углубленного изучения VBA под вашим руководством.
Доброй ночи, Дмитрий!
В процессе отработки примера столкнулся с некоторыми глюками:
1 не пошла подпрограмма "Построить диаграмму" Когда перед этой строчкой поставил вызов "Call" все заработало. После завершения урока - попробовал убрать "Call" - Все работало.
2 Строчка с "Characters.Text" не запускалась в Immediate.
Посмотрел внимательно эпизод. У Вас эти 2 слова записываются с маленькой буквы. Попробовал - работает, хотя в конечном тексте написание машина исправляет на заглавные буквы.
Немного усложненный, но не менее понятный, чем остальные, урок. Будем набираться опыта не только на своих ошибках, но и у Вас. Спасибо Дмитрий!
Дмитрий, здравствуйте. Помогите, пожалуйста разобраться. Дошла до момента, когда нужно выбрать исходный текст в выпадающих списках, чтобы при выборе любого параметра менялись данные, внутрь каждого макроса вставляю название нашего исходного макроса.И, в общем-то все. Дальше ничего не происходит, при выборе параметров в выпадающих списках ничего не меняется. Не могу понять, что я делаю неправильно.(((
Доброй ночи, Ольга.
Честно говоря, мало что понял из описания Вашей проблемы ) "внутрь каждого макроса вставляю название нашего исходного макроса" - совсем непонятно. Если пришлете файл (который у Вас не работает) - тогда смогу посмотреть, в чем проблема.
Доброго Вам дня Дмитрий! Отличный урок! Спасибо! Это как раз то что было нужно, это некая основа - фундамент для моего будущего проекта, однако еще многое обдумывается в частности есть вопросы, даже много вопросов которые представляют огромный интерес, в частности как интегрировать екселевскую функцию ВПР в VBA, вообще такое возможно? Или же в программе встроены подобные функции.. Впрочем для меня это огромный секрет. У меня такое дело: ежемесячно мы составляем график рабочего времени для сотрудников компании - работа рутинная, жесть.. И вот я решил автоматизировать это дело. С помощью Ваших уроков, на которые совершенно случайно наткнулся в нете многое удалось.. теперь строки сотрудников в графике при выборе нужного месяца автоматически заполняются согласно их годовым графикам, как надо! теперь возникает новая задача я хочу связать месячный график с табельным номером каждого из сотрудников. На деле это должно быть обстоять так: Выбираю месяц, заполняю табельные номера и воаля... Вообщем мечтать не вредно, вредно не мечтать) Дмитрий если Вы сталкивались с подобным или же догадываетесь как это смастерить, подскажите пожалуйста. Спасибо огромное Вам Дмитрий, такие знания и такой страница как у Вас это кладезь, ценная находка! К сожалению в нете мало подобной полезной информации. Благодарю!
Доброй ночи, Александр.
"Как интегрировать екселевскую функцию ВПР в VBA, вообще такое возможно?" - возможно. В программах на VBA можно использовать любую стандартную функцию Excel (только ее английское написание, не русское), подставляя перед именем функции выражение Application.WorksheetFunction.
Английское название функции ВПР - VLookup, соответственно, для присвоения результата этой функции переменной (назовем ее, к примеру, Result) надо написать:
Result = Application.WorksheetFunction.VLookup(...)
Ну а в скобках (вместо многоточия) указать аргументы - те же, что требуются для работы с функцией на рабочем листе.
Только все это не очень удобно и недостаточно гибко, я такие методы в своих программах не применяю - предпочитаю использовать циклы и условия. Подробнее об этом можно узнать из моих мастер-классов.
Добрый день Дмитрий! С предыдущей задачей я справился, обошелся без интеграции, мне хватило CASE и несколько IF, Вы правы это очень удобно. Благодарю! Теперь спокойно могу формировать график по месяцам. Был удивлен, как на самом деле все бывает просто. Тут другая задача теперь обстоит, хочу получающийся график сортировать по определенному условию, например по количеству отработанных часов. Я прикинул, что это очень удобно будет.. Однако не совсем понимаю как это надо изощрится перемещать строки относительно друг друга, ведь в каждой строчке графика т.е. диапазоне ячеек по N-му количесту столбцов с различными значениями там и таб.№ и ФИО сотрудника и сам график работы плюс сколько смен отработал сотрудник и кол-во часов в месяц. Сейчас нашел какой то пузырьковый метод, путаюсь разобраться, но пока тщетно. Посоветуйте пожалуйста как в метод пузырька вставить мои диапазоны с данными?
Добрый вечер, Александр.
Честно говоря, не очень понял описание Вашей задачи. А стандартный механизм сортировки данных на листе Excel Вам не подходит? Зачем изощряться с "пузырьковой" сортировкой?
Дмитрий здравтсвуйте!
Как можно скачать Ваш урок №8 "Изменение паратров диаграммы"?
В ютубе его нет.
Добрый вечер, Нурлан.
В ютубе видеоуроки публикуются лишь частично.
Уроки, опубликованные здесь, предназначены для просмотра на сайте в режиме он-лайн. Поэтому, боюсь, что никак.
Прикольно. Только такого же эффекта (за исключением смены цвета диаграммы) можно достичь используя встроенные функции, например ИНДЕКС. Просто настраиваем диаграмму на вспомогательную строку, которую также можем скрыть, поместив на нее диаграмму. А значения в эту строку выкачиваются по данным в комбобоксах функциями ИНДЕКС+ПОИСКПОЗ или ВПР
Можно И в тех случаях, когда возможностей стандартных формул достаточно, я бы рекомендовал именно ими и пользоваться. Средства Visual Basic приходят на помощь в ситуациях, когда формулами решить задачу либо весьма проблематично, либо совсем нереально.
Что не делаю ничего не получаеться макрос не работает.
Та же проблема что и у Алексея 455 только не чего не работает, вожусь уже 2-недели
Спасибо Вам огромное! С легкостью выполнила свое задание
Если не жалко пришлите работающий фаил с макросом на мою электронку может у меня что-то с компом manov.manov.grigory@yandex.ua
Здравствуйте, Дмитрий!
Сделала выпадающий список, но в нем отображается только одна дата. В чем может быть проблема?
Уроки замечательные!
Дмитрий, добрый вечер!
У меня аналогичная задача, только диапазон с названиями разный.
я написала следующий код:
Sub ПостроитьГрафик()
nrow = Cells(16, 23).Value + Cells(20, 23).Value
If Cells(20, 23).Value = 0 Then
Worksheets("График".ChartObjects(1).Chart.SetSourceData Source:=Range("C2:AH2,С" & nrow & ":AH' & nrow"
ElseIf Cells(20, 23).Value = 13 Then
Worksheets("График".ChartObjects(1).Chart.SetSourceData Source:=Range("C15:G15,С" & nrow & ":G' & nrow"
End If
Worksheets("График".ChartObjects(1).Chart.ChartTitle.Characters.Text = "" & Cells(1 + Cells(20, 23).Value, 1) & ""
End Sub
Подскажите, в чем ошибка?
Заранее спасибо Вам огромное!
Разберитесь с запятыми и синтаксис обращение к диапазону ячеек у вас какой то странный: =Range("C2:AH2,C" & nrow & ":AH" & nrow)
Да я уже все сделала спасибо!
Подскажите, как можно скачать сам файл Ексель к видеоуроку?
Добрый день, Ксения.
К сожалению, никак - я не сохранял этот файл при записи видеоурока. Хотя, наверное, не помешало бы.
все получилось, спасибо!
у меня excel Mac. При изменении диапазона данных в диаграмме записывается вот такой макрос:
ActiveChart.Axes("xlValue").MajorGridlines.Select
Пробовала просто перепечатать то,что было в видео, но тогда выдает ошибку (ошибка выполнения 1004, ошибка метода Range)
Добрый день, Наталья.
Диаграммы - достаточно сложный объект Excel со множеством свойств и параметров. И в разных версиях Excel действия по настройке таких сложных объектов записываются в код макроса различным образом. Вероятно, у Вас версия Excel отличается от моей, поэтому и код, полученный макрорекордером, тоже отличный от моего.
Что касается ошибки - это уже надо в пошаговой отладке смотреть, в какой именно строке она происходит. Тогда можно будет понять, в чем ее причина.
Добрый вечер!Урок очень интересный правда посложнее чем предыдущие уроки,для себя отметила функцию работа со списком (ранее встречалась с ним, работая в access)
Урок очень понравился, спасибо!
Сейчас попробую сделать то же самое сама...
Спасибо, Дмитрий, в ваших руках всё получается здорово, решил сам создать диаграмму, тут и началось (опыта вообще нет).
1 вопрос: в фильме на 20 минуте 32 секунде (20:32) у меня раскрываются не те свойства как у вас. Я понимаю,что где-то в настройках, но пока сам не могу найти.
2 вопрос: наплодил много userform и module в VBAProject можно ли их удалять?
3 вопрос: Дмитрий, подскажите где в настройках VBA исправляет строчные буквы на заглавные и выдаёт подсказки при написании как в вашем уроке. Спасибо
Дмитрий, на 1 вопрос я нашёл ответ. Я обратил внимание, что вы делаете в Excel 2007, а я делал в версии 2003, там по другому. Ушёл тренироваться в версию 2007.
Дмитрий, подскажите, в каком формате вы сохраняете этот файл?
Добрый день, Андрей
1. Да, в разных версиях Excel свойства могут несколько различаться.
2. Конечно, можно. Правой кнопкой мыши кликаете на ненужном Module или Userform и в контекстном меню выбираете пункт "Remove...". После этого будет задан вопрос "Do you want to export ... before removing it?" - отвечайте "нет" и все удалится.
3. Это происходит, если в начале программного модуля стоит директива "Option Explicit" (на видео видно, например, на 17:30). Подробнее о ее назначении и нюансах использования я рассказываю в своих тренингах, т.к. в двух словах здесь это сделать сложно.
4. Файлы с программным кодом сохраняю либо в "старом" формате xls, либо в "новом" xlsm (по обстоятельствам). В данном примере это не имеет значения.
ochen polezno i interesno
Делаю по образцу, но почему то в связанную ячейку вводит не значение а порядковый номер строки. офис 10 и меню свойств как в 2007 нет. как перенастроить офис?
добрый день. Посмотрел урок и вот какой вопрос у меня возник.
На 31 минуте Вы говорите что у объекта SeriesCollection есть свойство interior. Только вот если зайти в справку VBA в объект(класс) SeriesCollection или Series, то можно увидеть, что нет там такого свойства. Там есть только вот такой пример :
Worksheets("sheet1".ChartObjects(1).Chart. _
SeriesCollection(1).Interior.Color = RGB(255, 0, 0)
Но вот только не понятно. Как этот interior туда попал если в Object Members его нет. И так во всех справках Office 2000, 2003, 2007, 2010, 2013.
И если записать макрос с изменением цвета ряда, то в коде макроса это не будет отображено. Будет только SeriesCollection(1).Select (в 2007 так, в 2010 там уже блок with .... end with, но даже в этом блоке нет interior!!!).
Так вот почему же все таки свойство interior можно использовать в SeriesCollection если такового свойства или метода или даже события там, в Members, нет?
у меня офис 2003 был чьей-то сборки. и справка походу то ли не рабочая то ли вырезанная. В общем нашел норм 2003 офис. Там нашел это свойство, но походу с офиса 2007 interior не используется.
Добрый день, Aigeus.
Сложные вопросы задаете
Да, в Excel 2007 это свойство записывается иначе:
вместо ...SeriesCollection(1).Interior.Color = RGB(255, 0, 0)
будет ...SeriesCollection(1).Format.Line.ForeColor.RGB = RGB(255, 0, 0)
При использовании макрорекордера эти команды настройки внешнего вида диаграммы не записываются, но их можно написать вручную.
Здравствуйте, Дмитрий.
Во время тестирования, при нажатии F5 в макросе выдается "ошибка 400". Код записан верно-строка не краснеет.
И еще вопрос:
Зачем делать запись в окне "immediate"в нашем конкретном случае? И вообще не совсем поняла назначение этого окна: разве не проще быстро выполнить какую-то операцию прямо на листе?
Извините за бестолковость.
Приношу извинения за второй вопрос-не до конца досмотрела видео. Кажется поняла.
Ура! С третьей попытки всё заработало. Спасибо.
понятно, спасибо
У меня не считает nrow.
В моем файле nrow = Cells(19, 7).Value - 1993
Значение Cells(19, 7).Value=2001, а в окне immediate значение nrow отображается как 2001((( почему так?
Добрый день, Наталья.
Значит, что-то не так делаете. Без файла сложно сказать, что именно - если пришлете файл, будет понятнее.
очень понравилось, все доступно, понятно. Более подробно начал понимать структур кода VBA, до этого мне тяжело было читать код, тем более оптимизировать. теперь думаю справлюсь. в будущем хотел бы более профессионально изучить иксель, т.к моя работа тесно с этим связана. автоматизация посредством макроса очень нужная вещь в наше время.
Урок очень понравился, спасибо!
Дмитрий в 2010 Екселе если делать по вашей инструкции то в ячейку "год" или "период" попадает порядковый номер из списка (1, 2,3,4) вместо самого текста (2007,2008,2009 и т.д). С чем это связано, как исправить?
Добрый день, Алексей.
А Вы точно используете "элемент ActiveX" (как я в своем примере), а не "элемент формы"?
Если да - с ходу посоветовать, как сделать, чтобы было точно так же как в показанном примере, не могу - у меня нет Excel 2010, потому проверить на нем Ваши слова не могу. Можете прислать на почту Ваш файл - посмотрю его в версии Excel 2007.
Но можно и оставить все, как есть - пусть в ячейку попадает номер выбранного варианта. В этом случае можно с помощью формулы ИНДЕКС в другой ячейке по выбранному номеру варианта определить значение, соответствующее этому варианту, и уже его подставлять в макрос.
да вы правы. Использовал элемент формы. С ActiveX все работает. Спасибо!
КРУТО И ПОЛЕЗНО!!! СПАСИБО!!!!
подскажите пожалуйста как посмотреть примеры которые били в презентации? я что то не понял
Добрый день.
Эти примеры можно посмотреть по ссылке: http://www.excel-eto-prosto.ru/download/?file=examples
Здравствуйте, Дмитрий! Работаю на Макбуке. Версия VBA 7,1. У меня отличаются некоторые пункты меню от того, что я вижу у Вас. До сих пор было не критично, но на Уроке 8 уже не справляюсь. Например, при настройке выпадающего списка нет такого пункта, как "свойства". А при записи макроса построения диаграммы, код формируется совсем не тот, я так понимаю, неправильный. Подскажите, как быть?
Добрый день, Светлана.
К сожалению, по работе на макбуке ничего подсказать Вам не могу - я всегда работаю только на Windows. Но могу предположить, что различия в коде VBA вызваны не различиями версий самого VBA, а различиями в версиях MS Excel: в новых версиях Excel появляются новые объекты, усовершенствуются старые, поэтому и в VBA появляются новые объекты, методы и свойства.
Например, если записать в макросе изменение параметров диаграммы в Excel 2003 и то же самое проделать в Excel 2010, то, скорее всего, полученный код будет отличаться: в новой версии Excel диаграммы имеют большее количество настроек и параметров, поэтому и в записанном в нем макросе используются новые методы и свойства.
Может быть, конечно, что причина - в другой операционной системе, но мне кажется, что все-таки дело в том, что у Вас более свежая версия Excel, чем та, в которой я 6 лет назад записывал данные видео-уроки
Здравствуйте! Спасибо за пример, но нигде не могу найти на сайте экселевских файлов, о которых вы говорите. Где их посмотреть "вживую"?
Апдейт: увидел ответ в комментариях выше, спасибо ))
Полезно, наглядно, понятно, существенно расширила свои знания благодаря данным урокам - спасибо, Дмитрий)
могут только зарегистрированные пользователи.
Ваше имя и тот e-mail, который был указан при регистрации)
В любой момент времени вы можете отказаться от получения сообщений.
Полезно, наглядно, понятно, существенно расширила свои знания благодаря данным урокам - спасибо, Дмитрий)
Добрый день, Анатолий.
Подробнее о создании программы для тестирования было рассказано в специальном платном мастер-классе "Создание программы по тестированию". Приобрести его можно по этой ссылке.
Что касается счетчика времени - в мастер-классе такого функционала не было, но позднее я доработал созданную в нем программу и добавил в нее такой счетчик - при приобретении мастер-класса я вместе с ним предоставлю и доработанную версию программы.
Спасибо! Классно. Где можно списать Вашу программу для шаблона? Счетчик времени на тестирование как вставить?
Здравствуйте. Подскажите, а можно ли сделать Q-код в таблице, но чтоб там было видно наименование упаковки, вес, дата прихода, наименование контрагента и тд. И при каждом изменении данных, автоматически делался Q-код?
Добрый день, Дмитрий. Я случайно увидела ваши видео в ютубе. Посмотрела и мне стало интересно изучить макросы. Перешла по ссылке и просмотрела часть бесплатных видео и мне очень понравилась ваша манера преподавать просто без лишних слов. Скажите, пожалуйста, а как сделать выпадающий...
Здравствуйте В видео "Автоматизация заполнения бланка документа (платежного поручения)" говориться, что можно скачать файлы с макросами, о которых идет речь. Не могу найти. Подскажите, пожалуйста,где скачать Файл?
Благодарю Вас хотя у меня оффис 97 все полчается
здравствуйте, Дмитрий... подскажите пожалуйста такой момент, для того, чтобы сделать макрос с фамилиями, я сделала перечень с фамилиями и суммами.. так вот у меня слово фамилия при сортировке улетает в самый низ))) то есть оно тоже сортируется... что не так в моей таблице?
Спасибо большое.Очень полезная информация
Замечательные уроки, большое спасибо автору. Все очень доходчиво, без лишних заморочек.