Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Автоматизация перемещения единицы товара на магазины с нулевым остатком и продажами более нуля
 
Цитата
JayBhagavan написал:
DrDreik А , см. файл.
Все проверил, все отлично работает!  В процессе проверки появилась идея использовать верхнюю самую первую строку, для возможности переброски по рейтингу магазина.
Если в первой строке все единицы, переброска идёт слева на право, как это сейчас.
Если в первой строке проставлен рейтинг магазинов переброска идёт в порядке рейтинга от наименьшего к большему
Если в первой строке во всех колонках стоит R, переброска идёт не слева направо, а случайным образом Random
Я так думаю что, для этого необходимо в самом начале перемешать магазины согласно условию которое стоит в первой строке. А дальше уже макрос работает как и уже есть. Если есть возможность добавьте пожалуйста эту функцию. Тут сложность в том, что столбец магазина содержит объединённые и не сортируется обычной сортировкой.
Автоматизация перемещения единицы товара на магазины с нулевым остатком и продажами более нуля
 
Цитата
МатросНаЗебре написал:
Option Explicit'v6Sub
Все работает отлично, нужна небольшая доработка, к сожалению был неправ, говоря, что надо оперировать со свободным остатком (остаток минус продажа)
Если на магазине продажи 5 и остаток 5 то с этого магазина товар не забирается хотя можно забрать 4 штуки оставив одну. т. остаток одной штуке на магазине с продажами вполне достаточно. Этот момент поддаётся исправлению? Чтобы если есть потребность для перемещения товар забирался до остатка 1 шт.
в прикреплённом файле отразил.

Тк же свободный остаток плохо когда на магазине остаток-2, а продажи-1, получается неперемещаемый остаток в магазина 2. При этом есть магазины с продажами вообще без остатка.  
Изменено: DrDreik А - 12.10.2021 04:03:40
Автоматизация перемещения единицы товара на магазины с нулевым остатком и продажами более нуля
 
Пока вроде все верно, завтра с утра ещё внимательно протестирую, по результату отпишу.
Модераторы, извините за кривое название темы.
Предлагаю следующее название: "Макрос для переноса данных по по строке. С выгрузкой отчёта."
Автоматизация перемещения единицы товара на магазины с нулевым остатком и продажами более нуля
 
Правильно я думаю макрос выбирает максимальную ячейку только один раз, и потом расходует её пока не обнулит. Получается для случая в приложении (последняя строка) товар7 забирается только из магазина4 пока в итоге там не будет 0. А магазин5 остаётся не расходованным.
Хотя когда мы забрали из магазина4 одну единицу, он уже не стал магазином с наибольшим остатком. Есть возможность совершенствовать? Таким образом, чтобы каждый раз товар забирался из магазина с наибольшим свободным остатком (остаток минус продажа).
Изменено: vikttur - 11.10.2021 15:45:58
Автоматизация перемещения единицы товара на магазины с нулевым остатком и продажами более нуля
 
Прикрепил файл с результатом. Забирается верно, но результат дублируется.  
Автоматизация перемещения единицы товара на магазины с нулевым остатком и продажами более нуля
 
Да, верно так лучше. Спасибо!
Сделайте пожалуйста, чтобы товар забирался с магазина с наибольшим свободным остатком (остаток минус продажа)
Автоматизация перемещения единицы товара на магазины с нулевым остатком и продажами более нуля
 
Огромное спасибо! Очень круто! Можно только небольшие поправки
1. Чтобы товар забирался с магазина  с наибольшим свободным остатком
2. И если на остатках изначально есть товар туда ничего не перемещалось

В прикреплённом файле, на втором листе я скопировал результат и добавил комментарии.
Изменено: vikttur - 11.10.2021 12:36:33
Автоматизация перемещения единицы товара на магазины с нулевым остатком и продажами более нуля
 
Цитата
и перемещаем одну единицу товара на остаток магазина, где остаток меньше продаж.
Если мы берём такую формулировку, то сравнивается остаток и продажа. И появляется потребность в перемещении если остаток не ноль, а продажи больше остатка.
Например: Пусть Остаток 2 продажа 5. По такой логике уже уже необходимо перемещение.
Цитата
DrDreik А написал: если остаток товара в магазине, где есть продажа, равен нулю, то ищем магазин.....
Нам же необходимо взять магазин в котором неважно сколько было бы продаж, главное чтобы они были. А остаток при этом именно ноль. И сделать остаток 1 шт.

Получается так:
в таблице (Лист1, строка = товар, столбцы = остатки и продажи по магазинам) если остаток товара в магазине равен нулю и при этом в нем была продажа (продажа больше 0), то ищем магазин (с лева на право) с наибольшим свободным остатком (остаток минус продажа) и перемещаем одну единицу товара на остаток магазина, где была продажа а остаток при этом 0. Каждое перемещение фиксируем в отдельной таблице (Лист2) со следующими полями: код товара, название, откуда, куда, сколько (ВСЕГДА ОДНА ШТУКА). Таблица дополняется сверху вниз.
Автоматизация перемещения единицы товара на магазины с нулевым остатком и продажами более нуля
 
