Макросы VBA, запускающиеся при открытии, закрытии и прочих событиях (Серия VBA 14)

Поділитися
Вставка
  • Опубліковано 29 вер 2024
  • Всем привет! В этом видео мы поговорим о том, как в Excel создавать VBA макросы, которые автоматически запускаются при определенных пользователем событиях. Таких как, например:
    • Открытие Excel файла
    • Закрытие Excel файла
    • Изменение значений и характеристик любой или же выбранных ячеек в файле
    Кроме того, мы обсудим такие виды модулей в Excel VBA, как модули рабочих листов, модуль рабочей книги, а также обычные модули, и конечно же поговорим о том, в чем же заключается разница.
    Всем приятного просмотра!

КОМЕНТАРІ • 42

  • @michailpty6302
    @michailpty6302 5 років тому +31

    У вас явно лучшие видео по изучению VBA!!!!!

    • @BilyalKhassenov
      @BilyalKhassenov  5 років тому +1

      Здравствуйте, Михаил! Большое спасибо за Ваш комментарий! Будем держать уровень :)

    • @mrVladimirKa
      @mrVladimirKa 2 роки тому

      @@BilyalKhassenov х

  • @alekseivagin5204
    @alekseivagin5204 4 роки тому +3

    Все круто!

  • @user-dr5mg3po7o
    @user-dr5mg3po7o 2 роки тому +3

    Кому интересно - я проверила приоритет выполнения :) Задала каждому листу по отдельной процедуре, определяющей цвет выделенной ячейки, и в модуле книги сделала ровно то же, но для всех. Всем задала разные цвета, на первом листе синий, на втором красный, на третьем ничего не задано, в книге - зеленый. Короче, главный - модуль книги. Если он есть, то модули листов оно игнорирует.

  • @ОлегПаламарчук-в9у

    Билял, спасибо большое за это видео, очень продвинул мои навыки!
    Я давно пытаюсь сделать отмену переноса строк в скрытых ячейках, написал макрос и поместил его в надстройке, но не могу сделать так, чтобы он автоматически запускался при скрытии столбца. Подскажи, пожалуйста, какой вид процедуры надо выбрать в верхнем правом списке?

  • @АнтуанДеляМоль
    @АнтуанДеляМоль 2 роки тому

    спасибо

  • @user-en8ko2vd1k
    @user-en8ko2vd1k 2 роки тому

    18 сен 2022

  • @Aleksandr.Bartov
    @Aleksandr.Bartov 5 років тому

    А где продолжение?

  • @Ivan.Rosenberg
    @Ivan.Rosenberg 10 місяців тому

    Ви мене виручили. Куди вам донат можна скинути?

  • @Bah1918
    @Bah1918 5 років тому +13

    Добрый день.Очень интересные уроки.Много полезного и понятного и мало "воды".Но найти канал можно не сразу.Я думаю многие ещё не знают о таком великолепной канале. С уважением Сергей.

    • @BilyalKhassenov
      @BilyalKhassenov  5 років тому +8

      Уважаемый Сергей, здравствуйте! Большое спасибо за Ваш комментарий - ещё больше хочется заниматься этим делом :)
      Полагаю, UA-cam пока не часто и не в верхних результатах поиска выдает видео с моего канала, так как на нём пока слишком мало подписчиков. И ещё раз большое спасибо за Ваш комментарий - качество видеоуроков буду держать на таком же высоком уровне и дальше :)

  • @АндрейЛесников-з8ч
    @АндрейЛесников-з8ч 5 років тому +9

    Мега-мега-мегаграмотное изложение материала и продуктивные уроки! Редкость на просторах интернета! Низкий Вам поклон за столь эффективное изложение материала по VBA! Вы педагог от Бога, продолжайте в том же духе! Низкий поклон за труды! Не поленюсь и напишу это коммент по каждым видео курса!!!

    • @BilyalKhassenov
      @BilyalKhassenov  5 років тому +2

      Здравствуйте, Андрей!
      Со своей стороны точно также не поленюсь и поблагодарю Вас за этот приятный комментарий под каждым видео точно так же :)
      С уважением и хорошего Вам дня,
      ХБ

  • @Mr.Dava86
    @Mr.Dava86 4 роки тому +5

    Спасибо,Билял. тоже узнал как автоматически запускать макрос. Очень полезное видео. Отличный урок

  • @olegyes934
    @olegyes934 3 роки тому +6

    Огромное спасибо за великолепные и понятные уроки!!!

  • @Dmitrii-Zhinzhilov
    @Dmitrii-Zhinzhilov 3 роки тому +4

    Билял, благодарю! Конечно лайк! Это лучшее объяснение VBA, которое я где-либо слышал: всё доступно и понятно. Как всегда узнал для себя много нового!

  • @nove4ek
    @nove4ek 3 роки тому +2

    Вам бы курс на Степике сделать. Можно платный, с доп вопросами после каждого урока + проверкой дз. Многим, кому хочется больше практики, вполне подошел бы такой вариант

  • @АлексейСоков-ь8и
    @АлексейСоков-ь8и 3 роки тому +2

    2021

  • @АрменЖидрасян
    @АрменЖидрасян 3 роки тому +2

    Очень хороший урок. Маленькое дополнение - процедуры можно активировать ещё и выбрав в меню макросов, там-же можно им присвоить комбинацию горячих клавиш. А ещё бывают элементы управления формы(обычная кнопка, срабатывает при одинарном нажатии), а бывают элементы ActiveX(внешне то-же самое, только более широкий выбор вариантов реакции и возможность активировать процедуры не из списка макросов. Например аналогично выглядящей кнопке присваиваются разные варианты поведения на одиночном или двойном клике, клике правой кнопкой или других регистрируемых событиях).

  • @ГерманРыков-ъ6в
    @ГерманРыков-ъ6в 4 роки тому +3

    Еще раз спасибо за Ваши видео. Начинал с нуля и многое было непонятно, сейчас пересматривая Ваши видео нахожу ответы на большинство вопросов.

    • @BilyalKhassenov
      @BilyalKhassenov  4 роки тому

      Здравствуйте, Герман!
      Большое спасибо за Ваш комментарий, очень рад, что видеоуроки на канале помогают Вам в изучении VBA.
      Как всегда, если у Вас будут какие-либо вопросы - сразу обращайтесь! :)
      С уважением,
      Билял

  • @olyaivanova4720
    @olyaivanova4720 4 роки тому +2

    Узнала много чего полезного для себя , как автоматически запускать макросы

    • @BilyalKhassenov
      @BilyalKhassenov  4 роки тому

      Здравствуйте Оля,
      Очень рад, что видео было для Вас полезным😊
      Хороших Вам выходных 😊
      С уважением,
      Билял

  • @МаратСаф-ц1д
    @МаратСаф-ц1д 4 роки тому +2

    Здравствуйте, как с вами можно связаться, нужна ваша помощь в создании макросов

    • @МаратСаф-ц1д
      @МаратСаф-ц1д 4 роки тому +1

      Нужна ваша помощь в автоматизации расчетов

  • @SamSambl4
    @SamSambl4 4 роки тому +2

    Спасибо за труд!

  • @yellowmoonishka1725
    @yellowmoonishka1725 6 місяців тому

    спс

  • @АкмалХудойназаров-ч1ж

    Белял здравствуйте.
    где надо положит макрос чтобы он был виден новому файлу excel.
    точнее ситуация такая ест мной записанный макрос который работает на отлично. но если БД экспортирует отчет в экселевский файл. то поначалу его нет пока не сохранить и заново не открыть файл отчета. по моему фоновый режим называется пока его не сохранить. был бы очень благодарен за ответ

  • @evgeniyvsl6876
    @evgeniyvsl6876 3 роки тому

    Здравствуйте!
    Вы упомянули про то, что Worksheet_Change можно заставить работать с конкретными ячейками в листе, при помощи команды Intersect, на как это сделать на практике?
    Допустим, я хочу, чтобы при изменении значения в ячейке A1(которое равняется 10) выводился msgbox с ошибкой и в ячейку A1 снова вставлялось значение 10. При этом, на остальные ячейки в листе код реагировать не должен.

  • @АлександрИвонин-э9г

    Билял добрый день! Как можно с вами святаться для консультации выполнения расчётной работы в excel vba!

  • @ПавелП-м8н
    @ПавелП-м8н 3 роки тому

    Отличные видео. У меня вопрос. Как запустить макрос из другого макроса, например при выполнении условия if идет запуск нужного максроса?

  • @ГерманРыков-ъ6в
    @ГерманРыков-ъ6в 4 роки тому +1

    Билял подскажите, а через макросы возможно повлиять на такой процесс как копирование?
    по работе постоянно сталкиваюсь с необходимостью обогащения базы данных через "текстовые" источники. Каждый раз загружая очередную 1000 строк мой excel зависает ровно на 5 мин и 45 сек (вроде мало, но за день ощутимо).
    Так Вот, я и через макрос при изменении листов (загрузке) отключал автообновление экрана и другие процессы отключал, но как было 5.45 так и осталось.
    Я заметил, что сами данные "встают" в таблицу ровно за 45 сек, а все остальное время эксель слева на право, строка за строкой начинает проверять ячейки и в львиной доле оставляет все как есть, но в 25% он в данных из одной ячейки разбивает на несколько ячеек.
    В итоге вопрос! Возможно оставить загрузку данных, но отключить разбивку уже закаченных ячеек?

    • @BilyalKhassenov
      @BilyalKhassenov  4 роки тому

      Здравствуйте, Герман!
      Мне немного не достает информации для полноценного ответ на Ваш вопрос. Пожалуй, первый уточняющий вопрос, который я задал бы: из какого формата текстового файла Вы догружаете новые значения, и делаете ли Вы это вручную?
      И второй вопрос: у Вас, вероятно, на лист, в который Вы вставляете данные, ссылается большое количество формул из других листов (ВПР, СМЕЩ и прочие подобные). Так ли это?
      С уважением,
      Билял

    • @ГерманРыков-ъ6в
      @ГерманРыков-ъ6в 4 роки тому +1

      @@BilyalKhassenov Еще раз здравствуйте! Я скачиваю в данные (иморт XML) в ручную. Выделяю диапазон данных и копирую а затем в пустую таблицу вставляю. В целом у нас автоматизирована система, но обогащение базы необходимо производить в ручную (жуть как неудобно). Очевидно, что процесс выполнения моей команды "вставить" не однороден, как я уже говорил 45 вставка и 5мин редактирование. Но все это эксель производить автоматически в рамках одной лишь команды вставить (с большим масивом данных).

    • @BilyalKhassenov
      @BilyalKhassenov  4 роки тому

      Здравствуйте, Герман!
      Извиняюсь за задержку ответа - только сейчас добрался до ответов на комментарии :)
      Я точно не уверен, вследствие чего происходит упомянутое Вами разбитие ячеек на несколько ячеек: является ли тому причиной автоматическое форматирование содержимого ячеек Экселем, или же это происходит благодаря имеющимся автоматическим макросам, которые сразу запускаются при внесении изменений на рабочий лист. Поэтому, Вам следует сделать следующее:
      1. Проверить, имеется ли в модуле рабочего листа, в который Вы вставляете значения, прописанный автоматический макрос «Private Sub Worksheet_Change(ByVal Target As Range)» -> Если это так, то возможно Вам следует либо поправить этот макрос таким образом, чтобы он запускался лишь при выполнении определенного условия, либо изменить его на обычный, вручную запускаемый макрос. Либо же возможны и другие варианты поправки данного макроса, которые позволят повысить его скорость работы - тут Вам надо будет смотреть по ситуации
      2. Второй же причиной, которая мне сейчас приходит в голову, является автоматическое форматирование содержимого ячеек Экселем. Полагаю, проверить это можно следующим образом: перед тем, как вставить значения в лист, куда Вы их обычно вставляете, поменяйте настройку перевычисления значения формул с автоматического на ручное: Формулы -> Параметры вычислений -> Вручную. После этого попробуйте вставить значения привычным Вам способом, и посмотрите, будет ли наблюдаться та же самая ситуация.
      После того, как Вы опробуете эти две гипотезы, мы с Вами посмотрим, что можно делать дальше / в чём причина :)
      С уважением и хороших Вам выходных,
      Билял
      P.S. Чтобы после проверки второго варианта формулы в Вашей рабочей книге снова автоматически рассчитывались, не забудьте поменять настройки вычислений на исходные, т.е.:
      Формулы -> Параметры вычислений -> Автоматически

  • @Zugin1
    @Zugin1 2 роки тому

    Очень полезный урок. Спасибо!

  • @14FARAON
    @14FARAON 2 роки тому

    спасибо за ваш труд