Отличный урок! Когда знаешь , все просто получается... у меня есть таблица Заказов.... она состоит из ряда столбцов: дата, # заказа , клиент, товар, количество цена , сумма. Кроме клиент и товар (их я выбираю из выпадающего списка), все остальное приходится вставлять проходя по ряду. А если заявка содержит 10 наименований, то приходится делать на одну заявку 10 строк протягивая в низ... классно было бы использовать такую форму для ввода данных....
код работает, но как его добавить в таблицу которая Уже существует, у меня допустим код добавляет в конец существующей таблицы, со строки 2260( в последнюю строку) и если пишешь xldown то появляется ошибка в коде
Возникла следующая проблема: при добавлении следующего товара, данные встают на первую строку в таблице и замещают уже введенные данные, то есть умная таблица автоматически не раздвигается, подскажите в чем может быть проблема.
Добрый день. Например так: .Cells(nextRow, 6).Value = "Билет №"&COUNTA($C$4:C4) 'Получится -> Билет №1.. , COUNTA($C$4:C4) - это номер строки. или так Range("$A$1").Value = "Билет №"&COUNTA($C$4:C4)
@@Polyariz А вы не могли бы скопировать полный текст программного кода? Я боюсь сделать ошибку и пойти неправильным путем теряя время. Я был бы очень признателен.
@@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
@@Polyariz Спасибо огромное! Пытаюсь заточить этот код под свои нужды, но в одном месте отмечает желтым. Мне неловко просить, но не могли бы Вы помочь исправить?
Здравствуйте! Столкнулся с проблемой. Использовал вашу функцию ввода данных в таблицу ((( nextrow = Cashflow.Cells(Cashflow.Rows.Count, 4).End(xlUp).Offset(1, 0).Row )))))на многих листах через один макрос. На 4-ёх из них все вставляется идеально, а вот на одном из листов данные вставляются за таблицу, что в последствии не позволяет фильтровать данные верно пока вручную не подтянешь границы таблицы.... в чем может быть проблемы. То есть данные идут на следующую строчку но граница таблицы не подтягивается.....
Добрый день,спасибо за урок, но у меня возникла ошибка с которой сам не могу справиться Shop.Range("Kind").Copy .Cells(NextRow, 2).PastSpecial Paste:=xlPasteValues вот этом ряде выбивает ошибку 438 Object doesnt support this property or method, помогите пожалуйста
Доброго времени. Все было понятно до Бейсика. Вообще мне нужно просто такую форму создать, чтобы вводить в 3 ячейки любые цифры, а в 4 показывался результат рассчитанный по определенной формуле. Я это сделал в экзеле элементарно. Но хочется сделать некую форму с защитой ячеек. Подскажете как это сделать?
Здравствуйте! Во-первых спасибо за урок, очень полезная информация... Во-вторых, попытался переделать его под свою задачу, но столкнулся с ошибкой и не могу понять что ему не нравится... Ошибка "Метод 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, точнее выделяет ошибкой. Буду крайне признателен за подсказку, что не так я делаю... Спасибо, с уважением!
Не знаю как, но кажется помог первый вариант... Еще раз спасибо! Один только вопрос: у меня также как и Вас все расположено на одном листе, если я захочу рабочие таблицы (форму ввода и словари) перенести на другой лист, чтобы на первом была только основная таблица, насколько буду серьезными изменения в коде?! Что мне надо будет поменять или добавить?! Спасибо, с уважением!
Все будет очень просто: 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
все сделал как на видео, но есть проблема в таблицу добавляется строка, а данные вводятся ниже строки. подскажи пожалуйста в чем проблема вот блин нашел простую опечатку, и все заработало
Добрый день! Спасибо за урок. Подскажите, как реализовать заполнение новых введенных данных всегда в первую строку таблицы со смещением уже введенных данных вниз? И соответственно нумерацию "самые первые данные внизу, самые последние вверху". Заранее спасибо
Переписал код наново. Теперь ошибка не вискакивает, но в таблице автоматической номерации не происходит. В первой ячейке при нажатии кнопки "Добавить" появляется формула =If(ISBLANK (C4), "", COUNTA ($C$4:C4))
Доброго времени суток! У меня подобная таблица, только ввод данных через диалоговое окно uform. Вопрос вот в чём, как сделать так, чтобы данные вводились только через форму, а напрямую нельзя было вводить? Подскажите пожалуйста..
Скажите, как сделать ввод данных (у Вас "Наименование товара") не из списка,, а вручную? Чтобы в ячейку вводились произвольные данные? С уважением, Аркадий
Посмотрите как были сделаны поля "Цена, руб" и "Вес, кг", аналогично добавьте свое поле и копируйте значение из ячейки в которое вводится значение. Например в уроке для поля "Цена, руб" - значения копируются из "I4", а для "Вес, кг" из "I5"
Polyariz, помогите !!!! nextrow = qwe.Cells(qwe.Rows.Count, 2).End(x1Up).Offset(1, 0).Row на этой строке выбивает ошибку!!! что делать не могу понять что не так
Вместо End(x1Up) надо написать End(xlUp). Полная строка будет иметь вид: nextRow = MyDataList.Cells(MyDataList.Rows.Count, 3).End(xlUp).Offset(1, 0).Row
Здравствуйте! Пробую повторить данный код на своем компютере. В строке If .Range("B4").Value = "" And .Range("C4").Value = "" Then выбивает ошибку runtime error 13 type mismatch В чем может быть проблема? Спасибо за ответ!
Здравствуйте! Проверьте начало кода, возможно неверно задали название для With: With MyDataList If .Range("B4").Value = "" And .Range("C4").Value = "" Then nextRow = nextRow - 1 End If ......... ......... ......... End With
Добрый день! Все сделала, как на видео, но макрос выдает ошибку "424 object required" на строке: nextRow = MyDataList.Cells(MyDataList.Rows.Count, 3).End(xlUp).Offset(1, 0).Row Что не так?
Здравствуйте, я начинающий пользователь, попытался сделать похожую таблицу, с тем же месторасположением, но после того как выполнил ввод кода, выскакивает ошибка : "Run-time error '1004': Application-defined error" все проверил, даже названия как у вас сделал, но ни к чему это не привело, помогите разобраться
Подсвечивает ту самую строку, что и у вас в примере, ошибку в написании слова я исправил 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 )
можете сделать мне на подобе этого только дя подтягивания данных с другого листа например нажимаю ввод вбиваю туда например свой код 26 им мне показывает мои даные ?
Отличный урок. Спасибо. Вопрос а сложно сделать форму с вводом данных, то есть вместо таблички окошечко в виндостиле? И например можно категории разместить на другом листе? Чтобы один лист был с категориями а на другом красивая таблица с записями
Хочу сделать своеобразный список, как у вас, с вводом. Но мне нужно кое-что изменить: 1. У вас есть автонумерация, которая начинается с последнего числа. 2. У моего списка некоторые продукты уже будут иметь свою нумерацию. 3. Мне нужно иметь возможность вводить нумерация вручную, но если такой номер уже есть, чтобы оповещало об этом. 4. А если я номер не ввожу к примеру, то тогда должно присваивать строке номер следующий за наибольшим из всего списка. 5. И как сделать отдельную кнопку "очистить", чтобы не автоматически очищало, а вручную? Можете помочь?
Здравствуйте! Здесь все просто. 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 Примерно так.
Добрый день! Все работает. Все хорошо. Но столкнулся с проблемой: У меня под таблицей есть данные и когда добавляется новая строка в таблице, она думает что мои данные - это данные таблицы и делает новую строку в самом низу. А можно ли сделать так, чтоб эти данные тоже смещались вниз??? И добавить в таблицу авто сумму последнего столбика???
Сделайте рядом с таблицей ячейку для суммы всех товаров. В ячейке укажите: =СУММ() и выделите всю колонку "Общая стоимость". Например:=СУММ(Таблица1[Общая стоимость, руб]) При каждом добавлении сумма будет обновляться.
Отличный урок, смотрится и воспринимается в полном объёме. Ничего лишнего всё по теме, спасибо!
Огонь! Не знал, что в excel можно на Basic команды писать. Пойду теперь изучать Basic! 😂 Автор красавчик! Спасибо!
Отличный урок! Когда знаешь , все просто получается... у меня есть таблица Заказов.... она состоит из ряда столбцов: дата, # заказа , клиент, товар, количество цена , сумма. Кроме клиент и товар (их я выбираю из выпадающего списка), все остальное приходится вставлять проходя по ряду. А если заявка содержит 10 наименований, то приходится делать на одну заявку 10 строк протягивая в низ... классно было бы использовать такую форму для ввода данных....
Ваще супер! Объясняешь лучше любого препода! Тока с BASIC можно было бы и поподробней. А так все супер!
Спасибо за видео! Очень помогло!
Спасибо!!! очень полезно и понятно, пару косяков в Basic было) но это моя невнимательность при списывании!!
Шикарно
А как сделать чтобы в конце автоматически добавлялась строка с итоговой суммой по сумме и по весу?
код работает, но как его добавить в таблицу которая Уже существует, у меня допустим код добавляет в конец существующей таблицы, со строки 2260( в последнюю строку) и если пишешь xldown то появляется ошибка в коде
Здравствуйте подскажите
nextRow = MyData.Cells(MyData.Rows.Count, 3).End(x1Up).Offset(1, 0).Row
выдает ошибку 1004
а как сделать так, что бы он сразу добавлял несколько строк, например то количество, которое указанное в таблице данных?
Здравствуйте. Большое спасибо за урок. Можно ли в конце таблицы добавить строку «итого»?
Как сделать так чтобы форма заполнения была на одном листе, а Таблицу она заполняла на другом листе ?
Решили этот вопрос?
@@edemenverov3208 Нет, помогите решить
@@МамбетАлыбаев-э3р Мне тоже сейчас надо это сделать. У вас появилось решение?
Как сделать так, чтобы Таблица для ввода данных находились на другом листа, но в этой же книге
Кто нибудь может ответить на этот вопрос, я тоже не могу найти решение
Здравствуйте.
В строке подсчета заполнения строк у меня указывается на ошибку в слове Rows. Подскажите пожалуйста в чём может быть ошибка?
Здравствуйте у меня конце программме такая ощибка " object reguired" куда мне исправить
Как с Вами связаться для сотрудничества?
Возникла следующая проблема: при добавлении следующего товара, данные встают на первую строку в таблице и замещают уже введенные данные, то есть умная таблица автоматически не раздвигается, подскажите в чем может быть проблема.
Здравствуйте, а можете ответить? Я хочу сделать учёт билетов по вашему видео. Как прикрутить автоматически добавление номера билета?
Добрый день. Например так:
.Cells(nextRow, 6).Value = "Билет №"&COUNTA($C$4:C4) 'Получится -> Билет №1.. , COUNTA($C$4:C4) - это номер строки.
или так
Range("$A$1").Value = "Билет №"&COUNTA($C$4:C4)
@@Polyariz спасибо большое, я постараюсь реализовать. Напишу)
@@Polyariz А вы не могли бы скопировать полный текст программного кода? Я боюсь сделать ошибку и пойти неправильным путем теряя время. Я был бы очень признателен.
@@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
@@Polyariz Спасибо огромное! Пытаюсь заточить этот код под свои нужды, но в одном месте отмечает желтым. Мне неловко просить, но не могли бы Вы помочь исправить?
Здравствуйте! Столкнулся с проблемой.
Использовал вашу функцию ввода данных в таблицу ((( nextrow = Cashflow.Cells(Cashflow.Rows.Count, 4).End(xlUp).Offset(1, 0).Row )))))на многих листах через один макрос. На 4-ёх из них все вставляется идеально, а вот на одном из листов данные вставляются за таблицу, что в последствии не позволяет фильтровать данные верно пока вручную не подтянешь границы таблицы.... в чем может быть проблемы. То есть данные идут на следующую строчку но граница таблицы не подтягивается.....
.Cells(nextRow, 3).PasteSpecial Paste:=xlPasteValues Здесь выдает ошибку, можете помочь?
оставь ссылку на скачивание готового рабочего варианта, буду признателен!
Выдало ошибку sub or function not definder функция не определена. Что это может быть.? В чем ошибка?
Программа не может найти вызываемую функцию. Проверьте правильно ли Вы написали название функции.
@@Polyariz как с вами связаться.
Добрый день,спасибо за урок, но у меня возникла ошибка с которой сам не могу справиться Shop.Range("Kind").Copy
.Cells(NextRow, 2).PastSpecial Paste:=xlPasteValues вот этом ряде выбивает ошибку 438 Object doesnt support this property or method, помогите пожалуйста
Доброго времени. Все было понятно до Бейсика. Вообще мне нужно просто такую форму создать, чтобы вводить в 3 ячейки любые цифры, а в 4 показывался результат рассчитанный по определенной формуле. Я это сделал в экзеле элементарно. Но хочется сделать некую форму с защитой ячеек. Подскажете как это сделать?
Ателье Прицепов - Studio Trailers. Посмотрите урок с Windows form для excel, от туда поймёте как это реализовать.
Добрый день, помогите дописать макрос.. Супер урок, но хотелось бы узнать, как суммировать значение каторое уже есть в таблице.Спасибо
Добрый день,
MsgBox Application.Sum(Range("A1:A10"))
В 10-ом не пашет в моменте заполнение ячеек .Cells(NextRow, ...
Здравствуйте! Во-первых спасибо за урок, очень полезная информация... Во-вторых, попытался переделать его под свою задачу, но столкнулся с ошибкой и не могу понять что ему не нравится... Ошибка "Метод 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, точнее выделяет ошибкой. Буду крайне признателен за подсказку, что не так я делаю...
Спасибо, с уважением!
Здравствуйте!
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
Не знаю как, но кажется помог первый вариант... Еще раз спасибо!
Один только вопрос: у меня также как и Вас все расположено на одном листе, если я захочу рабочие таблицы (форму ввода и словари) перенести на другой лист, чтобы на первом была только основная таблица, насколько буду серьезными изменения в коде?! Что мне надо будет поменять или добавить?!
Спасибо, с уважением!
Все будет очень просто:
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
все сделал как на видео, но есть проблема в таблицу добавляется строка, а данные вводятся ниже строки. подскажи пожалуйста в чем проблема
вот блин нашел простую опечатку, и все заработало
Добрый день! Спасибо за урок. Подскажите, как реализовать заполнение новых введенных данных всегда в первую строку таблицы со смещением уже введенных данных вниз? И соответственно нумерацию "самые первые данные внизу, самые последние вверху". Заранее спасибо
Добрый день! Вставляете новую строку, а затем данные. Код для вставки новой строки со смещением данных вниз: Rows(1).Insert shift:=xlShiftDown
@@Polyariz Спасибо! А как разместить поле для ввода на одном листе, а заполнять с автоматической нумерацией на другом?
@@АндрейИванов-ш7фНапример скопировать:
Worksheets("List1").Range("A1").Value = 3.14159
Вставить: Worksheets("List2").Range("A1")
@@Polyariz Спасибо!!!
Переписал код наново. Теперь ошибка не вискакивает, но в таблице автоматической номерации не происходит. В первой ячейке при нажатии кнопки "Добавить" появляется формула =If(ISBLANK (C4), "", COUNTA ($C$4:C4))
Исправьте код:
.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
Доброго времени суток! У меня подобная таблица, только ввод данных через диалоговое окно uform. Вопрос вот в чём, как сделать так, чтобы данные вводились только через форму, а напрямую нельзя было вводить? Подскажите пожалуйста..
www.extendoffice.com/documents/excel/4350-excel-prevent-data-entry-into-cell.html
Polyariz спасибо большое!
Скажите, как сделать ввод данных (у Вас "Наименование товара") не из списка,, а вручную? Чтобы в ячейку вводились произвольные данные?
С уважением, Аркадий
Посмотрите как были сделаны поля "Цена, руб" и "Вес, кг", аналогично добавьте свое поле и копируйте значение из ячейки в которое вводится значение.
Например в уроке для поля "Цена, руб" - значения копируются из "I4", а для "Вес, кг" из "I5"
Polyariz, помогите !!!!
nextrow = qwe.Cells(qwe.Rows.Count, 2).End(x1Up).Offset(1, 0).Row
на этой строке выбивает ошибку!!! что делать не могу понять что не так
Вместо End(x1Up) надо написать End(xlUp).
Полная строка будет иметь вид:
nextRow = MyDataList.Cells(MyDataList.Rows.Count, 3).End(xlUp).Offset(1, 0).Row
спасибо большое
Спасибо огромное
Здравствуйте! Пробую повторить данный код на своем компютере.
В строке
If .Range("B4").Value = "" And .Range("C4").Value = "" Then
выбивает ошибку runtime error 13 type mismatch
В чем может быть проблема? Спасибо за ответ!
Здравствуйте!
Проверьте начало кода, возможно неверно задали название для With:
With MyDataList
If .Range("B4").Value = "" And .Range("C4").Value = "" Then
nextRow = nextRow - 1
End If
.........
.........
.........
End With
Добрый день!
Все сделала, как на видео, но макрос выдает ошибку "424 object required" на строке:
nextRow = MyDataList.Cells(MyDataList.Rows.Count, 3).End(xlUp).Offset(1, 0).Row
Что не так?
Здравствуйте! Попробуйте задать новое имя страницы, возможно где-то ошибка в названии MyDataList.
Здравствуйте, я начинающий пользователь, попытался сделать похожую таблицу, с тем же месторасположением, но после того как выполнил ввод кода, выскакивает ошибка : "Run-time error '1004': Application-defined error" все проверил, даже названия как у вас сделал, но ни к чему это не привело, помогите разобраться
Подсвечивает ту самую строку, что и у вас в примере, ошибку в написании слова я исправил
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
)
Исправьте: .End(x1Up) на .End(xlUp)
Спасибо огромное
можете сделать мне на подобе этого только дя подтягивания данных с другого листа
например нажимаю ввод вбиваю туда например свой код 26 им мне показывает мои даные ?
Отличный урок. Спасибо.
Вопрос а сложно сделать форму с вводом данных, то есть вместо таблички окошечко в виндостиле?
И например можно категории разместить на другом листе? Чтобы один лист был с категориями а на другом красивая таблица с записями
Форма с вводом данных в виндостиле: ruclips.net/video/4ZIMo82yZro/видео.html
Спасибо. Вечером посмотрю обязательно.
Хочу сделать своеобразный список, как у вас, с вводом. Но мне нужно кое-что изменить:
1. У вас есть автонумерация, которая начинается с последнего числа.
2. У моего списка некоторые продукты уже будут иметь свою нумерацию.
3. Мне нужно иметь возможность вводить нумерация вручную, но если такой номер уже есть, чтобы оповещало об этом.
4. А если я номер не ввожу к примеру, то тогда должно присваивать строке номер следующий за наибольшим из всего списка.
5. И как сделать отдельную кнопку "очистить", чтобы не автоматически очищало, а вручную?
Можете помочь?
Здравствуйте! Здесь все просто.
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
Примерно так.
Добрый день! Все работает. Все хорошо. Но столкнулся с проблемой: У меня под таблицей есть данные и когда добавляется новая строка в таблице, она думает что мои данные - это данные таблицы и делает новую строку в самом низу. А можно ли сделать так, чтоб эти данные тоже смещались вниз??? И добавить в таблицу авто сумму последнего столбика???
Здравствуйте.
Чтобы данные смещались вставляйте новый ряд:
'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 & ")"
Не получилось. Возможно я слишком криворукий:) Все равно считает его данными из таблицы и заполняет снизу
Санька Да Почитайте ниже комментарий, попробуйте использовать этот метод для подсчёта строк в таблице.
спасибо Вам! что конца программа у меня не работает помогите
Добрый день! А если цена известна и хочется найти стоимость и общую стоимость всех товаров
Сделайте рядом с таблицей ячейку для суммы всех товаров.
В ячейке укажите: =СУММ() и выделите всю колонку "Общая стоимость".
Например:=СУММ(Таблица1[Общая стоимость, руб])
При каждом добавлении сумма будет обновляться.
здравствуй. Нужна твоя помощь в создании таблицы. как с тобой связаться?
прикольно! но это же VBA, а вы пишите - EXCEL...
а Excel может заполнять таблицу именно таким образом (добавлением строк подряд, без пропусков)?
на языке Бейсике можно отправте спасибо1
код дай
Бэйсик мой родной язык но я его забыл)
Могеш как профи но объясняешь хреново