|
68 Кб. |
|
| Ребята, кто шарит помогите, хотя вопрос возможно не в том форуме.
Если менять кол-во выпускаемых аппаратов (самая большая цифра вверху) то меняются количества ОСТАТКОВ ДЕТАЛЕЙ и соответственно рассчитывается ТРУДОЕМКОСТЬ ОСТАТКОВ этих остаточных деталей. Фишка в том, что мне нужно, меняя кол-во аппаратов (ну скажем от 10 до 200) увидеть самый лучший вариант работы, т.е. чтобы остатков деталей было как можно меньше, и следовательно сумма трудоемкостей остатков была минимальная. В данной таблице я подсчитал (РУЧНЫМ СПОСОБОМ перебирая от 1 до 120 там под таблицей символическая табличка) самое оптимальное значение 99. Но есть два момента:
1)что если любую программу надумают не делать? тогда результат опять меняется!
2)и как это всё автоматизировать? чтобы не искать в ручную? чтобы программа сама перебирала кол-во аппаратов и просчитав все варианты нашла правильное решение(т.е. минимальное значение остатков трудоемкости)? | |
|
| |
|
|
|
| всё пытаюсь применить тут функцию Екселя "Поиск решений" но не выходит пока что... | |
|
| |
|
|
|
| мало че понял - но если ввести 100 - то значение будет 71, меньше чем при 99.
нужно заложить этот расчет в программу и программой перебирая в цикле от 1 до 200 (хоть до миллиона) найти минимальное значение.
можно сделать извращенный цикл - который просто вписывает значение в клеточку (там где 99), немного задерживаатеся и считывает значение из другой клеточки - там где резальтат, - сравниваем с предыдущим и находим наименьшее и так нужное кол-во раз | |
|
| |
|
|
|
| А))) ну я там может где чего удалил из файла который на сайт выложил) тут да при 100 меньше получается.
ну в принципе да, всё что ты написал, звучит так как надо и как мне надо! да вот только я не умею писать такие проги. А что в экселе тоже проги пишутся?) даже не знал если честно. | |
|
| |
|
|
|
| Alt + F11 - вот тебе и проги пиши не хочу
Силыч прав - сделай таблу на соседнем листе загони туда все твои расчеты и строчки для кол-во аппаратов от 1 до 200 в последнем столбце получишь свои значения, в конце столбца найми Минимум для него, и это будет тебе проверка для функции ВПР и значение функции ВПР уже заносим на наш лист с расчетами | |
|
| |
|
|
|
| не очень понял затею о том что надо создать на соседнем листе? как это должно выглядеть? может схематично в пэйнте покажешь таблу которую ты имеешь ввиду? | |
|
| |
|
|
|
|
| Прочитал про ВПР, спасибо за отклик! но... кажись немного не то что нужно. Мне не минимальное значение из данных значений нужно, а именно меньший результат из n-ого количества автоматов. Вот Кот_к_к уловил именно то что мне нужно! | |
|
| |
|
|
|
|
Sub Fill()
Dim i As Integer
With Workbooks.Add.Sheets(1) '.Add
.Cells(1, 1) = "Кол-во в партии"
.Cells(1, 2) = "Суммарная трудоемкость остатков"
For i = 2 To 200
.Cells(i, 1) = i
ThisWorkbook.Sheets("Раскрой").Cells(2, 4) = i
.Cells(i, 2) = ThisWorkbook.Sheets("Раскрой").Cells(23, 31)
Next i
.Range("A1:B200").Sort Key1:=Range("B2"), Order1:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
.Select
End With
End Sub
|
Эта процедура (добавить в модуль этой книги)
добавит новую книгу, где на первом листе покажет результаты расчета суммарной трудоемкости
для кол-во в партии от 2 до 200, в отсортированном по возрастанию виде. | |
|
| |
|
|
|
| от это круто))) правда теперь надо понять как это работает. Правой кнопкой на активном листе, и "исходный текст" и дальше вставить туда прогу и сохранить? Всё так? или что-то ещё надо сделать? | |
|
| |
|
27 Кб. |
|
| => | |
|
| |
|
|
|
|
| Lukas спасибище огромное! то что нужно!!!!!!! а я ведь могу там расширить диапазон больше 200 да?
постараюсь разобраться как ты это сделал! ЭТО ТО ЧТО НУЖНО БЫЛО ВРОДЕ))))СПС | |
|
| |
|
|
|
|
| В смысле эх эх эх?)))
Ну простите за нубизм, но не умею я такое делать... | |
|
| |
|
|
|
|
я так думаю что эх-эх-эх переводиться как "мне бы ваши проблемы" или "о сколько нам открытий чудных, готовит просвещенья дух...." | |
|
| |
|
|
|
| ))) да скорее всего "мне бы ваши проблеммы))))" | |
|
| |
|
|
|
| здарова Никалаичь! Каг дела? | |
|
| |
|
|
|
| Next i
.Range("A1:B200").Sort Key1:=Range("B2"), Order1:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Блин... не могу разобраться... Подскажи пожалуйста что это означает? мне просто надо это применить к рабочим файлам(там немного другие данные и сторочки). И кнопочка такая удобная))) как это сделать... Может в кратце у тебя найдётся минутка? | |
|
| |
|
|
|
| значит это - диапазон а1:в200 сортировать по возрастанию в столбце в2
про кнопочку проще показать
быстрее поймете
сложного ни чего нет | |
|
| |
|
|
|
| спс! в всём остальном почти разобрался, классно он сделал) а вот тут застрял малёк. пытаюсь разобраться с кнопочкой... удобно с ней, не надо в модуль постоянно лезть и включать его. | |
|
| |
|
|
|
| сначала пишете макрос
потом ставите кнопочку и вам предлагается выбрать макрос который будет запускаться по нажатию кнопочки
все | |
|
| |
|
62 Кб. |
|
| сделал как вы и сказали. Заработало, но медленно почему-то) ошибку подправил.
Спасибо за совет! Кнопка работает) | |
|
| |
|
|
|
| вот у Lukas при нажатии на кнопку моментально подсчитывает, а когда я нажимаю, он думает секунд 8. Интересно от чего это зависит? Цифры одни и те же, и сделал всё так же как у него.... | |
|
| |
|
|
|
| Усё научился делать на своих нескольких приложениях!!! ОГРОМНОЕ СПАСИБО Lukas, Kot_k_k, Snipe!!!!!
Выручили очень здорово! | |
|
| |
|
22 Кб. |
|
| я тоже сделал...
но у лукаса быстрее
однако вот => | |
|
| |
|
16 Кб. |
|
| Да у него конечно как-то в лёт считает. Просто сразу раз и всё) не понимаю что у меня не так сделано...
а вот в этом файле у меня идёт процесс довольно долго (сек 7-8) и в конце выдаёт ошибку (см. рисунок) и не сортирует по возрастанию из за этого. | |
|
| |
|
|
|
|
| так я про ваш файлик то говорю. Скачал, запустил и вот - ошибку выдаёт тайм аута...
но процесс идёт и все 200 позиций просчитывает до конца, но не сортирует. Но это не очень уже важно, ибо всё работает в принципе... а вот код я поглядел, там по другому сделано, тоже погляжу поразбираюсь) глядишь научусь азам) | |
|
| |
|
|
|
| видимо это из-за 2010 екселя
сейчас посмотрю в 2003 | |
|
| |
|
23 Кб. |
|
| переделал под 2003 | |
|
| |
|
|
|
| Простите, не успел ещё разобраться в вашем коде( И ОГРОМНОЕ СПАСИБО ЗА ПОЯСНЕНИЯ!!!
Подскажите мне пожалуйста один момент:
Давайте в коде Lukas пока что это сделаем, в нём я уже почти разобрался и мне легче будет быстрее в свои готовые встроить изменения. А ваш очень удобный, тоже его начну думать, как только задачу доделаю. А потом переделаю, уж больно удобно там вводить "от" и "до" значения)))
Так вот: что нужно дописать в код чтобы третьим столбцом вылезали значения из столбца "Партия, час". Там тоже итоговое значение, вот его тоже напротив вставлять и фильтровать по нему наверно не надо. | |
|
| |
|
|
|
| вот переделанный код лукаса
Sub Fill()
Dim i As Integer
Dim j As Long
Dim k As Long
j = ThisWorkbook.Sheets("Раскрой").Cells(2, 31)
k = ThisWorkbook.Sheets("Раскрой").Cells(2, 32)
With Workbooks.Add.Sheets(1) '.Add
.Cells(1, 1) = "Кол-во в партии"
.Cells(1, 2) = "Суммарная трудоемкость остатков"
.Cells(1, 3) = "Партия, час"
For i = j To k
.Cells(i - j + 2, 1) = i
ThisWorkbook.Sheets("Раскрой").Cells(2, 4) = i
.Cells(i - j + 2, 2) = ThisWorkbook.Sheets("Раскрой").Cells(23, 31)
.Cells(i - j + 2, 3) = ThisWorkbook.Sheets("Раскрой").Cells(23, 28)
Next i
.Range(Cells(1, 1), Cells(i - j + 2, 3)).Sort Key1:=Range("B2"), Order1:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
.Select
End With
End Sub
|
ячейка AE2 - значение "от"
ячейка AF2 - значение "до"
необходимо быть внимательным ибо контроля за тем что от<до (должно быть) нет | |
|
| |
|
|
|
|
| Усё, разобрался))) классно сделано. Для вас наверно халява, а мне то что нужно)))
вот только не понятна концовка программы. Смысл понятен, там сортировка. Но вот как это делается... все слова незнакомые)
ну ничего, делается и ладно, в конце концов я не программист.
| |
|
| |
|
|
|
| я тоже не программист
ни образования ни должности
так для общего развития | |
|
| |
|
|
|
| а подскажите пожалуйста, как вот научиться писать лёгкие программки в экселе и акцессе? хотелось бы немного быть к этому расположенным. Книжки есть может какие, для чайников по написанию программ? я просто очень слабо предрасположен к программированию. Тяжело именно понимать язык, с логикой более менее разбираюсь... | |
|
| |