Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.08.2019, 21:45   #1
Petrov210217
Пользователь
 
Регистрация: 14.11.2018
Сообщений: 89
По умолчанию Поиск необходимых параметров с использованием циклов

Здравствуйте! Нужен макрос решающий следующую задачу:
в ячейке D4, E4, F4 коэфиценты от -1 до 1, необходимо перебрать с помощью циклов все варианты коэфицентов, подставляя их в ячейки ячейке D4, E4, F4 до выполнения условия значение L6>M6, после выполнения условия коэффициенты копируются в ячейки D4, E4, F4, а действие макроса останавливается.
ЫЫЫЫЫЫ
Petrov210217 вне форума Ответить с цитированием
Старый 28.08.2019, 22:19   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

у меня все получилось!
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 29.08.2019, 05:03   #3
Petrov210217
Пользователь
 
Регистрация: 14.11.2018
Сообщений: 89
По умолчанию

IgorGO, вы специалист в ВБА эксель, а я нет.
ЫЫЫЫЫЫ
Petrov210217 вне форума Ответить с цитированием
Старый 29.08.2019, 09:15   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Petrov210217 Посмотреть сообщение
IgorGO, вы специалист в ВБА эксель, а я нет
Это Игорь тонко намекнул, что без вашего файла понять, как связаны ячейки D4, E4, F4 с L6>M6, очень затруднительно.
Покажите файл, расскажите, как могут меняться коэффициенты, возможно, что получите готовое решение.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 29.08.2019, 18:20   #5
Petrov210217
Пользователь
 
Регистрация: 14.11.2018
Сообщений: 89
По умолчанию

Тонкий намек понял))). Выкладываю файл.

В ячейках D4,E4,F4 коэффициенты, которые необходимо перебрать в диапазоне от -1 до 1, для каждой ячейки. Перебор должен осуществляется до тех пор, пока значение в ячейке L6>=M6, если условие не выполнено и при всех вариантах L6<M6, то выбрать то значение D4,E4,F4 при котором значение L6 максимально.
Вложения
Тип файла: xls 1.xls (168.5 Кб, 18 просмотров)
ЫЫЫЫЫЫ
Petrov210217 вне форума Ответить с цитированием
Старый 29.08.2019, 19:10   #6
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Цитата:
Сообщение от Petrov210217 Посмотреть сообщение
которые необходимо перебрать в диапазоне от -1 до 1
с шагом?
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 29.08.2019, 19:25   #7
Petrov210217
Пользователь
 
Регистрация: 14.11.2018
Сообщений: 89
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
с шагом?
шаг 0,01
ЫЫЫЫЫЫ
Petrov210217 вне форума Ответить с цитированием
Старый 30.08.2019, 09:04   #8
MCH
Форумчанин
 
Регистрация: 21.11.2010
Сообщений: 326
По умолчанию

Цитата:
Сообщение от Petrov210217 Посмотреть сообщение
то выбрать то значение D4,E4,F4 при котором значение L6 максимально
С этой задачей справится "Поиск решения"
Вложения
Тип файла: xls 2.xls (169.5 Кб, 21 просмотров)
MCH вне форума Ответить с цитированием
Старый 30.08.2019, 16:30   #9
сфинкс
Форумчанин
 
Аватар для сфинкс
 
Регистрация: 17.06.2012
Сообщений: 957
По умолчанию

у меня работает макрос
с шагами 0.233 для ускорения:
Код:
Sub D4E4F4()
   
    For i = -1 To 1.2 Step 0.233
          For j = -1 To 1.2 Step 0.233
                For k = -1 To 1.2 Step 0.233

    Range("d4").Select
    ActiveSheet.Range("d4").Value = i
    Range("e4").Select
    ActiveSheet.Range("e4").Value = j
    Range("f4").Select
    ActiveSheet.Range("f4").Value = k

 If Range("L6") > Range("m6") Then End
 If Range("L6") > Range("L9") Then ActiveSheet.Range("L9").Value = Range("L6"): ActiveSheet.Range("L11").Value = i: ActiveSheet.Range("L12").Value = j: ActiveSheet.Range("L13").Value = k
 If Range("L6") < Range("L15") Then ActiveSheet.Range("L15").Value = Range("L6"): ActiveSheet.Range("L17").Value = i: ActiveSheet.Range("L18").Value = j: ActiveSheet.Range("L19").Value = k
 
    Next: Next: Next
End Sub
шаги нецелые против ошибки в точке -1 1 -1
или нужны формулы вида
=ЕСЛИОШИБКА((J329^2)/(C329^2);0)

но неясно достигается ли значение

зато впервые в теме циклы перебирают значения 3-ёх переменных
и остаётся сформулировать условие оптимальности
Случайные и Массивы https://programmersforum.ru/showthread.php?t=344371 Учим C# & basic & excel & python https://programmersforum.ru/showthre...=327446&page=5 ничего нерекомендую

Последний раз редактировалось сфинкс; 30.08.2019 в 17:33.
сфинкс вне форума Ответить с цитированием
Старый 30.08.2019, 16:45   #10
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от сфинкс Посмотреть сообщение
у меня работает макрос
так работает ли?

если
Цитата:
Сообщение от сфинкс Посмотреть сообщение
неясно достигается ли значение
непонятно, достигается ли нужное значение?!

правильный ответ уже дан MCH выше.
нужно просто искать максимум в L6
можно без макроса, используя встроенный механизм - "Поиск решения".
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск необходимых символов в ячейке Chuikov Microsoft Office Excel 2 22.06.2015 18:05
Организация программ с использованием процедур .использованием параметров-значений и параметров переменных Фрейтор 40-500 Помощь студентам 0 02.11.2012 21:58
Организация программ с использованием процедур .использованием параметров-значений и параметров переменных Фрейтор 40-500 Помощь студентам 6 02.11.2012 21:46
Программирование циклов с использованием оператора WHILE Yuliyanna Паскаль, Turbo Pascal, PascalABC.NET 11 25.04.2011 02:25
с использованием вложенных циклов вкусняшка Помощь студентам 4 31.03.2009 17:22