Страницы: 1
RSS
Формирование заказа из прайс-листа из товаров с указанным количеством
 
Всем привет.
Подскажите, пожалуйста, есть ли на форуме аналоги/примеры похожего макроса, который изложен ниже

Есть файл для клиентов, ассортимент находится в листе "Ассортимент"
Файл может состоять из 100 или 500 строк, а может и больше 1000. Это продуктовый прайс лист для оптовых клиентов.
В листе ассортимент оптовик вносит кол-ва товаров, которые он хочет заказать, вверху считается суммы.

Нужен макрос для формирования списка заказа из основного листа Ассортимента.
Т.е
Оптовик навыбирал множество товаров в листе "Ассортимент", указал кол-во, а после нажимает на кнопку "Сформировать" (в кнопку будет закреплен макрос) и в лист "Заказ" будет переноситься только те товары, у которых оптовик указал кол-во.

Есть ли на форуме аналоги таких тем или сможете помочь, пожалуйста, создать такой макрос ?  :(  :cry:  
Он вроде кажется не сложным на первый взгляд, только для меня "чайника", не понимая в макросах, кажется из другой вселенной)
 
, я бы начал с простого, поиск количества товара не равное 0 и перенос записи в заказ. далее видно будет.
Инженер не тот, кто все знает, а тот кто знает где найти ответ.
 
Wine Wine, вариант в pq (очень простой):
Код
let
  src = Excel.CurrentWorkbook(){[ Name = "price" ]}[Content],
  filter = Table.SelectRows ( src, each ( [#"Кол-во, бут."] > 0 ) ),
  needClmns = Table.SelectColumns (
    filter,
    { "Код", "Наименование", "Объем, л.", "Базовая стоимость, руб.", "Скидка, %", "Цена со скидкой, руб.", "Кол-во, бут.", "ИТОГО" }
  ),
  typed = Table.TransformColumnTypes (
    needClmns,
    {
      { "Базовая стоимость, руб.", type number },
      { "Скидка, %", Percentage.Type },
      { "Цена со скидкой, руб.", type number },
      { "Кол-во, бут.", type number },
      { "ИТОГО", type number }
    }
  )
in
  typed
 
surkenny, спасибо за предложенный вариант. Но для меня pq это еще больше темный лес, тк никогда не работала с этим и сейчас впервые вижу  :D . Попытаюсь разобраться как с этим работать на будущее, но вариант с vba мне ближе хотя бы в понимании вставки/редактирования и создания своего по аналогии.  
 
У Вас гранаты кнопка не той системы. См. вариант.
 
Юрий М , спасибо большое. То, что нужно! Огромное спасибо!  8)  
Изменено: Wine Wine - 12.12.2021 19:17:33
 
Wine Wine, весь код из моего сообщения можно сгенерировать кнопками. Самому писать ничего не нужно:)
Загружаем таблицу, фильтруем по столбцу количество > 0, оставляем только нужные столбцы, задаём формат для столбцов.
 
Юрий М , подскажите, пожалуйста, как подсчитать аналогичное значение в поле "Скидка"?  Я еще добавила столбец для расчета суммы заказа без скидки.
Попробовала сама записать расчет, но что-то фигня получилась...  :sceptic:

Код
        .Cells(FreeRow + 1, 7) = "Итого:"
        .Cells(FreeRow + 1, 8) = Application.WorksheetFunction.Sum(Range(.Cells(2, 8), .Cells(FreeRow, 8)))
        .Cells(FreeRow + 1, 9) = Application.WorksheetFunction.Sum(Range(.Cells(2, 9), .Cells(FreeRow, 9)))
        .Cells(FreeRow + 2, 7) = "Скидка:"
        .Cells(FreeRow + 2, 7) =
Изменено: Wine Wine - 12.12.2021 21:17:44
 
surkenny , спасибо. Попробую :)  
Изменено: Wine Wine - 12.12.2021 21:08:46
 
Цитата
Wine Wine написал:
как подсчитать аналогичное значение в поле "Скидка"?
Так у Вас сумма скидки считается. Что не так?
 
Юрий М, все верно, да. Сумма считается из столбца "цена со скидкой". Я хотела отобразить разницу между http://prntscr.com/22rqqo3  
 
Код
     .Cells(FreeRow + 1, 9) = Application.WorksheetFunction.Sum(Range(.Cells(2, 9), .Cells(FreeRow, 9)))
        .Cells(FreeRow + 2, 7) = "Скидка:"
        .Cells(FreeRow + 2, 8) = .Cells(FreeRow + 1, 8) - .Cells(FreeRow + 1, 9)
    End With
ицу LastRow  в  в строке предварительной очистки заказа.
Изменено: Юрий М - 12.12.2021 21:55:16
 
Исправил своё сообщение - перепутал столбцы.
 
Цитата
Юрий М написал:
Исправил своё сообщение - перепутал столбцы.
Да, спасибо, получилось все!  :) Тоже сначала не поняла, откуда взялось + 1, 10
 
Виновные наказаны.
Страницы: 1
Наверх