Страницы: 1
RSS
Создать два расчетных и один сводный (объединяющий другие) макрос, 100% предоплата. Яндекс.Кошелек
 
Доброе утро,
ТЗ во вложении.

Объем работы достаточно мал, но сделать его нужно грамотно.
Стоимость 2300 руб. по 100% предоплате.

Сроки выполнения - до 2-х суток (знаю, что и за час можете сделать - просто проверить и отписаться при возникших вопросах или благодарности смогу  ориентировочно  26-27 сентября 2020 г.).
Изменено: Алексей Раменский - 25.09.2020 10:25:25
 
В книге объяснение "на пальцах", условно. а как в рабочем файле?

Цитата
И в коде необходимо это  учесть, сведя все операции по добавлению адресов ячеек при создании очередного "столбца" - к простому "копированию-вставке"  участка кода.
Топорно. Так вряд ли нужно делать. Прописать в одной/нескольких процедурах...

Цитата
В книгах имеется  достаточно большое количество макросов, приязанных к кнопкам , и взаимозависимых  от результатов друг друга (от 24 - до 210).
Это настораживает. То ли сделано на уровне начинающего и нужно многое переделать, то ли все сложно...

Давайте смотреть
 
В заданиях с зелеными ярлыками: "...В п.1.1.2.. значению F15 понадобился один шаг, ..."
Да там ВСЕГДА понадобится 1 шаг :)
Всё сложное - не нужно. Всё нужное - просто /М. Т. Калашников/
 
Цитата
Михаил Лебедев написал:
В заданиях с зелеными ярлыками: "...В п.1.1.2.. значению F15 понадобился один шаг, ..."Да там ВСЕГДА понадобится 1 шаг
До тех пор пока значения не изменятся)
 
Цитата
vikttur написал:
привязанных к кнопкам , и взаимозависимых  от результатов друг друга
Возможно зацикливание :)
Всё сложное - не нужно. Всё нужное - просто /М. Т. Калашников/
 
Цитата
vikttur написал: Топорно. Так вряд ли нужно делать. Прописать в одной/нескольких процедурах...
Не знаю, насколько топорно, но в одном из  модулей это выглядит так и на самом деле это ОЧЕНЬ УДОБНО:
Код
Option Explicit
Sub MakeResults_LAST2()
  MakeResult_LAST2 [g281], [g281], [e281], [e281], [h281]
 
End Sub

Sub MakeResult_LAST2(M11 As Range, M12 As Range, M21 As Range, M22 As Range, rz As Range)
  Dim mi, ma, KS, m
  If M21 <= M22 Then
    mi = M21: KS = M12
  ElseIf M21 > M22 Then
    mi = M22: KS = M11
  End If
  m = M21 + M22: ma = m - mi
  Do While m < KS And mi > 0
    m = m + mi
  Loop
  If m < KS Then
    rz = ma - KS + m
  ElseIf m > KS Then
    rz = ma + KS - m
  Else
    If mi = 0 And ma = 0 Then rz = -KS Else rz = 2 * ma - KS
  End If
End Sub
 
Цитата
vikttur написал:
Это настораживает. То ли сделано на уровне начинающего и нужно многое переделать, то ли все сложно...
Эмм...это отдельный макрос и да, в описании сходу было сказано, что переделываться будет ещё не раз.
Суть в том, чтобы создать макрос для макросов - чтобы щелкать не по  трем десяткам кнопок, боясь пропустить этап - а нажать всего одну)
Изменено: Алексей Раменский - 25.09.2020 11:06:59
 
Цитата
Алексей Раменский написал:
До тех пор пока значения не изменятся
Даже после того, как изменятся. ВСЕГДА ОДИН шаг будет :)
Всё сложное - не нужно. Всё нужное - просто /М. Т. Калашников/
 
Цитата
Михаил Лебедев написал:
Даже после того, как изменятся. ВСЕГДА ОДИН шаг будет
Хех, и правда)
Будем считать, что я перестраховался - отображать этот этап всё равно необходимо.
 
Цитата
Михаил Лебедев написал:
Возможно зацикливание
Глубоко. И верно)
Будет правильнее сказать "каскадная зависимость" или "последовательная" - результат предыдущего это входные данные для следующего (без какой-либо обратной связи).
 
Друзья, кто возьмется сделать?
Работы много и не могу сидеть здесь)
 
Цитата
Алексей Раменский написал: в одном из  модулей это выглядит так
Переменным нужно задавать тип. Переменным давать им определяющие имена, так читаемость лучше и в будущем править/изменять легче. Восприятие кода повышается, если разделять операторы и смысловые блоки пробелами.

Цитата
Алексей Раменский написал:  и на самом деле это ОЧЕНЬ УДОБНО
Из разных процедур вызывать один общий обработчик? Да. И удобно, и писанины меньше. Но показанный фрагмент кода не объясняет, зачем пользователю гулять по редактору и копировать код.

Передумал я за это браться. Извините )
 
Цитата
vikttur написал:
Передумал я за это браться. Извините )
;)  
 
В файле написано:
"...- это к тому, что все адреса ячеек вне зависимости от их количества должны вводиться пользователем вручную!..." Вводиться куда? В макрос или на лист ексель?
"...необходимо разработать макрос,  в котором просто указываешь порядок , в котором хочешь видеть исполнение  всех модулей ..." - это не понятно. В теле макроса самого? Запишите последовательно названия макросов, они так и исполнятся, один за другим. В чем подвох? :)

PS
Если время терпит, после выходных я бы взялся.

Пишу на почту...
...
...
Работу выполнил, оплату получил.
Изменено: Михаил Лебедев - 02.10.2020 18:47:09
Всё сложное - не нужно. Всё нужное - просто /М. Т. Калашников/
 
Цитата
Михаил Лебедев написал:
Пишу на почту...
Ответил.
 
Задачу решает Михаил Лебедев.
Тема закрыта, всем спасибо)
Страницы: 1
Наверх