Страницы: 1
RSS
Макрос преобразования текста в формулу, Нужно сделать макрос, который при изменении определенного диапазона ячеек на листе запускал бы макрофункцию "=ВЫЧИСЛИТЬ()"
 
Доброго времени суток, уважаемые форумчане!
Задача: сделать файл-каталог, который бы рассчитывал расход материала на каждую деталь.
Пока вся работа на начальном этапе, поэтому описание:
1. Выбираем из раскрывающегося списка (столбец B) нужную деталь
2. Автоматически (с помощью функции "ЕСЛИ") в колонке ПАРАМЕТРЫ будут появляться необходимые поля для заполнения параметров (пока эти ячейки просто обозначил желтым цветом).
3. При выборе конкретной детали (столбец B) в столбцы X, Z и AB с помощью функции ВПР будет загружаться текст необходимой формулы для расчета (с ссылками на параметры в столбце В.
4. Чтобы формулы "заработали" я для каждой формулы в соседнюю слева ячейку вставил макрофункцию =ВЫЧИСЛИТЬ
5. Чтобы макрофункция "сработала", нужно зайти в ячейку, где она записана (столбцы W, Y и AA) и нажать ENTER.

ВОПРОС: как сделать так, чтобы при заполнении параметров (столбец B) и количества (столбец S) изделий макрофункции (или макрос) автоматически запускались и рассчитывали необходимые данные?

п.с. признаюсь, с макросами не работал никогда и с VBA совсем не знаком. ОЧЕНЬ надеюсь на Вашу помощь!
Заранее спасибо!
Изменено: Perepelkin - 29.03.2018 21:48:20
 
Для работы макрофункции, макросы, как таковые, все равно должны быть разрешены, поэтому, может будет более рациональнее, полностью на них перейти? Производить нужные расчеты в коде, а на лист выгружать готовый результат
Согласие есть продукт при полном непротивлении сторон
 
Я только "за"... но макросы, к сожалению, писать не умею, а вот макрофункцию в интернете отрыть сумел))
Мне не принципиально использовать "ВЫЧИСЛИТЬ". Главное, чтобы текстовая функция превращалась в рабочую.
Изменено: Perepelkin - 29.03.2018 20:44:10
 
Название темы: "Макрос преобразования текста в формулу"
п.с. не нашел, как изменить название темы.
 
И не найдёте - модераторы поменяют )
 
Perepelkin, По идее,  в вашем решении не хватает только =EVALUATE("="&ГЛАВНАЯ!Z4).
По вопросам из тем форума, личку не читаю.
 
Цитата
БМВ написал:
Perepelkin , По идее,  в вашем решении не хватает только =EVALUATE("="&ГЛАВНАЯ!Z4).
Заменил "=ВЫЧИСЛИТЬ(ГЛАВНАЯ!Z4)" на "=EVALUATE("="&ГЛАВНАЯ!Z4)" => ошибка.
 
EVALUATE это в ENG варианте офиса у вас
=ВЫЧИСЛИТЬ("="&ГЛАВНАЯ!Z4)
По вопросам из тем форума, личку не читаю.
 
К сожалению, все равно автоматически не пересчитывает - как и раньше, приходится заходить вручную в каждую ячейку.
 
Хотя, один запасной вариант только что получился - Ctrl+Alt+F9 и все пересчитывает
Но хотелось бы, чтобы автоматически)))
Изменено: Perepelkin - 29.03.2018 22:01:44
 
У вас в ячейках текст, он не меняется, и так как Excel не чувствует что что-то изменилось и надо пересчитать, то это и не пересчитывает. Изменить это можно только сделать не текст, а формулу, которая зависит от изменяемых значений, пусть даже  эти значения не влияют на эту формулу. Например X4 записать так
="(E4/1000+G4/1000)*2*U4"&IF(E4+G4+U4;"";"")
Изменено: БМВ - 29.03.2018 22:12:59
По вопросам из тем форума, личку не читаю.
 
Поэтому я и пришел на этот форму за помощью - чтобы добиться автоматического пересчета :-)
Если можно заменить макрофункцию "ВЫЧИСЛИТЬ" макросом - отлично. Дело в том, что я никогда их не писал. Отсюда и решаю этот вопрос теми способами, которые мне знакомы)) Но если кто-нибудь напишет нужный макрос - радости и благодарности моей не будет границ)))

Пока проблема решена таким образом: на кнопку записан макрос нажатия "Ctrl+Alt+F9" - это дает пересчет всех формул, в т.ч. и макрофункций.
Изменено: Perepelkin - 29.03.2018 22:26:03
 
попробуйте вот так
=EVALUATE("="&ГЛАВНАЯ!H7)+ISBLANK(OFFSET(ГЛАВНАЯ!H7;0;0))*0
Добавил летучести
По вопросам из тем форума, личку не читаю.
 
Кажется, все работает! Спасибо, уважаемый БМВ!!! :-)))
Изменено: Perepelkin - 30.03.2018 10:23:41
Страницы: 1
Наверх