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

Sdílet
Vložit
  • čas přidán 25. 12. 2018
  • Всем привет! В этом видео мы поговорим о том, как в Excel создавать VBA макросы, которые автоматически запускаются при определенных пользователем событиях. Таких как, например:
    • Открытие Excel файла
    • Закрытие Excel файла
    • Изменение значений и характеристик любой или же выбранных ячеек в файле
    Кроме того, мы обсудим такие виды модулей в Excel VBA, как модули рабочих листов, модуль рабочей книги, а также обычные модули, и конечно же поговорим о том, в чем же заключается разница.
    Всем приятного просмотра!

Komentáře • 42

  • @user-uj4zl3wv3s
    @user-uj4zl3wv3s Před 4 lety +9

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

    • @BilyalKhassenov
      @BilyalKhassenov  Před 4 lety +2

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

  • @michailpty6302
    @michailpty6302 Před 5 lety +30

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

    • @BilyalKhassenov
      @BilyalKhassenov  Před 5 lety +1

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

    • @mrVladimirKa
      @mrVladimirKa Před rokem

      @@BilyalKhassenov х

  • @Bah1918
    @Bah1918 Před 5 lety +13

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

    • @BilyalKhassenov
      @BilyalKhassenov  Před 5 lety +8

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

  • @Mr.Dava86
    @Mr.Dava86 Před 4 lety +5

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

  • @olegyes934
    @olegyes934 Před 3 lety +6

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

  • @olyaivanova4720
    @olyaivanova4720 Před 4 lety +2

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

    • @BilyalKhassenov
      @BilyalKhassenov  Před 4 lety

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

  • @Dmitrii-Zhinzhilov
    @Dmitrii-Zhinzhilov Před 3 lety +4

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

  • @user-wr5rc5pp8r
    @user-wr5rc5pp8r Před 4 lety +3

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

    • @BilyalKhassenov
      @BilyalKhassenov  Před 4 lety

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

  • @user-xe9uq9kl5y
    @user-xe9uq9kl5y Před 2 lety +2

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

  • @user-dr5mg3po7o
    @user-dr5mg3po7o Před rokem +2

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

  • @nove4ek
    @nove4ek Před 3 lety +2

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

  • @alekseivagin5204
    @alekseivagin5204 Před 3 lety +3

    Все круто!

  • @Zugin1
    @Zugin1 Před rokem

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

  • @SamSambl4
    @SamSambl4 Před 4 lety +2

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

  • @14FARAON
    @14FARAON Před 2 lety

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

  • @yellowmoonishka1725
    @yellowmoonishka1725 Před 3 měsíci

    спс

  • @user-tq7yz9xb8g
    @user-tq7yz9xb8g Před 2 lety

    спасибо

  • @user-xg4pd7en9d
    @user-xg4pd7en9d Před 2 lety

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

  • @user-jw8vj9pv2z
    @user-jw8vj9pv2z Před 3 lety

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

  • @evgeniyvsl6876
    @evgeniyvsl6876 Před 2 lety

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

  • @user-lh4om3tp3l
    @user-lh4om3tp3l Před 2 lety

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

  • @user-td9cz6ng7j
    @user-td9cz6ng7j Před rokem

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

  • @user-qn5by5iv7u
    @user-qn5by5iv7u Před 3 lety +2

    2021

  • @user-wr5rc5pp8r
    @user-wr5rc5pp8r Před 4 lety +1

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

    • @BilyalKhassenov
      @BilyalKhassenov  Před 4 lety

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

    • @user-wr5rc5pp8r
      @user-wr5rc5pp8r Před 4 lety +1

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

    • @BilyalKhassenov
      @BilyalKhassenov  Před 4 lety

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

  • @user-uy3dh8gt3u
    @user-uy3dh8gt3u Před 4 lety +2

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

    • @user-uy3dh8gt3u
      @user-uy3dh8gt3u Před 4 lety +1

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

  • @user-en8ko2vd1k
    @user-en8ko2vd1k Před rokem

    18 сен 2022

  • @Aleksandr.Bartov
    @Aleksandr.Bartov Před 4 lety

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

  • @Ivan.Rosenberg
    @Ivan.Rosenberg Před 7 měsíci

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