Урок 5. Заполнение списков ComboBox. Excel+VBA. Система учета Интернет-магазина

ПОЛНЫЙ КУРС и ПРОГРАММА - СКИДКА 60%
Приобрести можно тут - 1excel.ru/magazin-vba-excel
Создание приложения системы учета интернет-магазина на базе Excel+VBA
Интернет-магазин стройматериалов - kuzmich24.ru
Ссылки на файл урока:
Яндекс - yadi.sk/d/s6qcb3gI3Ty278
Гугл - goo.gl/iZwHz6
В данном уроке работаем со списками, заполняем комбобоксы на форме
Предыдущие уроки:
Урок 1. Постановка задачи - goo.gl/JvMQAm
Урок 2. Дизайн и оформление - goo.gl/nJGzdw
Урок 3. Модуль Продажи (создаем UserForm) - goo.gl/3XN6H6
Урок 4. Пишем код (Теория+работа с формой) - • Урок 4. Пишем код (Тео...
Easy Excel - ПОЛНОЕ и ПОДРОБНОЕ обучение программы Excel для новичков и практиков! Уроки по макросам и VBA
Подписка на канал Easy Excel: / easyexcellesson

Пікірлер: 85

  • @user-qb2eo4bz4l
    @user-qb2eo4bz4l5 жыл бұрын

    Лучшее видео по vba на русскоязычном youtube.

  • @user-cx2xo5vu4x
    @user-cx2xo5vu4x2 жыл бұрын

    Отличный материал, хорошо и понятно преподносится. Разработчику респект!!!

  • @User_1808
    @User_18084 жыл бұрын

    Великолепно!!! Просто и доступно!!!

  • @user-jg9yd4hb7j
    @user-jg9yd4hb7j6 жыл бұрын

    Вечер... то есть доброй ночи всем... Во первых Большое спасибо автору... Во вторых я уверен что если не все то, многие коекакеры... тоесть менеджеры, будут заморачиваться "красотой" списка... то есть чтоб разделы все были рядом друг с другом. А следовательно строки из однго и тогоже раздела будут разбросаны по всему списку... соответственно и выподающий список будет повторять одну и туже строку много раз. Пример: попробуйте в конец таблицы добавить строку из раздела "Сухие строительные смеси" и в выподающем списке "Сухие строительные смеси" встретятся два раза...

  • @easyexcellesson

    @easyexcellesson

    6 жыл бұрын

    Да, вы правы. Есть такое дело. Для этого есть решение - использовать массив, к комментарию Сергея Филиппова я дал процедуру, которую можно применить и все будет работать хорошо при любой сортировке и любом добавлении. Еще один момент такой - лист Списки можно закрыть от видимости менеджерам и сделать доступным только одному человеку (руководителю, например), который сам будет корректно добавлять новые значения в список.

  • @workout9700
    @workout97004 жыл бұрын

    Добрый день! Возможно ли создать разделы и группы отдельными спискам, по сути при выборе раздела через поиск подставляло список для групп? Есть такой инструмент?

  • @alekseygusev2979
    @alekseygusev29794 жыл бұрын

    help. Допустим есть список из 500+ наименований, можно ли заставить комбобокс делать следующее: вводишь одну букву, в выпадающем списке остаются для выбора только наименования на эту букву, вводишь следующую букву, в списке остаются только наименования начинающиеся на эти первые две буквы и так далее. З.Ы спасибо за канал и за отличные примеры.

  • @user-bc4ee3io3k
    @user-bc4ee3io3k4 жыл бұрын

    Здравствуйте! В список разделов при раскрытии комбобокса добавился заголовок столбца из умной таблицы - "Раздел". Подскажите как можно убрать?

  • @user-om4pc5sy8n
    @user-om4pc5sy8n4 жыл бұрын

    Добрый день! У кого-нибудь была ошибка out of memory? Возникла после того, как настроил вывод в combobox "Раздел" на форме "Продажи" списка разделов из таблицы. Подскажите, как исправить или в чем причина?

  • @user-bo7rd9dp3k
    @user-bo7rd9dp3k2 жыл бұрын

    класно

  • @abarmot20336
    @abarmot2033615 күн бұрын

    Подскажите как сделать чтоб в выпадающем списке скрол работал ? А так же как можно из выпадающего списка выбрать 2 и более группы ? Спасибо

  • @segail3138
    @segail31385 жыл бұрын

    Здравствуйте. Почему «Раздел» таблицы нельзя было пустить по горизонтали в виде шапки, прописав «Группы» по вертикали под нужными разделами (в столбцах)? Есть ли у Вас какой-либо показательный или обучающий видео материал по выше сказанному, а именно привязка к горизонтальным значениям списка, значений колонок (столбцов)?

  • @user-ed8sf4he6r
    @user-ed8sf4he6r6 жыл бұрын

    Добрый вечер. Чтобы двойные строки списка не появлялись, можно добавить первым действием сортировку таблицы первой колонке.

  • @easyexcellesson

    @easyexcellesson

    6 жыл бұрын

    Согласен, это вполне рабочий вариант

  • @Anatolii_Kodirov
    @Anatolii_Kodirov4 жыл бұрын

    Здравствуйте. Я по вашим урока разработал систему учёта за что вам огромное спасибо. В процессе возникли некоторые проблемы с которыми без вашей помощи не обойтись. 1 В форме стоит дата в порядке день, месяц, год , после добавления, в таблицу добавляется дата в порядке месяц, день, год, как исправить? 2 В форме после ввода артикля, подставляется цена с точкой а не с запятой и поэтому у меня не рассчитывается ндс, приходится в ручную каждый раз исправлять на запятую, как исправить? 3 В форме при выборе контрагента в категории заполняется список беспорядочно и с повторением , после выбора категории аналогично заполняется группа, как это исправить чтоб заполнялось по порядку и без повторения? Скриншоты прикрепил.

  • @user-mt1sr8dw3m
    @user-mt1sr8dw3m4 жыл бұрын

    Добрый день. Огромное спасибо за уроки! Если типы будут состоять из чисел, то группы не находятся, Вы не сталкивались с этим?

  • @user-mt1sr8dw3m

    @user-mt1sr8dw3m

    4 жыл бұрын

    Нашел, не удаляю ком, может пригодиться. Нужно конвертировать с помощью CStr()

  • @user-dy4pf9dg2w
    @user-dy4pf9dg2w5 жыл бұрын

    Подскажите пожалуйста как сделать автоматическую нумерацию заказов?

  • @vladymyrvlasenkov4849
    @vladymyrvlasenkov48495 жыл бұрын

    Добрый день! Большое спасибо Вам за ваш канал! Очень информативно и доступно ясно. У меня к вам вопрос по ComboBox. У вас в этом уроке показано работу выпадающего списка по двум столбцам Разделы и Группы. А как сделать на три столбца Разделы - Группы - Подгруппы(соответственно в форме будет три ComboBox) , чтобы работало по тому же принципу?

  • @easyexcellesson

    @easyexcellesson

    5 жыл бұрын

    По аналогии с предыдущими комбобоксами. Проверяете группы и вытаскиваете подгруппы

  • @jezebel8689
    @jezebel86895 жыл бұрын

    Спасибо большое за уроки. Подскажите, к примеру я делаю окно заказа на одного клиента, но с перечнем товаров, можно ли вообще это как-то сделать? В вашем примере добавляется только один товар, а мне нужно одному клиенту сделать к примеру два три товара.

  • @easyexcellesson

    @easyexcellesson

    5 жыл бұрын

    Много вариантов. Добавлять через запятую. Правда потом надо разделять артикулы, чтобы отдельно каждый проверялся. Можно добавить поле еще одно или несколько полей. Все это усложняет код и требует в том или ином виде определенную доработку

  • @elnararzayeva811
    @elnararzayeva8116 жыл бұрын

    Здравствуйте! У вас на складе есть, таблица "Цена ИМ, руб". Им что означает? Можете сказать. Спасибо

  • @easyexcellesson

    @easyexcellesson

    6 жыл бұрын

    ИМ - это означает Интернет-магазин.

  • @user-bm8yq2hh6h
    @user-bm8yq2hh6h6 жыл бұрын

    Спасибо за полезные уроки. Наверное, я забегаю вперед, но у меня есть вопрос!: если сделан некий заказ, но его необходимо редактировать, как вызвать форму "ПРОДАЖИ", например, для корректировки данных, с сохранением в те же ячейки, где ранее и находился этот заказ? Спасибо. Прошу помочь разобраться с этим при помощи записи макроса.

  • @easyexcellesson

    @easyexcellesson

    6 жыл бұрын

    это будем реализовывать в скорых выпусках)

  • @RUSn9
    @RUSn94 жыл бұрын

    Добрый день, мне кажется, что Sub FillRazdel не выполняет функцию отбора уникальных значений, т.к. если через несколько строчек повторится значение, которое было добавлено в список ранее, то в комбобоксе будут несколько повторяющихся значений. Что думаете?

  • @vldmrncorporation3633

    @vldmrncorporation3633

    3 жыл бұрын

    Как это сделать?

  • @RUSn9

    @RUSn9

    3 жыл бұрын

    @@vldmrncorporation3633 Вот у этого товарища есть код, который я использовал: www.excel-vba.ru/chto-umeet-excel/kak-poluchit-spisok-unikalnyxne-povtoryayushhixsya-znachenij/#vba

  • @user-gw3od5lc5x
    @user-gw3od5lc5x4 жыл бұрын

    Добрый день! А Вы делаете в Эксель программы учёта под заказ!?

  • @easyexcellesson

    @easyexcellesson

    4 жыл бұрын

    Да, делаю. Пишите - info@1excel.ru

  • @CokpaT_kila
    @CokpaT_kila4 жыл бұрын

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

  • @easyexcellesson

    @easyexcellesson

    4 жыл бұрын

    Дело не только в умных таблицах. Общий доступ для одновременно работы в Excel - плохая практика. Можно сказать, что многопользовательская работа в программе не поддерживается. Поэтому, я рекомендую работать с файлом/программой на чтение только одному пользователю.

  • @user-ud6fz7xu6f
    @user-ud6fz7xu6f6 жыл бұрын

    День добрый! Возник вопрос касательно выпадающего списка комбобокса, этот список может быть огромным. К примеру вкладка юр. лица, их может быть несколько тысяч, и без какого либо поиска выбрать одну запись будет затруднительно. Даже если записи будут в алфавитном порядке. Вариантов сделать поиск может быть несколько. На пример добавить на пользовательскую форму еще один текстбокс, и сортировать выпадающий список исходя из поискового запроса(аналогично сортировке Раздел-Группа). Но этот метод требует размещения дополнительного объекта, для ввода поискового запроса. Вопрос! Можно ли сортировать выпадающий список комбобокса, по значению прописанному в самом комбобоксе?

  • @easyexcellesson

    @easyexcellesson

    6 жыл бұрын

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

  • @user-ud6fz7xu6f

    @user-ud6fz7xu6f

    6 жыл бұрын

    Easy Excel, понятно. Спасибо за оперативный ответ. Буду смотреть до конца, очень интересно. :)

  • @edkyigoblin7211
    @edkyigoblin72112 жыл бұрын

    Скажите, пожалуйста, а как пользователю запретить вводить число в поле g9, если поле f9 текстовое и пустое ? А если f9 текстовое не пустое, то разрешить вводить любое число в поле g9 ? Очень буду ждать Вашего ответа.

  • @user-bm8yq2hh6h
    @user-bm8yq2hh6h6 жыл бұрын

    Спасибо за перспективу обучения!) Однако, еще вопрос: с помощью одной формы я добавляю строку и вношу данные в таблицу. А если для заполнения этой строки я хочу использовать 2, 3 или более форм в VBA, какие хитрости, способы, методы есть для этого? Плюс, принимая во внимание мой предыдущий вопрос, я бы желал, при необходимости, корректировать данные этой строки с помощью тех же нескольких форм. Извините за назойливость, но чем глубже изучаю, тем больше увлекаюсь и озадачиваюсь: это - естественно, по-моему ))

  • @easyexcellesson

    @easyexcellesson

    6 жыл бұрын

    Метод здесь будет такой - проверять по какому-то уникальному айди или артикулу присутствие уже добавленной строки, чтобы не добавлять новую, а добавлять именно в ту, в которую необходимо. Но это не самое лучшее решение. Лучше пересмотреть структуру ваших данных. В идеале - одна форма на одну таблицу, или одна форма на несколько таблиц, но не наоборот.

  • @user-bm8yq2hh6h

    @user-bm8yq2hh6h

    6 жыл бұрын

    Спасибо

  • @PavelBilitseyeu
    @PavelBilitseyeu6 жыл бұрын

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

  • @easyexcellesson

    @easyexcellesson

    6 жыл бұрын

    В следующем уроке это будет реализовано

  • @ProtecTORutube
    @ProtecTORutube6 жыл бұрын

    Привет. Обратил внимание: одни поля ввода с подписями слева, другие - сверху. Второй момент: список, например, статус - несортированный. Работать с таким списком ой как неудобно. Как-то исправится этот момент?

  • @easyexcellesson

    @easyexcellesson

    6 жыл бұрын

    По полям все верно, такое было принято решение - сделать подписи по-разному. По списку "статус" не совсем пониманию, в чем состоит неудобство?

  • @ProtecTORutube

    @ProtecTORutube

    6 жыл бұрын

    по подписям к полям, понятно, но выглядит недоделано. По списку: неудобно пользоваться любым списком, который не сортирован по возрастанию (алфавит или номера).

  • @easyexcellesson

    @easyexcellesson

    6 жыл бұрын

    проблем не вижу, можно сортировку делать в процедуре

  • @ProtecTORutube

    @ProtecTORutube

    6 жыл бұрын

    Easy Excel не видишь проблемы в использовании несортированного списка или в сортировке?

  • @user-xf5kt4pv8g
    @user-xf5kt4pv8g6 жыл бұрын

    Здравствуйте. У меня вопрос почему мы в функции FillRazdel() не содавали строку, как в функции AddSales() - (Set SalesListRow = SalesListObj.ListRows.Add). У меня выдает ошибку (object variable or with variable not set) - переменная не установлена, а если пытаюсь создать по аналогии (Set RazdelListRow = RazdelListObj.ListRows.Add) - выдает ошибку (type mismatch) - несоответствие типов

  • @easyexcellesson

    @easyexcellesson

    6 жыл бұрын

    А зачем добавлять строку? Эта процедура заполняет комбобоксы элементами списка. Новая строка не нужна, мы не добавляем данные в таблицу.

  • @user-xf5kt4pv8g

    @user-xf5kt4pv8g

    6 жыл бұрын

    Понял, но у меня все равно выдает ошибку на переменную RazdelListRow - (object variable or with variable not set)

  • @easyexcellesson

    @easyexcellesson

    6 жыл бұрын

    Возможно, что ошибка в названии переменной. Посмотрите, как написали глобальную переменную

  • @user-xf5kt4pv8g

    @user-xf5kt4pv8g

    6 жыл бұрын

    да нет вроде Dim ShSales As Worksheet Dim ShList As Worksheet Dim SalesListObj As ListObject Dim RazdelListObj As ListObject Dim SalesListRow As ListRow Dim RazdelListRow As ListObject

  • @easyexcellesson

    @easyexcellesson

    6 жыл бұрын

    Ошибка здесь - Dim RazdelListRow As ListObject Тип переменной неверный. Это строка, должна быть ListRow

  • @user-iv5yy7bp3y
    @user-iv5yy7bp3y5 жыл бұрын

    Добрый День!) При запуске кода, вылетает ошибка: run time error 70 permission denied как исправить?

  • @easyexcellesson

    @easyexcellesson

    5 жыл бұрын

    Ошибка означает - отказ в доступе. Не хватает прав на выполнение операции. В каком месте кода возникает ошибка?

  • @user-iv5yy7bp3y

    @user-iv5yy7bp3y

    5 жыл бұрын

    @@easyexcellesson pp.userapi.com/c846017/v846017780/1a202c/PkBfii8kuEw.jpg. При этом всем код написан правильно, и я все сдела как в этом уроке. Но при запуске кода, вылетает ошибка 70.

  • @easyexcellesson

    @easyexcellesson

    5 жыл бұрын

    При попытке вызвать форму на событие инициализации у вас срабатывает процедура. Ошибка в ней, поставьте отладчик в эту процедуру.

  • @user-iv5yy7bp3y

    @user-iv5yy7bp3y

    5 жыл бұрын

    ​@@easyexcellesson а как это сделать, я прсото не знаю. И спасибо большое за помощь!!!

  • @easyexcellesson

    @easyexcellesson

    5 жыл бұрын

    высылайте файл на - info@1excel.ru. Я посмотрю ошибку.

  • @Maika-dd6ub
    @Maika-dd6ub6 жыл бұрын

    Добрый день. Пробую осваивать VBA так как тоже нужна такая умная табличка для ИМ. Повторял действия за Вами и на 39 минуте, при проверке работы с tbx_group выдает ошибку, какую не могу понять.. все делал в точности как на видео, что не так? 5 раз пересматриваю, переписываю под диктовку и выдает ошибку.. вот ссылка на мою таблицу: drive.google.com/open?id=1lQOnp96DdZIqI3B8FcC9QM9TZKHhoBpx

  • @easyexcellesson

    @easyexcellesson

    6 жыл бұрын

    Не пойму, где появляется ошибка? Списки работают, не считая последней строки кода по очистке групп данными, который видимо вы еще не написали)

  • @Maika-dd6ub

    @Maika-dd6ub

    6 жыл бұрын

    Easy Excel Запускаю таблицу, проверяю txb_раздел, выбираю БАДЫ и он выкидывает в код, пишет, что имеется ошибка. Раз 20 проверил, не нашел. 🤔

  • @sergiofilipps9160
    @sergiofilipps91606 жыл бұрын

    Насколько я понимаю, если отсортировать в столбце "Группа" по алфавиту в любом направлении, то в столбце "Раздел" порядок будет изменен и тогда цикл работать не будет! Мне кажется необходим какой то другой способ отбора! В VBA я не селен, но с такой проблемой я сталкивался в построении формул отбора в Excel, когда все расчёты работали правильно, пока не решил отсортировать список для удобства восприятия визуального, в следствии чего вся цепочка расчётов стала выдавать ошибки!

  • @easyexcellesson

    @easyexcellesson

    6 жыл бұрын

    да, верно, проблема будет, если делать сортировку именно по столбцу "Группа". Эту проблему можно решить с помощью массива. Загонять данные столбца "Раздел" в массив и проверять на наличие уже существующего названия.

  • @easyexcellesson

    @easyexcellesson

    6 жыл бұрын

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

  • @sergiofilipps9160

    @sergiofilipps9160

    6 жыл бұрын

    Спасибо Павел!!! Конечно будет интересно как реализовывать в других вариантах! Есть предложение в видео хотя бы кратко проговаривать, перечислять какие возможные есть варианты реализаций! Если это конечно не усложнит создания Вашего видео проекта!

  • @easyexcellesson

    @easyexcellesson

    6 жыл бұрын

    Сергей, можете попробовать вставить вот такой Sub и его вызывать по событию на combobox Раздел, вместо того, который я показал в видео. Здесь можно применять любую сортировку, проблем с добавлением не возникнет. Sub FillMassive() ' заполняем значения из списка без повторений через массив Dictionary Dim dict As Variant Dim KeysArr As Variant Dim i As Variant Dim Key As Variant Dim Result As Variant Set ShList = ThisWorkbook.Worksheets("Списки") Set RazdelListObj = ShList.ListObjects("Разделы_tb") Set dict = CreateObject("Scripting.Dictionary") ' создание словаря ' через цикл загоняем значения без повторений в словарь For Each RazdelListRow In RazdelListObj.ListRows Key = RazdelListRow.Range(1) If Not dict.Exists(Key) Then ' Exists - Возвращает true, если указанный ключ существует в словаре, либо false - в противном случае. dict.Add Key, 1 ' добавляем новый элемент в коллекцию End If Next RazdelListRow KeysArr = dict.Keys ' записываем в массив все ключи, которые имеются в словаре ' циклом вытаскиваем все значения из массива For i = 0 To dict.Count - 1 Result = KeysArr(i) Sales.cbx_type.AddItem Result Next i End Sub

  • @user-hg3yl6ku9z

    @user-hg3yl6ku9z

    6 жыл бұрын

    Set Vid = Лист.ListObjects("Вид1") Можно ли вместо Умного объекта обращаться к именованному диапазону?Как ты это сделать,так как Set Vid = Лист.Range("Вид") вид не работает.

  • @user-lw4jy1hb2o
    @user-lw4jy1hb2o Жыл бұрын

    Чот у меня не получается с категориями (

  • @user-id1rg6ku6c
    @user-id1rg6ku6c5 жыл бұрын

    Добрый день!!! Сталкнулась с такой проблемой, что при добавлении нового значения в таблицу "статус заказа" зависает Excel и пытается "восстановить информацию... " но в итоге он просто не отвечает, как исправить данную проблему и с чем это связано? ссылка для документа: drive.google.com/open?id=15MPaUdipPUbGtKub-nPok6pKZ4xZi_HW

  • @easyexcellesson

    @easyexcellesson

    5 жыл бұрын

    Не смог воспроизвести данную проблему. Скорее где-то сам Excel натыкался на какую-то внутреннюю проблему. Обычно перезагрузка файла помогает

  • @user-id1rg6ku6c

    @user-id1rg6ku6c

    5 жыл бұрын

    @@easyexcellesson Добрый день! Эта проблема возникает при прописании имени таблицы в RowSource, и после этого, если добавляешь новую строчку списки то эксель начинает перезагружаться

  • @katayamakatayama1411
    @katayamakatayama1411 Жыл бұрын

    Help. Sos. Все сделал по ролику добавил лишь в цикл For Each .. Next, еще одно условие If.. If (если строка = "". Then ... но компилятор выдает ошибку в цикле ( Next without For)... Беда, не могу найти свой косяк..."ПОМОГИТЕ !!! Аларма, аларма! Аларма"

  • @easyexcellesson

    @easyexcellesson

    Жыл бұрын

    возможно вы забыли закрывающий блок второго IF - End IF. Проверьте

  • @katayamakatayama1411

    @katayamakatayama1411

    Жыл бұрын

    @@easyexcellesson Спасибо большое. Все поправил, но теперь возникла другая дилемма. Умная таблица заполняется из формы (приход товара на склад) добавляя строки на каждую новую запись. Теперь мне нужно внести из формы в уже сформированную умную таблицу в пустые столбцы данные о списании товара. Т.е. есть строка в которой 32 колонки. 15 колонок это данные о приходе товара они то как раз заполняются из формы без проблем. Но вторая часть ( 15 колонок) данные о расходе - пустые. Собственно не могу найти решения, чтобы по условию ( поиск ID Товара=уникальный номер товара =артикул) данные в строке о приходе не менялись, а в эту же строку, но в другие колонки добавлялись данные из формы о расходе товара. Перелопатил весь интернет есть только метод Add который добавляет строки, а все остальные попытки поправить код привели к плачевным результатам. Может подскажете в каком направлении идти? Метод Find по вашим видео использовал, не помогло (((( видимо в 55 лет уже поздно учиться программированию ....

  • @valerivaleri5729
    @valerivaleri57293 жыл бұрын

    затянутые , нудные уроки с кучей ненужной инфы. То что можно было объяснить за пару минут -тя-я-я-я-нет.

Келесі