Урок 7. Подсчеты, обработка ошибок Err. Excel+VBA. Система учета Интернет-магазина
ПОЛНАЯ ПРОГРАММА УЧЕТА - 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
По больше видео таких. Что то уже начинает получатся.
Полезно пользоваться with. Чтобы не писать постоянно Sales, достаточно один раз написать в начале процедуры
для защиты от ошибок ввода лучше фильтровать значения прямо на вводе. примерно так: 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
6 жыл бұрын
А каким образом в формулах для вычисления используя значения ячеек умной таблицы и значения заносимые в форму
@ProtecTORutube
6 жыл бұрын
это вопрос?
@tatyanai9290
6 жыл бұрын
Да конечно, интересует данная информация.
@ProtecTORutube
6 жыл бұрын
постарайтесь сформулировать ваш вопрос так, чтобы было понятно, что именно вы спрашиваете. если не понятно, о чем я говорю, то перечитайте то, что вы написали в виде вопроса.
@tatyanai9290
6 жыл бұрын
Как посчитать разницу между тем числом, которое я сейчас ввожу в форму и числом, которое было введено раньше и уже находится в умной таблице? Например число "5" вношу в форму, а число "3" находится уже в таблице. Необходимо вычислить: 5-3=2. Результат "2" и число "5" затем заносится в таблицу, после нажатия кнопки "Сохранить" При чем Числа "3" и "5" располагаются в одном столбце, а результат "2" заносится в другой столбец. И так далее. Скажем следующее число будет "12", значит 12-5=7.
Спасибо за видео. Файлик будет или старый обновился?
Спасибо за крутые уроки. Скажите каким инструментом воспользоваться для заполнения определенных ячеек таблицы без добавления строк? Сейчас использую автоматическую форму которую создаёт excel.
Спасибо за информативное видео. У меня вопрос: как добавить разделитель разрядов для чисел в числовых ячейках формы? Пример 10500 - 10 500. Как настроить, чтоб числа в числовых ячейках формы отображались с право на лево?
Уверен, что стоит сделать автозаполнение при вводе текста, уже внесенных записей, например, в графу поставщик.
Интересный вопрос: При открытии формы вставляем текущую дату. А как в поле Дата доставки поставить дату + 20 рабочих дней
Добрый день, подскажите почему в форме макрос считает умножение, но не выводит в итоговый столбец экселя?
У меня один вопрос: почему мой spinButton добавляет числа не в ту сторону?
Помню, лет 5 назад сделал что-то похожее для выставок, чтобы быстро можно было сканером штрихкодов набирать товары, которые клиент выбрал, внесенные им предоплаты, контактные данные, видеть остатки и т.д. И помню встала серьезно проблема - как этой штукой пользоваться на выставке сразу нескольким менеджерам. Пробовал через яндекс.диск, файл лежал на сервере и менеджер со своим ноутом таскал файл оттуда, а после сохранял его - увы, но это было фиаско, братан, постоянно были ошибки одновременной работы. Тогда я понял, что у экселя есть потолок в этом плане. Нельзя его носить в кармане (в телефоне), и тем более пользоваться одновременно (без всяких там уведомлений об изменений файла, связи изменений и всякой лабуды) нескольким менеджерам, в отличии от облачных решений. И уже тогда начали набирать обороты фреймворки для PHP и др языков, что сильно упрощало разработку, которые очень сильно мне помогли в написании похожих приложений, но уже со всеми вытекающими преимуществами. Я думал, что уже не встречу коммерческих проектов для подобных задач на excel. Тем более, посмотрев на сайт этой компании сильно удивился и ассортименту и качеству сайта - весьма на высоком уровне. Как заказчик додумался до такого решения, имея столь качественный сайт? Хочу понять логику, потому что сам иногда думаю о многих плюшках, которые можно развернуть очень быстро прямо из эксель, но... Как собираетесь обходить проблемы, которые появятся уже "завтра": 1. Программа обречена на использование одним работником, на одном компьютере? 2. Я так понял и информация о товарах и клиентах не будет синхронизироваться с сайтом, все копипастом? 3. Как сегодня обстоят дела с приспосабливаемостью программы к переезду на другие версии excel (или операционнной системы), в мое время это был кошмар (кнопки, ярлыки, библиотеки, кодировки)?
@ProtecTORutube
6 жыл бұрын
тут надо отметить существенную разницу подходов: написать ПО для себя и под заказ.
@easyexcellesson
6 жыл бұрын
Excel - не многопользовательская программа. Это ее большой минус. В данном случае заказчик знал на что шел и понимал, что программой будет пользоваться один менеджер (каждый в свою смену). Как далее будут развиваться события нам не известно, но данного решения может хватит на некоторое время. Есть плюсы экселя - доступность данных и простота их анализа (сводные отчеты, визуальное представление, графики и различные диаграммы), программу достаточно быстро и относительно недорого (это не программисты PHP) можно доработать По проблемам. 1. Да, это правильно. Это минус. 2. Теоретически такую задачу можно решить и через API сделать интеграцию. Если заказчику будет нужно, то мы будем обсуждать такую доработку. 3. Кроме Excel 2003 на всех версиях должно работать корректно, проблем не возникнет с этим. Работа со сканером очень интересно, есть один потенциальный заказчик у меня, ему как раз такой функционал нужен) Если поделитесь опытом, буду крайне благодарен.
@ProtecTORutube
6 жыл бұрын
Константину надо было отвечать, а так он не увидит просьбы про сканер.
@KonstantinPrydnikov1
6 жыл бұрын
Макросов генерации штрихкодов в интернете полно. Сгенерировал, присвоил товару, подключил сканер (был на блютузе) и погнал. Я этим уже не занимаюсь (то шел далекий 2013 и клепал я макросы дичайшим процедурным VBA, хотя до сих пор не понимаю, где он - этот загадочный ООП VBA, ведь это про классы, экземпляры, наследование, инкапсуляцию и полиморфизм, сори за офтоп ), но кому интересно - вот наработки, все-таки 2 сезона когда-то эта штука отработала. Даже видос какой-то остался для сотрудников: yadi.sk/d/PkAYGBw-3UY8qQ и папка с файлами, которые (естесно), корректно уже не открываются в моем новом excel, без подключения иконок, доп функций, разделов и т.д.: yadi.sk/d/oiLcH-Gc3UY95o
@easyexcellesson
6 жыл бұрын
Константин, спасибо большое за материалы, это очень ценно и многим может пригодиться, мне в том числе. А по поводу классов, инкапсуляции и прочего вполне все применимо к VBA. Это все реально, было бы желание))
Добрый день! У меня Spin_button добавляет число наоборот, то есть, если нажать вверх то количество уменьшается, а если нажать вниз - количество увеличивается. Как быть в таком случае?
Если в столбце цены товара стоит дробное число, например 11,11 то выдает ошибку при подсчёте суммы тайп мисматч, так как число не целое, как можно корректно этого избежать? Меняю в поле цена точку на запятую и все норм становится
@easyexcellesson
6 жыл бұрын
точки не работают, все верно. Можно прописать событие, чтобы при наборе с клавиатуры точки в поле кол-во, автоматически подставлялась запятая. Событие на KeyPresss. Посмотрите комментарии к этому уроку, тут было предложение уже и даже код написан
@user-bp6zj2xb7h
6 жыл бұрын
Спасибо!
@user-bp6zj2xb7h
6 жыл бұрын
У меня при наборе стоит и так запятая, однако программа при подставлении этого значения в окно "цена" всегда меняет запятую на точку, в следствии чего выпадает ошибка. Получается берет с запятой а вставляет с точкой, пытаюсь разобраться теперь почему так происходит. Как менять при событие это я уже читал, а как избежать такое автозаполнение значений с заменой при работе summcalculate, не понимаю
@user-bp6zj2xb7h
6 жыл бұрын
Спасибо вам за интересную работу, все прям очень круто.
@user-bp6zj2xb7h
6 жыл бұрын
Я нашёл место перехода с запятой в точку. После функции поиска артикля при успешном исполнении функции он начинает заполнять формы пользовательской формы. И если в таблице цена указана с запятой (например 300,56 руб), то он почему то не меняет на стринговое значение (в строке sales.tbx_price.value=cell.cells(1,5). Не подскажите как можно это изменить?
Добрый день ошибка Sub SummCalculate() Dim Price As Double Dim Count As Double Dim Summ As Double Price = Sales.txb_price.Value !!!!!!!!!!!!!!!!!!!
@easyexcellesson
5 жыл бұрын
Эту ошибку можно обработать, вот здесь подробно об этом - kzread.info/dash/bejne/X3tmpa-ElMfShLg.html
@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
Павел, подскажите в чем ошибка. 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
3 жыл бұрын
Виталий, а в чем ошибка, не могу увидеть что-то?)
@user-yb5hr7nb1r
3 жыл бұрын
@@easyexcellesson разве не должна автоматически подставля текущая дата при открытии?
поправил код фильтра ввода тут: kzread.info/dash/bejne/lmqgtq5slJC8mJs.html&lc=UgyEdP-MzzhhXnJNx-N4AaABAg без проверки на ошибку, он пропускал нажатия стрелок и других несимвольных клавиш, после чего обработка события кейпрес - не срабатывает и вместо чисел можно вводить любые символы.
Сколько стоит разработка такого проекта?
@easyexcellesson
6 жыл бұрын
на первоначальном этапе (без доработок) разработка данного проекта стоит 50 т.р.
@nordicboy7357
6 жыл бұрын
Easy Excel возможно рассчитать стоимость? куда можно отправить тех. задание?
@easyexcellesson
6 жыл бұрын
Да, возможно, отправить можно сюда - info@1excel.ru
Сделай проверку что б количество товара должно быть равно или меньше наличия
@MrSlobik
6 жыл бұрын
Swear Swear зачем? Продажи должны быть возможны и в минус. Остатки почти никогда идеально не соответствуют реальности на 100%
@swearkh
6 жыл бұрын
Alex Sloboda т.е если клиент закажет 20 шт. а по факту наличие 3 шт., как они ему продадут? если по факту на сегодня такого количества нет. На моём складе все идеально.
@MrSlobik
6 жыл бұрын
Swear Swear повторю, фактическое и учетное наличие (количество на остатке) разные вещи... клиент заказал 20шт. По учету у вас 3шт. А в реальности 25шт. Вам что не продавать этот товар пока не выясните почему их в учетной базе 3шт. а не 25шт???
@ProtecTORutube
6 жыл бұрын
К эксель это не имеет отношения, но это не склад - это бардак.
@MrSlobik
6 жыл бұрын
ProtecTORutube это управляемый бардак)))
не понятно, для чего сделаны списки группы и раздела товаров. даже если подразумевается поиск товара по наименованию, то эти списки не имеют смысла. проще сделать поиск по наименованию так же, как по артикулу, используя неточный поиск и/или скролл по списку названий, отсортированному по алфавиту. или в дальнейшем будет реализован ввод новых товаров в этой же форме? так опять же: для поиска новых товаров, эти группы не имеют смысла, разве что использовать список товаров из Ексель для выгрузки на сайт...
@easyexcellesson
6 жыл бұрын
Списки сделаны были изначально, т.к. и планировалось заполнение разделов и групп из комбобокса. То, что они стали подтягиваться, это скорее мое предложение для заказчика. Но для этого необходимо постоянно прописывать эти разделы и группы в Складе. Будет ли такая работа проводиться, я не знаю. Именно поэтому возможность ручного выбора остается для данного варианта актуальна.
@ProtecTORutube
6 жыл бұрын
т.е. при заполнении данных по заказу, по сути, безразлично из какой группы конкретный товар? а выбрать вручную - это надо знать весь номенклатурный справочник наизусть или иметь его перед глазами, что просто нереально.
@easyexcellesson
6 жыл бұрын
разделы и группы нужны только для внутренней статистики и дальнейшего анализа проданных товаров по группам. Для менеджера знать и найти раздел или группу не составит особого труда. Сайт перед глазами всегда. Единственное, что при увеличении объема заказов, как мне видится, может эта процедура отнимать время и просто стать неактуальной. Но это, как и вся обычная доработка, приходит со временем. Нельзя сразу сделать идеально готовый продукт. Требования достаточно часто могут меняться.
@ProtecTORutube
6 жыл бұрын
при таком выполнении будет снижаться скорость заполнения формы заказа. а это потери времени и покупателей. для программиста работа состоит в нажимании клавиш, а для менеджера продаж это не так. поэтому минимум должно быть лишних телодвижений.