Отличный урок, смотрится и воспринимается в полном объёме. Ничего лишнего всё по теме, спасибо!
@ivanandrianov23832 жыл бұрын
Огонь! Не знал, что в excel можно на Basic команды писать. Пойду теперь изучать Basic! 😂 Автор красавчик! Спасибо!
@TheSgeleta7 жыл бұрын
Отличный урок! Когда знаешь , все просто получается... у меня есть таблица Заказов.... она состоит из ряда столбцов: дата, # заказа , клиент, товар, количество цена , сумма. Кроме клиент и товар (их я выбираю из выпадающего списка), все остальное приходится вставлять проходя по ряду. А если заявка содержит 10 наименований, то приходится делать на одну заявку 10 строк протягивая в низ... классно было бы использовать такую форму для ввода данных....
@tykraeB7 жыл бұрын
Спасибо!!! очень полезно и понятно, пару косяков в Basic было) но это моя невнимательность при списывании!!
@Arkady_Anin6 жыл бұрын
Ваще супер! Объясняешь лучше любого препода! Тока с BASIC можно было бы и поподробней. А так все супер!
@cherepave18 жыл бұрын
Спасибо за видео! Очень помогло!
@svoloch Жыл бұрын
Шикарно
@БогданЖитник-щ2ц6 жыл бұрын
Здравствуйте. Большое спасибо за урок. Можно ли в конце таблицы добавить строку «итого»?
@kurman3023 Жыл бұрын
Как с Вами связаться для сотрудничества?
@Kost150rus2 жыл бұрын
А как сделать чтобы в конце автоматически добавлялась строка с итоговой суммой по сумме и по весу?
@Промтехноремонт3 жыл бұрын
а как сделать так, что бы он сразу добавлял несколько строк, например то количество, которое указанное в таблице данных?
@vadimpanteleyev32156 жыл бұрын
Здравствуйте! Столкнулся с проблемой. Использовал вашу функцию ввода данных в таблицу ((( nextrow = Cashflow.Cells(Cashflow.Rows.Count, 4).End(xlUp).Offset(1, 0).Row )))))на многих листах через один макрос. На 4-ёх из них все вставляется идеально, а вот на одном из листов данные вставляются за таблицу, что в последствии не позволяет фильтровать данные верно пока вручную не подтянешь границы таблицы.... в чем может быть проблемы. То есть данные идут на следующую строчку но граница таблицы не подтягивается.....
@EvgTiakaExT6 жыл бұрын
код работает, но как его добавить в таблицу которая Уже существует, у меня допустим код добавляет в конец существующей таблицы, со строки 2260( в последнюю строку) и если пишешь xldown то появляется ошибка в коде
Как сделать так чтобы форма заполнения была на одном листе, а Таблицу она заполняла на другом листе ?
@edemenverov32085 жыл бұрын
Решили этот вопрос?
@МамбетАлыбаев-э3р4 жыл бұрын
@@edemenverov3208 Нет, помогите решить
@Denis.tourist4 жыл бұрын
@@МамбетАлыбаев-э3р Мне тоже сейчас надо это сделать. У вас появилось решение?
@djeypaff8 жыл бұрын
Здравствуйте! Во-первых спасибо за урок, очень полезная информация... Во-вторых, попытался переделать его под свою задачу, но столкнулся с ошибкой и не могу понять что ему не нравится... Ошибка "Метод PasteSpecial из класса Range завершен не верно". Вот мой код: Sub AddDateToTable() Dim nextRow As Long nextRow = MainTable.Cells(MainTable.Rows.Count, 2).End(xlUp).Offset(1, 0).Row With MainTable If .Range("A3").Value = "" And .Range("B3").Value = "" Then nextRow = nextRow - 1 End If MainTable.Range("podraz").Copy .Cells(nextRow, 3).PasteSpecial Paste:=xlPasteValues MainTable.Range("mr_nak").Copy .Cells(nextRow, 4).PasteSpecial Paste:=xlPasteValues .Cells(nextRow, 2).Value = MainTable.Range("fio").Value .Cells(nextRow, 5).Value = MainTable.Range("N_prikaz").Value .Cells(nextRow, 6).Value = MainTable.Range("dt_prikaz").Value .Range("A3").Formula = "=IF(ISBLANK(B3), """", COUNTA($B$3:B3))" If nextRow > 3 Then Range("A3").Select Selection.AutoFill Destination:=Range("A3:A" & nextRow) Range("A3:A" & nextRow).Select End If End With End Sub Ругается на .Cells(nextRow, 3).PasteSpecial Paste:=xlPasteValues, точнее выделяет ошибкой. Буду крайне признателен за подсказку, что не так я делаю... Спасибо, с уважением!
@Polyariz8 жыл бұрын
Здравствуйте! 1) В Excel перейдите на вкладку "Формулы" -> "Диспетчер имен" -> В колонке имя выберите Вашу переменную "podraz" -> Нажмите "Изменить" -> Проверьте "Имя" и "Диапазон", возможно что-то указано не верно. 2) Попробуйте задать вручную адрес для Cells (возможно nextRow = 0): .Cells(2, 3).PasteSpecial Paste:=xlPasteValues 3) Закоментируйте 2 строки, проверьте будет ли следующая вставка работать: 'MainTable.Range("podraz").Copy '.Cells(nextRow, 3).PasteSpecial Paste:=xlPasteValues MainTable.Range("mr_nak").Copy .Cells(nextRow, 4).PasteSpecial Paste:=xlPasteValues .Cells(nextRow, 2).Value = MainTable.Range("fio").Value
@djeypaff8 жыл бұрын
Не знаю как, но кажется помог первый вариант... Еще раз спасибо! Один только вопрос: у меня также как и Вас все расположено на одном листе, если я захочу рабочие таблицы (форму ввода и словари) перенести на другой лист, чтобы на первом была только основная таблица, насколько буду серьезными изменения в коде?! Что мне надо будет поменять или добавить?! Спасибо, с уважением!
@Polyariz8 жыл бұрын
Все будет очень просто: 1) Создайте второй лист, а затем в VBA задайте название для второго листа на английском, также как Вы создали название "MainTable", для второго листа можете сделать "MainTable2". 2) Когда нужно будет записать значение в таблицу на втором листе, пишите вот так: With MainTable2 ' Значит для листа2 (MainTable2 ) MainTable.Range("podraz").Copy ' Копируем значение с таблицы на листе 1 (MainTable) 'Вставляем значения в таблицу на листе2 (MainTable2) .Cells(nextRow, 3).PasteSpecial Paste:=xlPasteValues 'Читается как: MainTable2.Cells(nextRow, 3)PasteSpecial Paste:=xlPasteValues ....... End With
@officialstart6 жыл бұрын
Как сделать так, чтобы Таблица для ввода данных находились на другом листа, но в этой же книге
@МамбетАлыбаев-э3р4 жыл бұрын
Кто нибудь может ответить на этот вопрос, я тоже не могу найти решение
@skixjee6 жыл бұрын
Добрый день, помогите дописать макрос.. Супер урок, но хотелось бы узнать, как суммировать значение каторое уже есть в таблице.Спасибо
@Polyariz6 жыл бұрын
Добрый день, MsgBox Application.Sum(Range("A1:A10"))
@1980psable5 жыл бұрын
Здравствуйте. В строке подсчета заполнения строк у меня указывается на ошибку в слове Rows. Подскажите пожалуйста в чём может быть ошибка?
@photo_graf_khv6 жыл бұрын
оставь ссылку на скачивание готового рабочего варианта, буду признателен!
@viktor85876 жыл бұрын
Возникла следующая проблема: при добавлении следующего товара, данные встают на первую строку в таблице и замещают уже введенные данные, то есть умная таблица автоматически не раздвигается, подскажите в чем может быть проблема.
@rukablaud3 жыл бұрын
Здравствуйте, а можете ответить? Я хочу сделать учёт билетов по вашему видео. Как прикрутить автоматически добавление номера билета?
@Polyariz3 жыл бұрын
Добрый день. Например так: .Cells(nextRow, 6).Value = "Билет №"&COUNTA($C$4:C4) 'Получится -> Билет №1.. , COUNTA($C$4:C4) - это номер строки. или так Range("$A$1").Value = "Билет №"&COUNTA($C$4:C4)
@rukablaud3 жыл бұрын
@@Polyariz спасибо большое, я постараюсь реализовать. Напишу)
@rukablaud3 жыл бұрын
@@Polyariz А вы не могли бы скопировать полный текст программного кода? Я боюсь сделать ошибку и пойти неправильным путем теряя время. Я был бы очень признателен.
@Polyariz3 жыл бұрын
@@rukablaud Sub AddDataToTable() Dim nextRow As Long nextRow = MyDataList.Cells(MyDataList.Rows.Count, 3).End(xlUp).Offset(1, 0).Row With MyDataList If .Range("B4").Value = "" And .Range("C4").Value = "" Then nextRow = nextRow - 1 End If MyDataList.Range("ItemName").Copy .Cells(nextRow, 3).PasteSpecial Paste:=xlPasteValues .Cells(nextRow, 4).Value = MyDataList.Range("Price").Value .Cells(nextRow, 5).Value = MyDataList.Range("Weight").Value .Cells(nextRow, 6).Value = MyDataList.Range("Price").Value * MyDataList.Range("Weight").Value .Range("B4").Formula = "=IF(ISBLANK(C4), """", COUNTA($C$4:C4))" If nextRow > 4 Then Range("B4").Select Selection.AutoFill Destination:=Range("B4:B" & nextRow) Range("B4:B" & nextRow).Select End If .Range("Entries").ClearContents End With End Sub
@rukablaud3 жыл бұрын
@@Polyariz Спасибо огромное! Пытаюсь заточить этот код под свои нужды, но в одном месте отмечает желтым. Мне неловко просить, но не могли бы Вы помочь исправить?
@ingenerkons8 жыл бұрын
Отличный урок. Спасибо. Вопрос а сложно сделать форму с вводом данных, то есть вместо таблички окошечко в виндостиле? И например можно категории разместить на другом листе? Чтобы один лист был с категориями а на другом красивая таблица с записями
@Polyariz8 жыл бұрын
Форма с вводом данных в виндостиле: kzbin.info/www/bejne/aousfqJuZ96NqNE
@ingenerkons8 жыл бұрын
Спасибо. Вечером посмотрю обязательно.
@BagemRuStudio-Trailers7 жыл бұрын
Доброго времени. Все было понятно до Бейсика. Вообще мне нужно просто такую форму создать, чтобы вводить в 3 ячейки любые цифры, а в 4 показывался результат рассчитанный по определенной формуле. Я это сделал в экзеле элементарно. Но хочется сделать некую форму с защитой ячеек. Подскажете как это сделать?
@Polyariz7 жыл бұрын
Ателье Прицепов - Studio Trailers. Посмотрите урок с Windows form для excel, от туда поймёте как это реализовать.
@АндрейИванов-ш7ф5 жыл бұрын
Добрый день! Спасибо за урок. Подскажите, как реализовать заполнение новых введенных данных всегда в первую строку таблицы со смещением уже введенных данных вниз? И соответственно нумерацию "самые первые данные внизу, самые последние вверху". Заранее спасибо
@Polyariz5 жыл бұрын
Добрый день! Вставляете новую строку, а затем данные. Код для вставки новой строки со смещением данных вниз: Rows(1).Insert shift:=xlShiftDown
@АндрейИванов-ш7ф5 жыл бұрын
@@Polyariz Спасибо! А как разместить поле для ввода на одном листе, а заполнять с автоматической нумерацией на другом?
все сделал как на видео, но есть проблема в таблицу добавляется строка, а данные вводятся ниже строки. подскажи пожалуйста в чем проблема вот блин нашел простую опечатку, и все заработало
@hopersvil34734 жыл бұрын
Добрый день,спасибо за урок, но у меня возникла ошибка с которой сам не могу справиться Shop.Range("Kind").Copy .Cells(NextRow, 2).PastSpecial Paste:=xlPasteValues вот этом ряде выбивает ошибку 438 Object doesnt support this property or method, помогите пожалуйста
@bolottorobekov91626 жыл бұрын
Здравствуйте у меня конце программме такая ощибка " object reguired" куда мне исправить
@ChannelArmenia4 жыл бұрын
.Cells(nextRow, 3).PasteSpecial Paste:=xlPasteValues Здесь выдает ошибку, можете помочь?
@Arkady_Anin6 жыл бұрын
Скажите, как сделать ввод данных (у Вас "Наименование товара") не из списка,, а вручную? Чтобы в ячейку вводились произвольные данные? С уважением, Аркадий
@Polyariz6 жыл бұрын
Посмотрите как были сделаны поля "Цена, руб" и "Вес, кг", аналогично добавьте свое поле и копируйте значение из ячейки в которое вводится значение. Например в уроке для поля "Цена, руб" - значения копируются из "I4", а для "Вес, кг" из "I5"
@shevistatistikaexcel6 жыл бұрын
прикольно! но это же VBA, а вы пишите - EXCEL... а Excel может заполнять таблицу именно таким образом (добавлением строк подряд, без пропусков)?
@mi_ha_il8 жыл бұрын
Хочу сделать своеобразный список, как у вас, с вводом. Но мне нужно кое-что изменить: 1. У вас есть автонумерация, которая начинается с последнего числа. 2. У моего списка некоторые продукты уже будут иметь свою нумерацию. 3. Мне нужно иметь возможность вводить нумерация вручную, но если такой номер уже есть, чтобы оповещало об этом. 4. А если я номер не ввожу к примеру, то тогда должно присваивать строке номер следующий за наибольшим из всего списка. 5. И как сделать отдельную кнопку "очистить", чтобы не автоматически очищало, а вручную? Можете помочь?
@Polyariz8 жыл бұрын
Здравствуйте! Здесь все просто. 1 перед записью номера в ячейку нужно проверить ячейка пустая или нет. 2 Если в ячейке есть значение, проверить равно или нет принятому из формы. 3 Если ячейка таблицы пустая и число номера формы пусто, то записать в ячейку максимальное значение. Пример: Sub AddEntries_Click() Dim tabNum, formNum As Integer tabNum = MyTableName.Range("A" & iRow).Value formNum = MyFormNum.Value If tabNum = Empty And formNum = Empty Then If tabNum = myListNum Then MsgBox "Уже существует!" Exit Sub 'Возвращаемся снова к вводу значения End If MyTableName.Range("A" & iRow).Value = 22 'Новое значение Else Max= Application.WorksheetFunction.Max (Columns("O")) MyTableName.Range("A" & iRow).Value = Max 'Максимальное значение в списке End If End Sub Примерно так.
@КириллАндреев-м3щ4 жыл бұрын
Выдало ошибку sub or function not definder функция не определена. Что это может быть.? В чем ошибка?
@Polyariz4 жыл бұрын
Программа не может найти вызываемую функцию. Проверьте правильно ли Вы написали название функции.
@КириллАндреев-м3щ4 жыл бұрын
@@Polyariz как с вами связаться.
@АнатолійШевченко-ц8э8 жыл бұрын
Переписал код наново. Теперь ошибка не вискакивает, но в таблице автоматической номерации не происходит. В первой ячейке при нажатии кнопки "Добавить" появляется формула =If(ISBLANK (C4), "", COUNTA ($C$4:C4))
@Polyariz8 жыл бұрын
Исправьте код: .Range("B4").Formula = "=IF(ISBLANK(C4), """", COUNTA($C$4:C4))" If nextRow > 4 Then Range("B4").Select Selection.AutoFill Destination:=Range("B4:B" & nextRow) Range("B4:B" & nextRow).Select End If
@x-plane11886 жыл бұрын
В 10-ом не пашет в моменте заполнение ячеек .Cells(NextRow, ...
@СанькаДа7 жыл бұрын
Добрый день! Все работает. Все хорошо. Но столкнулся с проблемой: У меня под таблицей есть данные и когда добавляется новая строка в таблице, она думает что мои данные - это данные таблицы и делает новую строку в самом низу. А можно ли сделать так, чтоб эти данные тоже смещались вниз??? И добавить в таблицу авто сумму последнего столбика???
@Polyariz7 жыл бұрын
Здравствуйте. Чтобы данные смещались вставляйте новый ряд: 'Inserting a Row at at Row 2 Range("A2").EntireRow.Insert Чтобы добавить автосумму, попробуйте сделать так: Lastrow = Range("A65536").End(xlUp).Offset(1, 0).Row Range("A" & Lastrow) = "=Sum(A1:A" & Lastrow - 1 & ")" или Range("A" & Lastrow).Formula = "=Sum(A1:A" & Lastrow - 1 & ")"
@СанькаДа7 жыл бұрын
Не получилось. Возможно я слишком криворукий:) Все равно считает его данными из таблицы и заполняет снизу
@Polyariz7 жыл бұрын
Санька Да Почитайте ниже комментарий, попробуйте использовать этот метод для подсчёта строк в таблице.
@СтаниславСтепанов-с1х7 жыл бұрын
Доброго времени суток! У меня подобная таблица, только ввод данных через диалоговое окно uform. Вопрос вот в чём, как сделать так, чтобы данные вводились только через форму, а напрямую нельзя было вводить? Подскажите пожалуйста..
Здравствуйте! Пробую повторить данный код на своем компютере. В строке If .Range("B4").Value = "" And .Range("C4").Value = "" Then выбивает ошибку runtime error 13 type mismatch В чем может быть проблема? Спасибо за ответ!
@Polyariz8 жыл бұрын
Здравствуйте! Проверьте начало кода, возможно неверно задали название для With: With MyDataList If .Range("B4").Value = "" And .Range("C4").Value = "" Then nextRow = nextRow - 1 End If ......... ......... ......... End With
@АлексейБас-с5п7 жыл бұрын
здравствуй. Нужна твоя помощь в создании таблицы. как с тобой связаться?
@ФилиппКуров8 жыл бұрын
Здравствуйте, я начинающий пользователь, попытался сделать похожую таблицу, с тем же месторасположением, но после того как выполнил ввод кода, выскакивает ошибка : "Run-time error '1004': Application-defined error" все проверил, даже названия как у вас сделал, но ни к чему это не привело, помогите разобраться
@ФилиппКуров8 жыл бұрын
Подсвечивает ту самую строку, что и у вас в примере, ошибку в написании слова я исправил Sub AddDateToTable() Dim nextRow As Long nextRow = MyDataList.Cells(MyDataList.Rows.Count, 3).End(x1Up).Offset(1, 0).Row With MyDataList If .Range("B4").Value = "" And .Range("C4").Value = "" Then nextRow = nextRow - 1 End If MyData.Range("IGI").Copy .Cells(nextRow, 3).PasteSpecial Paste:=x1PasteValues .Cells(nextRow, 4).Value = MyDataList.Range("E").Value .Cells(nextRow, 5).Value = MyDataList.Range("CC").Value .Cells(nextRow, 6).Value = MyDataList.Range("GM").Value .Cells(nextRow, 7).Value = MyDataList.Range("ep").Value .Cells(nextRow, 8).Value = MyDataList.Range("h").Value .Cells(nextRow, 9).Value = MyDataList.Range("GMS").Value .Cells(nextRow, 10).Value = MyDataList.Range("XR").Value .Cells(nextRow, 11).Value = MyDataList.Range("TIPGR").Value .Range("B4").Formula = "=IF(ISBLANK(C4), """", COUNTA($C$4:C4))" If nextRow > 4 Then Range("B4").Select Selection.AutoFill Destination:=Range("B4:B" & nextRow) Range("B4:B" & nextRow).Select End If End With End Sub )
@Polyariz8 жыл бұрын
Исправьте: .End(x1Up) на .End(xlUp)
@ФилиппКуров8 жыл бұрын
Спасибо огромное
@Movie_Rls7 жыл бұрын
можете сделать мне на подобе этого только дя подтягивания данных с другого листа например нажимаю ввод вбиваю туда например свой код 26 им мне показывает мои даные ?
@arsenmaksimov8 жыл бұрын
Добрый день! А если цена известна и хочется найти стоимость и общую стоимость всех товаров
@Polyariz8 жыл бұрын
Сделайте рядом с таблицей ячейку для суммы всех товаров. В ячейке укажите: =СУММ() и выделите всю колонку "Общая стоимость". Например:=СУММ(Таблица1[Общая стоимость, руб]) При каждом добавлении сумма будет обновляться.
@mariakuznetsova12858 жыл бұрын
Добрый день! Все сделала, как на видео, но макрос выдает ошибку "424 object required" на строке: nextRow = MyDataList.Cells(MyDataList.Rows.Count, 3).End(xlUp).Offset(1, 0).Row Что не так?
@Polyariz8 жыл бұрын
Здравствуйте! Попробуйте задать новое имя страницы, возможно где-то ошибка в названии MyDataList.
@swestthebest60718 жыл бұрын
Polyariz, помогите !!!! nextrow = qwe.Cells(qwe.Rows.Count, 2).End(x1Up).Offset(1, 0).Row на этой строке выбивает ошибку!!! что делать не могу понять что не так
@Polyariz8 жыл бұрын
Вместо End(x1Up) надо написать End(xlUp). Полная строка будет иметь вид: nextRow = MyDataList.Cells(MyDataList.Rows.Count, 3).End(xlUp).Offset(1, 0).Row
@swestthebest60718 жыл бұрын
спасибо большое
@listik13016 жыл бұрын
Спасибо огромное
@bolottorobekov91626 жыл бұрын
спасибо Вам! что конца программа у меня не работает помогите