Урок 7. Подсчеты, обработка ошибок Err. Excel+VBA. Система учета Интернет-магазина

แชร์
ฝัง
  • เผยแพร่เมื่อ 12 เม.ย. 2018
  • ПОЛНАЯ ПРОГРАММА УЧЕТА - 1excel.ru/magazin-vba-excel
    Создание приложения системы учета интернет-магазина на базе Excel+VBA
    В данном уроке делаем проверку полей на форме и подсчитываем сумму заказа
    Предыдущие уроки:
    Урок 1. Постановка задачи - goo.gl/JvMQAm
    Урок 2. Дизайн и оформление - goo.gl/nJGzdw
    Урок 3. Модуль Продажи (создаем UserForm) - goo.gl/3XN6H6
    Урок 4. Пишем код (Теория+работа с формой) - • Урок 4. Пишем код (Тео...
    Урок 5. Заполнение списков ComboBox - goo.gl/6bPDw6
    Урок 6. Поиск артикула - goo.gl/Z23v37
    Easy Excel - ПОЛНОЕ и ПОДРОБНОЕ обучение программы Excel для новичков и практиков! Уроки по макросам и VBA
    Подписка на канал Easy Excel: / easyexcellesson

ความคิดเห็น • 58

  • @user-rn4vk9jg5m
    @user-rn4vk9jg5m 5 ปีที่แล้ว +1

    По больше видео таких. Что то уже начинает получатся.

  • @zaolog
    @zaolog 3 ปีที่แล้ว

    Спасибо за крутые уроки. Скажите каким инструментом воспользоваться для заполнения определенных ячеек таблицы без добавления строк? Сейчас использую автоматическую форму которую создаёт excel.

  • @ProtecTORutube
    @ProtecTORutube 6 ปีที่แล้ว

    Спасибо за видео. Файлик будет или старый обновился?

  • @Anatolii_Kodirov
    @Anatolii_Kodirov 3 ปีที่แล้ว

    Спасибо за информативное видео. У меня вопрос: как добавить разделитель разрядов для чисел в числовых ячейках формы? Пример 10500 - 10 500.
    Как настроить, чтоб числа в числовых ячейках формы отображались с право на лево?

  • @agluchov1986
    @agluchov1986 6 ปีที่แล้ว

    Полезно пользоваться with. Чтобы не писать постоянно Sales, достаточно один раз написать в начале процедуры

  • @Acheslav
    @Acheslav 5 ปีที่แล้ว

    Интересный вопрос: При открытии формы вставляем текущую дату. А как в поле Дата доставки поставить дату + 20 рабочих дней

  • @user-kh8re6qt2f
    @user-kh8re6qt2f 4 ปีที่แล้ว

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

  • @W510
    @W510 6 ปีที่แล้ว +1

    Уверен, что стоит сделать автозаполнение при вводе текста, уже внесенных записей, например, в графу поставщик.

  • @maximyarmolenko3012
    @maximyarmolenko3012 4 ปีที่แล้ว

    У меня один вопрос: почему мой spinButton добавляет числа не в ту сторону?

  • @anonimanonim2705
    @anonimanonim2705 4 ปีที่แล้ว

    Добрый день! У меня Spin_button добавляет число наоборот, то есть, если нажать вверх то количество уменьшается, а если нажать вниз - количество увеличивается. Как быть в таком случае?

  • @ProtecTORutube
    @ProtecTORutube 6 ปีที่แล้ว +4

    для защиты от ошибок ввода лучше фильтровать значения прямо на вводе. примерно так:
    On Error Resume Next
    Select Case KeyAscii
    Case 48 To 57, 8 ' цифры 0 - 9 и (эти символы всегда разрешены)
    Case 44, 46 ' обработка десятичного разделителя (44 - код запятой, 46 - код точки)
    KeyAscii = 46 ' если в поле введена запятая, то заменим ее на точку
    If InStr(1, Me.ИМЯ_ПОЛЯ, ".") Then KeyAscii = 0 ' вторую точку нельзя
    Case 45 ' дефис (минус перед числом)
    If InStr(1, Me.ИМЯ_ПОЛЯ, "-") Then KeyAscii = 0 ' второй минус нельзя
    If Me.ИМЯ_ПОЛЯ.SelStart Then KeyAscii = 0 ' минус допустим только перед числом
    Case Else
    KeyAscii = 0 ' остальные символы запрещены
    End Select
    проверка ставится на событие кейпрес для текстового поля и проверяет ввод чисел, десятичного разделителя и указателя отрицательного значения.
    при этом пользователя абсолютно не напрягают сообщения об ошибках в всплывающих окнах - он просто не может ошибиться, как бы не старался.

    • @tatyanai9290
      @tatyanai9290 6 ปีที่แล้ว

      А каким образом в формулах для вычисления используя значения ячеек умной таблицы и значения заносимые в форму

    • @ProtecTORutube
      @ProtecTORutube 6 ปีที่แล้ว

      это вопрос?

    • @tatyanai9290
      @tatyanai9290 6 ปีที่แล้ว

      Да конечно, интересует данная информация.

    • @ProtecTORutube
      @ProtecTORutube 6 ปีที่แล้ว

      постарайтесь сформулировать ваш вопрос так, чтобы было понятно, что именно вы спрашиваете. если не понятно, о чем я говорю, то перечитайте то, что вы написали в виде вопроса.

    • @tatyanai9290
      @tatyanai9290 6 ปีที่แล้ว

      Как посчитать разницу между тем числом, которое я сейчас ввожу в форму и числом, которое было введено раньше и уже находится в умной таблице? Например число "5" вношу в форму, а число "3" находится уже в таблице. Необходимо вычислить: 5-3=2. Результат "2" и число "5" затем заносится в таблицу, после нажатия кнопки "Сохранить" При чем Числа "3" и "5" располагаются в одном столбце, а результат "2" заносится в другой столбец. И так далее. Скажем следующее число будет "12", значит 12-5=7.

  • @KonstantinPrydnikov1
    @KonstantinPrydnikov1 6 ปีที่แล้ว

    Помню, лет 5 назад сделал что-то похожее для выставок, чтобы быстро можно было сканером штрихкодов набирать товары, которые клиент выбрал, внесенные им предоплаты, контактные данные, видеть остатки и т.д. И помню встала серьезно проблема - как этой штукой пользоваться на выставке сразу нескольким менеджерам. Пробовал через яндекс.диск, файл лежал на сервере и менеджер со своим ноутом таскал файл оттуда, а после сохранял его - увы, но это было фиаско, братан, постоянно были ошибки одновременной работы. Тогда я понял, что у экселя есть потолок в этом плане. Нельзя его носить в кармане (в телефоне), и тем более пользоваться одновременно (без всяких там уведомлений об изменений файла, связи изменений и всякой лабуды) нескольким менеджерам, в отличии от облачных решений. И уже тогда начали набирать обороты фреймворки для PHP и др языков, что сильно упрощало разработку, которые очень сильно мне помогли в написании похожих приложений, но уже со всеми вытекающими преимуществами. Я думал, что уже не встречу коммерческих проектов для подобных задач на excel. Тем более, посмотрев на сайт этой компании сильно удивился и ассортименту и качеству сайта - весьма на высоком уровне. Как заказчик додумался до такого решения, имея столь качественный сайт? Хочу понять логику, потому что сам иногда думаю о многих плюшках, которые можно развернуть очень быстро прямо из эксель, но...
    Как собираетесь обходить проблемы, которые появятся уже "завтра":
    1. Программа обречена на использование одним работником, на одном компьютере?
    2. Я так понял и информация о товарах и клиентах не будет синхронизироваться с сайтом, все копипастом?
    3. Как сегодня обстоят дела с приспосабливаемостью программы к переезду на другие версии excel (или операционнной системы), в мое время это был кошмар (кнопки, ярлыки, библиотеки, кодировки)?

    • @ProtecTORutube
      @ProtecTORutube 6 ปีที่แล้ว

      тут надо отметить существенную разницу подходов: написать ПО для себя и под заказ.

    • @easyexcellesson
      @easyexcellesson  6 ปีที่แล้ว

      Excel - не многопользовательская программа. Это ее большой минус. В данном случае заказчик знал на что шел и понимал, что программой будет пользоваться один менеджер (каждый в свою смену). Как далее будут развиваться события нам не известно, но данного решения может хватит на некоторое время.
      Есть плюсы экселя - доступность данных и простота их анализа (сводные отчеты, визуальное представление, графики и различные диаграммы), программу достаточно быстро и относительно недорого (это не программисты PHP) можно доработать
      По проблемам.
      1. Да, это правильно. Это минус.
      2. Теоретически такую задачу можно решить и через API сделать интеграцию. Если заказчику будет нужно, то мы будем обсуждать такую доработку.
      3. Кроме Excel 2003 на всех версиях должно работать корректно, проблем не возникнет с этим.
      Работа со сканером очень интересно, есть один потенциальный заказчик у меня, ему как раз такой функционал нужен) Если поделитесь опытом, буду крайне благодарен.

    • @ProtecTORutube
      @ProtecTORutube 6 ปีที่แล้ว

      Константину надо было отвечать, а так он не увидит просьбы про сканер.

    • @KonstantinPrydnikov1
      @KonstantinPrydnikov1 6 ปีที่แล้ว +1

      Макросов генерации штрихкодов в интернете полно. Сгенерировал, присвоил товару, подключил сканер (был на блютузе) и погнал.
      Я этим уже не занимаюсь (то шел далекий 2013 и клепал я макросы дичайшим процедурным VBA, хотя до сих пор не понимаю, где он - этот загадочный ООП VBA, ведь это про классы, экземпляры, наследование, инкапсуляцию и полиморфизм, сори за офтоп ), но кому интересно - вот наработки, все-таки 2 сезона когда-то эта штука отработала.
      Даже видос какой-то остался для сотрудников:
      yadi.sk/d/PkAYGBw-3UY8qQ
      и папка с файлами, которые (естесно), корректно уже не открываются в моем новом excel, без подключения иконок, доп функций, разделов и т.д.:
      yadi.sk/d/oiLcH-Gc3UY95o

    • @easyexcellesson
      @easyexcellesson  6 ปีที่แล้ว

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

  • @user-bp6zj2xb7h
    @user-bp6zj2xb7h 6 ปีที่แล้ว

    Если в столбце цены товара стоит дробное число, например 11,11 то выдает ошибку при подсчёте суммы тайп мисматч, так как число не целое, как можно корректно этого избежать? Меняю в поле цена точку на запятую и все норм становится

    • @easyexcellesson
      @easyexcellesson  6 ปีที่แล้ว

      точки не работают, все верно. Можно прописать событие, чтобы при наборе с клавиатуры точки в поле кол-во, автоматически подставлялась запятая. Событие на KeyPresss. Посмотрите комментарии к этому уроку, тут было предложение уже и даже код написан

    • @user-bp6zj2xb7h
      @user-bp6zj2xb7h 6 ปีที่แล้ว

      Спасибо!

    • @user-bp6zj2xb7h
      @user-bp6zj2xb7h 6 ปีที่แล้ว

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

    • @user-bp6zj2xb7h
      @user-bp6zj2xb7h 6 ปีที่แล้ว

      Спасибо вам за интересную работу, все прям очень круто.

    • @user-bp6zj2xb7h
      @user-bp6zj2xb7h 6 ปีที่แล้ว

      Я нашёл место перехода с запятой в точку. После функции поиска артикля при успешном исполнении функции он начинает заполнять формы пользовательской формы. И если в таблице цена указана с запятой (например 300,56 руб), то он почему то не меняет на стринговое значение (в строке sales.tbx_price.value=cell.cells(1,5). Не подскажите как можно это изменить?

  • @user-cd6io5tf9i
    @user-cd6io5tf9i 5 ปีที่แล้ว

    Добрый день ошибка
    Sub SummCalculate()

    Dim Price As Double
    Dim Count As Double
    Dim Summ As Double

    Price = Sales.txb_price.Value
    !!!!!!!!!!!!!!!!!!!

    • @easyexcellesson
      @easyexcellesson  5 ปีที่แล้ว

      Эту ошибку можно обработать, вот здесь подробно об этом - th-cam.com/video/-G2CMKddlTU/w-d-xo.html

    • @user-li1xi4ni9k
      @user-li1xi4ni9k 4 ปีที่แล้ว

      У меня выдавало ошибку(число с ТОЧКОЙ). Помогло такой вариант (визуально точку в поле видно но считает и не выдает ошибку)
      Sub SummCalculete() ' Подсчёт суммы заказа
      On Error Resume Next
      Dim Price As Double
      Dim Count As Double
      Dim Summ As Double

      Price = Sales.txt_price.Value
      Price = Replace(Sales.txt_price.Value, ".", ",", 1, 1)

      Count = Sales.txt_count.Value
      Count = Replace(Sales.txt_count.Value, ".", ",", 1, 1)

      Summ = Price * Count
      Sales.txt_sum.Value = Summ

      End Sub

  • @ProtecTORutube
    @ProtecTORutube 6 ปีที่แล้ว

    поправил код фильтра ввода тут: th-cam.com/video/d6lTL3d-Vh8/w-d-xo.html&lc=UgyEdP-MzzhhXnJNx-N4AaABAg
    без проверки на ошибку, он пропускал нажатия стрелок и других несимвольных клавиш, после чего обработка события кейпрес - не срабатывает и вместо чисел можно вводить любые символы.

  • @user-yb5hr7nb1r
    @user-yb5hr7nb1r 3 ปีที่แล้ว

    Павел, подскажите в чем ошибка.
    Private Sub Sales_Initialize()
    Call FillGoods
    Me.cbx_датачек.Value = VBA.Date
    Me.guest.Value = True

    End Sub
    итог: drive.google.com/drive/folders/1Hu1QQDz245esrRrgRTr10UpWPGzmNxPD?usp=sharing

    • @easyexcellesson
      @easyexcellesson  3 ปีที่แล้ว

      Виталий, а в чем ошибка, не могу увидеть что-то?)

    • @user-yb5hr7nb1r
      @user-yb5hr7nb1r 3 ปีที่แล้ว

      @@easyexcellesson разве не должна автоматически подставля текущая дата при открытии?

  • @ProtecTORutube
    @ProtecTORutube 6 ปีที่แล้ว

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

    • @easyexcellesson
      @easyexcellesson  6 ปีที่แล้ว

      Списки сделаны были изначально, т.к. и планировалось заполнение разделов и групп из комбобокса. То, что они стали подтягиваться, это скорее мое предложение для заказчика. Но для этого необходимо постоянно прописывать эти разделы и группы в Складе. Будет ли такая работа проводиться, я не знаю. Именно поэтому возможность ручного выбора остается для данного варианта актуальна.

    • @ProtecTORutube
      @ProtecTORutube 6 ปีที่แล้ว

      т.е. при заполнении данных по заказу, по сути, безразлично из какой группы конкретный товар? а выбрать вручную - это надо знать весь номенклатурный справочник наизусть или иметь его перед глазами, что просто нереально.

    • @easyexcellesson
      @easyexcellesson  6 ปีที่แล้ว

      разделы и группы нужны только для внутренней статистики и дальнейшего анализа проданных товаров по группам. Для менеджера знать и найти раздел или группу не составит особого труда. Сайт перед глазами всегда. Единственное, что при увеличении объема заказов, как мне видится, может эта процедура отнимать время и просто стать неактуальной. Но это, как и вся обычная доработка, приходит со временем. Нельзя сразу сделать идеально готовый продукт. Требования достаточно часто могут меняться.

    • @ProtecTORutube
      @ProtecTORutube 6 ปีที่แล้ว

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

  • @swearkh
    @swearkh 6 ปีที่แล้ว

    Сделай проверку что б количество товара должно быть равно или меньше наличия

    • @MrSlobik
      @MrSlobik 6 ปีที่แล้ว

      Swear Swear зачем? Продажи должны быть возможны и в минус. Остатки почти никогда идеально не соответствуют реальности на 100%

    • @swearkh
      @swearkh 6 ปีที่แล้ว

      Alex Sloboda т.е если клиент закажет 20 шт. а по факту наличие 3 шт., как они ему продадут? если по факту на сегодня такого количества нет. На моём складе все идеально.

    • @MrSlobik
      @MrSlobik 6 ปีที่แล้ว

      Swear Swear повторю, фактическое и учетное наличие (количество на остатке) разные вещи... клиент заказал 20шт. По учету у вас 3шт. А в реальности 25шт. Вам что не продавать этот товар пока не выясните почему их в учетной базе 3шт. а не 25шт???

    • @ProtecTORutube
      @ProtecTORutube 6 ปีที่แล้ว +1

      К эксель это не имеет отношения, но это не склад - это бардак.

    • @MrSlobik
      @MrSlobik 6 ปีที่แล้ว

      ProtecTORutube это управляемый бардак)))

  • @nordicboy7357
    @nordicboy7357 6 ปีที่แล้ว

    Сколько стоит разработка такого проекта?

    • @easyexcellesson
      @easyexcellesson  6 ปีที่แล้ว

      на первоначальном этапе (без доработок) разработка данного проекта стоит 50 т.р.

    • @nordicboy7357
      @nordicboy7357 6 ปีที่แล้ว

      Easy Excel возможно рассчитать стоимость? куда можно отправить тех. задание?

    • @easyexcellesson
      @easyexcellesson  6 ปีที่แล้ว

      Да, возможно, отправить можно сюда - info@1excel.ru