Цитата
JayBhagavan написал:
Расшифруйте новую вводную. На примере желательно.
Это не новая вводная это стрелками показано, там где было использование там остаток одна штука.
Цитата
JayBhagavan написал:
Как я понял, кому не хватало дали по единичке
вот именно это. Спасибо.
Автоматизация перемещения единицы товара на магазины с нулевым остатком и продажами более нуля
 
Цитата
JayBhagavan написал:
1) Для написания программы - принципиально. Допустим, пользователь нажал кнопку, макрос выполнился, заполнил таблицу на листе 2 (пока не забыл, эту таблицу дополнять новыми записями или перезаписывать её каждый раз?). Потом нажал ещё раз кнопку, а исходная таблица та же и что должно произойти?
Очень интересное замечание, тогда получается нужно менять исходную таблицу, а список дополнять. Чтобы исключить человеческий фактор.
Цитата
JayBhagavan написал:
2) В общем берём за данность, что при неудовлетворённой потребности по тесту/товару всегда дополняем остаток на единицу, если имеются свободные остатки в других ячейках/магазинах.
Да, все верно там где есть продажа/использование остаток в итоге должен быть 1
Автоматизация перемещения единицы товара на магазины с нулевым остатком и продажами более нуля
 
Нет, вы знаете, это не так. Для меня действительно важно решить эту задачу, т.к. я большой противник ручного труда там, где есть возможность использовать алгоритм. Ексель с этой точки зрения очень классный инструмент, но моих знаний отнюдь недостаточно для решения этой конкретной задачи, а бюджет на программиста к сожалению мне никто не подпишет. Там где я могу справиться я делаю это самостоятельно. Да и работа моя далека от программирования, если вот так честно. Я считаю, что если есть пробел или недопонимание всегда можно задать вопрос как это сделал уважаемый JayBhagavan, на все вопросы я готов ответить. Я еще раз прошу прощения если чем-то вас задел или обидел, я не ставил это своей целью.
Автоматизация перемещения единицы товара на магазины с нулевым остатком и продажами более нуля
 
Добрый день.
Цитата
JayBhagavan написал:
Ваше объяснение порождает вопросы, а не проливает свет истины:
Прошу извинить за косноязычность.
Цитата
JayBhagavan написал:
1) на 1м листе верхнюю таблицу макрос меняет?
Не принципиально, главное чтобы сформировал список на втором листе что куда переместить
Цитата
JayBhagavan написал:
2) Почему по одной штуке, например, если на остатке 1 а продано 10, то надо переместить 9?
Тут имеем дело с тест системами и достаточно 1 единицы чтобы закрыть потребность ячейки(магазина)
Цитата
JayBhagavan написал:
3) Макрос делает один проход по товару/тесту или пока по единичке все неудовлетворённые потребности в магазинах/ячейках не закроет?
пока не наведет порядок по строке. т.е все где были продажи(использованы) не пополнятся
Цитата
JayBhagavan написал:
Так, наблюдение. На первом листе у Вас тесты и ячейки, а на втором товар и магазины...
Спасибо за внимательность. просто думал это представить как продажи товара чтобы было проще. прикрепил исправленный файл. Можно считать, что это товар и магазины с продажами остатками, только их 40 и товар перемещается по одному.    
Автоматизация перемещения единицы товара на магазины с нулевым остатком и продажами более нуля
 
JayBhagavan, )))
постараюсь перевести я на более простой язык. Например что красные столбцы это остатки скажем на магазине, а синие это продажи. Нужен такой макрос который смотрит по строке. И из магазинов где товара на остатках больше чем продается перебрасывает товар туда где он продался и на остатках 0.   При этом перебрасывается только одна  штука. Только магазинов при этом ну скажем 40. В файле я стрелками логику вроде попытался объяснить. Но что то пошло не так.
Автоматизация перемещения единицы товара на магазины с нулевым остатком и продажами более нуля
 
Необходимо сделать переброску тест систем из ячеек где есть свободные туда где их не хватает.
в приложенном файле все отобразил. Пытался написать с помощью Если, но тут определено нужен макрос.

Тест забирается из ячейки хранения где есть остаток, но нет Исползованных или Остаток больше чем Использованных, в ближайшую ячейку где были использованные, но нет остатка
Изменено: vikttur - 11.10.2021 22:37:26
Собрать данные из разных столбцов в один, Макрос.
 
Ващее крутяк - все отлично работает только когда копируешь код в среду VBA русские буквы меняются на знак "???" но это поправимо. Спасибо!
Собрать данные из разных столбцов в один, Макрос.
 
Добрый день. Необходимо собрать данные из нескольких столбцов в один как в приложенном файле.
для подобных задач использовался макрос
Код
Sub test()
    rto = 1
    For rfrom = 2 To Cells(Rows.Count, 1).End(xlUp).Row
        For c = 1 To 5
            If c = 1 Then
                Cells(rto, 10) = Cells(rfrom, c)
                Cells(rto, 10).Font.Bold = True
            Else
                Cells(rto, 10) = Cells(1, c) & " на " & Cells(rfrom, c) & " стр."
            End If
            rto = rto + 1
        Next c
    Next rfrom
End Sub

но никак не могу его сюда приспособить. Чтобы таблица формировалась на отдельном листе и в том виде к котором нужно.  
Страницы: 1
Наверх