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

  Рет қаралды 11,826

Pavel Kogan

Pavel Kogan

6 жыл бұрын

ПОЛНАЯ ПРОГРАММА УЧЕТА - 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 жыл бұрын
По больше видео таких. Что то уже начинает получатся.
@agluchov1986
@agluchov1986 6 жыл бұрын
Полезно пользоваться with. Чтобы не писать постоянно Sales, достаточно один раз написать в начале процедуры
@ProtecTORutube
@ProtecTORutube 6 жыл бұрын
Спасибо за видео. Файлик будет или старый обновился?
@ProtecTORutube
@ProtecTORutube 6 жыл бұрын
для защиты от ошибок ввода лучше фильтровать значения прямо на вводе. примерно так: 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.
@zaolog
@zaolog 3 жыл бұрын
Спасибо за крутые уроки. Скажите каким инструментом воспользоваться для заполнения определенных ячеек таблицы без добавления строк? Сейчас использую автоматическую форму которую создаёт excel.
@Anatolii_Kodirov
@Anatolii_Kodirov 3 жыл бұрын
Спасибо за информативное видео. У меня вопрос: как добавить разделитель разрядов для чисел в числовых ячейках формы? Пример 10500 - 10 500. Как настроить, чтоб числа в числовых ячейках формы отображались с право на лево?
@W510
@W510 6 жыл бұрын
Уверен, что стоит сделать автозаполнение при вводе текста, уже внесенных записей, например, в графу поставщик.
@user-kh8re6qt2f
@user-kh8re6qt2f 4 жыл бұрын
Добрый день, подскажите почему в форме макрос считает умножение, но не выводит в итоговый столбец экселя?
@Acheslav
@Acheslav 5 жыл бұрын
Интересный вопрос: При открытии формы вставляем текущую дату. А как в поле Дата доставки поставить дату + 20 рабочих дней
@maximyarmolenko3012
@maximyarmolenko3012 4 жыл бұрын
У меня один вопрос: почему мой spinButton добавляет числа не в ту сторону?
@anonimanonim2705
@anonimanonim2705 4 жыл бұрын
Добрый день! У меня Spin_button добавляет число наоборот, то есть, если нажать вверх то количество уменьшается, а если нажать вниз - количество увеличивается. Как быть в таком случае?
@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 жыл бұрын
Макросов генерации штрихкодов в интернете полно. Сгенерировал, присвоил товару, подключил сканер (был на блютузе) и погнал. Я этим уже не занимаюсь (то шел далекий 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 жыл бұрын
Эту ошибку можно обработать, вот здесь подробно об этом - kzfaq.info/get/bejne/Y61idrB8ycrQhIk.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 жыл бұрын
поправил код фильтра ввода тут: kzfaq.info/get/bejne/mpych69kyZO6mGw.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 разве не должна автоматически подставля текущая дата при открытии?
@nordicboy7357
@nordicboy7357 6 жыл бұрын
Сколько стоит разработка такого проекта?
@easyexcellesson
@easyexcellesson 6 жыл бұрын
на первоначальном этапе (без доработок) разработка данного проекта стоит 50 т.р.
@nordicboy7357
@nordicboy7357 6 жыл бұрын
Easy Excel возможно рассчитать стоимость? куда можно отправить тех. задание?
@easyexcellesson
@easyexcellesson 6 жыл бұрын
Да, возможно, отправить можно сюда - info@1excel.ru
@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 жыл бұрын
К эксель это не имеет отношения, но это не склад - это бардак.
@MrSlobik
@MrSlobik 6 жыл бұрын
ProtecTORutube это управляемый бардак)))
@ProtecTORutube
@ProtecTORutube 6 жыл бұрын
не понятно, для чего сделаны списки группы и раздела товаров. даже если подразумевается поиск товара по наименованию, то эти списки не имеют смысла. проще сделать поиск по наименованию так же, как по артикулу, используя неточный поиск и/или скролл по списку названий, отсортированному по алфавиту. или в дальнейшем будет реализован ввод новых товаров в этой же форме? так опять же: для поиска новых товаров, эти группы не имеют смысла, разве что использовать список товаров из Ексель для выгрузки на сайт...
@easyexcellesson
@easyexcellesson 6 жыл бұрын
Списки сделаны были изначально, т.к. и планировалось заполнение разделов и групп из комбобокса. То, что они стали подтягиваться, это скорее мое предложение для заказчика. Но для этого необходимо постоянно прописывать эти разделы и группы в Складе. Будет ли такая работа проводиться, я не знаю. Именно поэтому возможность ручного выбора остается для данного варианта актуальна.
@ProtecTORutube
@ProtecTORutube 6 жыл бұрын
т.е. при заполнении данных по заказу, по сути, безразлично из какой группы конкретный товар? а выбрать вручную - это надо знать весь номенклатурный справочник наизусть или иметь его перед глазами, что просто нереально.
@easyexcellesson
@easyexcellesson 6 жыл бұрын
разделы и группы нужны только для внутренней статистики и дальнейшего анализа проданных товаров по группам. Для менеджера знать и найти раздел или группу не составит особого труда. Сайт перед глазами всегда. Единственное, что при увеличении объема заказов, как мне видится, может эта процедура отнимать время и просто стать неактуальной. Но это, как и вся обычная доработка, приходит со временем. Нельзя сразу сделать идеально готовый продукт. Требования достаточно часто могут меняться.
@ProtecTORutube
@ProtecTORutube 6 жыл бұрын
при таком выполнении будет снижаться скорость заполнения формы заказа. а это потери времени и покупателей. для программиста работа состоит в нажимании клавиш, а для менеджера продаж это не так. поэтому минимум должно быть лишних телодвижений.
小蚂蚁被感动了!火影忍者 #佐助 #家庭
00:54
火影忍者一家
Рет қаралды 43 МЛН
Secret Experiment Toothpaste Pt.4 😱 #shorts
00:35
Mr DegrEE
Рет қаралды 39 МЛН
Little brothers couldn't stay calm when they noticed a bin lorry #shorts
00:32
Fabiosa Best Lifehacks
Рет қаралды 4,4 МЛН
Пранк пошел не по плану…🥲
00:59
Саша Квашеная
Рет қаралды 7 МЛН
Работа с умной таблицей на VBA. Часть 2
16:29
Как в Excel посчитать количество рабочих дней между датами
0:15
Формулы в VBA - Три совета (Серия VBA 16)
11:24
Билял Хасенов – Excel, VBA & More
Рет қаралды 25 М.
47  UserForm Controls   The CheckBox
8:11
Sanu Tutorial
Рет қаралды 2,4 М.
Работа с умной таблицей на VBA. Урок 3
10:15
小蚂蚁被感动了!火影忍者 #佐助 #家庭
00:54
火影忍者一家
Рет қаралды 43 МЛН