Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.90/29: Рейтинг темы: голосов - 29, средняя оценка - 4.90
6 / 3 / 0
Регистрация: 12.04.2013
Сообщений: 67
1

Excel VBA модули

12.11.2013, 21:51. Показов 5479. Ответов 44
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте.

Встала задача реализовать такую вещь.

Пример:


1. строительство кирпичных стен
входные данные, (объём, тип кирпича, вид кладки)

в расчёте используются формулы (чистый эксель) и данные из внешних справочников (стоимость материала, стоимость работы, справочники это таблицы экселя с наименованием и стоимостью)

2. выходные данные (список материалов, их цен и работ)

Всё это планируется оформить в модуль ?, (функцию) соответственно при обработке исходных данных при совпадении исходных данных вызывать модуль обработки и добавлять в смету требуемые данные.

Вопрос как реализовать такой модуль на эксель, и как передавать в/из него данные посредством VBA.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.11.2013, 21:51
Ответы с готовыми решениями:

Vba excel windows и vba excel Mac Os - Макинтош корявит шрифт
Всем привет, столкнулся с такой ситуацией. Макросы написаны на Excel 2016 Windows. Когда файл...

Программа AtteStat1205 для Excel, встраивает модули в Excel, как ее удалить
Скачал удивительную программу AtteStat1205 интересные методы, все круто расписано. но не могу...

Как заменить и (или) добавить модули в запароленый проект VBA програмно
необходимо заменить и (или) добавить модули в запароленый проект VBA програмно, с другого проекта...

VBA парсер выдает ошибку vba excel Run-time error '-2147319783 (80028019) и "microsoft ожидает пока другое приложение за
Добрый день, делаю свой первый парсер. Выдает ошибку vba excel Run-time error '-2147319783...

44
11508 / 3794 / 681
Регистрация: 13.02.2009
Сообщений: 11,197
13.11.2013, 09:06 21
Author24 — интернет-сервис помощи студентам
Если справочники занимают большой объём, то хранить, конечно, лучше в базе.
А вот на счёт PDF? Чем вызвано это? Тем более, что вывод предполагается в текстовые поля
И ещё. Если базы в Access можно оправдать, то формы почему тоже в базе если вычисления будут в екселе?
В екселе с формами работать удобнее. Проще интерфейс и доступ к контролам.
Пишите в личку, что бы не разводить на форуме дискуссий

Добавлено через 6 минут
то куски расчёта повторяются, как следствие ошибки множатся.
А причина ошибок выяснена? Может надо подкорректировать алгоритм?
Или не участвуют некоторые параметры-коэффициенты?
Как я понимаю имеется разниица между результатами рассчитанными вручную и программно
0
4377 / 661 / 36
Регистрация: 17.01.2010
Сообщений: 2,134
13.11.2013, 09:57 22
Я больше не буду. И ухожу из темы. Только один вопрос остался: "Сметные программы мне не подходят (они для крупных строек, у меня малоэтажка)" Это Вам на названом форуме сказали? Тогда, думаю, не стоит его никому рекомендовать. А Вам, по секрету, любая спец. программа выдаст смету с одной позицией - перенос щепки длиной 10 см не расстояние 2 м. Если уметь, конечно. Все, меня больше нет.
0
6 / 3 / 0
Регистрация: 12.04.2013
Сообщений: 67
13.11.2013, 10:38  [ТС] 23
Цитата Сообщение от Alex77755 Посмотреть сообщение
А вот на счёт PDF? Чем вызвано это? Тем более, что вывод предполагается в текстовые поля
для удобства заказчика, это уже сейчас сделанно.

И ещё. Если базы в Access можно оправдать, то формы почему тоже в базе если вычисления будут в екселе?
В екселе с формами работать удобнее. Проще интерфейс и доступ к контролам.
Пишите в личку, что бы не разводить на форуме дискуссий
смысл отвязать модуль расчёта от данных, пока есть 10-50 смет это не сложно но когда их доходит до сотни уже неудобно. Да и в планах расчётчик разместить на сервере а обращения будут с разных баз.

А причина ошибок выяснена? Может надо подкорректировать алгоритм?
Или не участвуют некоторые параметры-коэффициенты?
Как я понимаю имеется разниица между результатами рассчитанными вручную и программно
да нет, банальные ошибке при изменении, например добавил строчку в одной части а в двух других забыл, или ссылку не на то сделал, или коэф попутал.
сейчас расчётчик более 3х тысяч строчек и все формульные с условиями. Уже очень сложно вычёсывать проблемы. К томуже эксель иногда дуркует с абсолютной и относительной адресацией, тогда вообще руками очень много восстанавливать приходится.

Добавлено через 24 секунды
Цитата Сообщение от Igor_Tr Посмотреть сообщение
И ухожу из темы.
Спасибо.
0
11508 / 3794 / 681
Регистрация: 13.02.2009
Сообщений: 11,197
13.11.2013, 11:06 24
более 3000 и все формульные с относительной и абсолютной адресацией это круто!
Но я за VBA.
Т.е. отказаться вообще от формул.
ИМХО много формул и функций заметно тормозят рассчёты.
Сталкивался с книгой, которая открывалась (и пересчитывалась каждый раз) более 40 минут.
И при этом заказчик заказывал ещё UDF.
Убедил отказаться в пользу макросов. Стало формировать самый большой отчёт за 12с.
Пока не могу сказать более конкретно по вашему случаю: не знаком с алгоритмом и методикой рассчётов.
Но более чем уверен, что это решаемо.
1
6 / 3 / 0
Регистрация: 12.04.2013
Сообщений: 67
13.11.2013, 11:44  [ТС] 25
Цитата Сообщение от Alex77755 Посмотреть сообщение
более 3000 и все формульные с относительной и абсолютной адресацией это круто!
Но я за VBA.
Т.е. отказаться вообще от формул.
ИМХО много формул и функций заметно тормозят рассчёты..
Бог его знает, одна из причин почему хочу уйти на модули сократить колличество строк кода, по сути уникальных не более 1000 остальное вариации, если есть способ перевести формулы экселя в макросы то это возможно, но только после полной отладки системы, в экселе всё просто вот формула вот результат, в макросах это совсем неочевидно. так что пока думаю пусть так, у меня на экселе полный пересчёт всех 100 смет занимает около 10 минут. На текущий момент допустимо, тем более все 100 пересчитываются далеко не при всех изменениях.

Пока не могу сказать более конкретно по вашему случаю: не знаком с алгоритмом и методикой рассчётов.
Но более чем уверен, что это решаемо.
по сути простые арифметические операции и всевозможные "если" "и" "или" ну коэффициенты как макро так и локальные.
0
11508 / 3794 / 681
Регистрация: 13.02.2009
Сообщений: 11,197
13.11.2013, 11:58 26
По сути формулы составлены из функций листа и к ним можно обращаться и из макроса.
Так, например, вызывается функция ВПР
Visual Basic
1
DOLGN_r = Application.WorksheetFunction.VLookup(DOLGN, Range("Падежи"), 2, False)
Но многие арифметические функции проще не вызывать, а просто выполнять операции в коде.
0
3218 / 967 / 223
Регистрация: 29.05.2010
Сообщений: 2,086
13.11.2013, 12:14 27
Ходим вокруг да около. Понимаю есть некая программка (сформирована на формулах), необходимо оптимизировать время расчета и минимизировать ошибки, ну так файл примера в студию, может быстрее решится проблема ТС.
0
6 / 3 / 0
Регистрация: 12.04.2013
Сообщений: 67
13.11.2013, 17:53  [ТС] 28
Цитата Сообщение от toiai Посмотреть сообщение
ну так файл примера в студию,
что вы имеете ввиду.

Добавлено через 40 минут
Цитата Сообщение от Alex77755 Посмотреть сообщение
По сути формулы составлены из функций листа и к ним можно обращаться и из макроса.
Так, например, вызывается функция ВПР
с учётом того как часто приходится менять/подправлять расчётный метод, ваш вариант плох, представьте сколько мне при его ненаглядности "вылизывать" придётся.
1
11508 / 3794 / 681
Регистрация: 13.02.2009
Сообщений: 11,197
13.11.2013, 21:03 29
findeler,
ваш вариант плох
Моего варианта как такового нет!
Я просто имел в виду, что если есть методика рассчёта, то нет особенных проблем привлечь в помошники компьютер.
Но, как говорится, со специалистами не поспоришь!
Igor_Tr вам в помощь.
Ухожу из темы!
0
6 / 3 / 0
Регистрация: 12.04.2013
Сообщений: 67
14.11.2013, 08:04  [ТС] 30
собственно обсудили всё кроме самого вопроса.

к реализовать такой модуль на эксель, ?
как передавать в/из него данные посредством VBA. ?

Добавлено через 1 минуту
Цитата Сообщение от Alex77755 Посмотреть сообщение
Igor_Tr вам в помощь.
Ухожу из темы!
советы строительного "специалиста" по строительству мне не нужны.
0
11508 / 3794 / 681
Регистрация: 13.02.2009
Сообщений: 11,197
14.11.2013, 10:10 31
как реализовать такой модуль на эксель, ?
В еселе: Alt+F11. Далее Insert - Module и у вас модуль. Далее Insert - prozedure и и вас процедура или функция
Нужны в этой процедуре аргументы - вписываете в скобках через запятую.
как передавать в/из него данные посредством VBA. ?
Вызываете процедуру откуда надо или по кнопке и передаёте нужные аргументы.
По умолчанию аргументы ByRef.
Если это функция, то возврат в имени функции.

Добавлено через 20 минут
В пост №11 я об этом писал
1
6 / 3 / 0
Регистрация: 12.04.2013
Сообщений: 67
14.11.2013, 13:05  [ТС] 32
Цитата Сообщение от Alex77755 Посмотреть сообщение
В еселе: Alt+F11. Далее Insert - Module и у вас модуль. Далее Insert - prozedure и и вас процедура или функция
Нужны в этой процедуре аргументы - вписываете в скобках через запятую.

Вызываете процедуру откуда надо или по кнопке и передаёте нужные аргументы.
По умолчанию аргументы ByRef.
Если это функция, то возврат в имени функции.
Это как я понял, не то. Это модули и процедуры VBA, меня интересует как сделать кусок экселя в виде модуля.
0
Ушел с CyberForum совсем!
873 / 182 / 25
Регистрация: 04.05.2011
Сообщений: 1,020
Записей в блоге: 110
14.11.2013, 14:33 33
Цитата Сообщение от findeler Посмотреть сообщение
Это модули и процедуры VBA, меня интересует как сделать кусок экселя в виде модуля.
что значит кусок экселя ? VBA встроен в любое офисное приложение ?
Цитата Сообщение от findeler Посмотреть сообщение
4. Я точно знаю чего хочу. ТЗ есть.
это уже хорошо
Цитата Сообщение от findeler Посмотреть сообщение
8. Я использую понятный для непрофессионалов язык.
я не льще себе мыслью, что я профессионал, но не понимаю о чем Вы
Цитата Сообщение от findeler Посмотреть сообщение
9. На текущий момент модуль расчёта СУЩЕСТВУЕТ И РАБОТАЕТ в EXEL.
Вас уже не раз просили выложить пример файла в эксель, а Вы упорно этого не понимаете. Этот файл позволит более предметно обсуждать данный вопрос !
Цитата Сообщение от findeler Посмотреть сообщение
10. Я вынужден разбираться в этом сам поскольку моя попытка в прошлом году найти программиста VBA для реализации функционала окончилась неудачей, понтов много, а вот с результатом не айс. Пришлось сделать это самому, сейчас не думаю что ситуация изменилась.
если Вам не понравится результат работы стоматолога, в следующий раз проштудируете учебник медВУЗа и начнете себе зубы сверлить ?
Сделали сами покажите Ваше творение.
Цитата Сообщение от findeler Посмотреть сообщение
2. На текущий момент директор строительной фирмы.
Поздравляю! Но наверно это не правильно, что директор стройфирмы пишет код Вы хотите, чтоб вам дома плитку программист клал ?
Если обожглись с одним VBA-программистом, можно найти другого! Результаты работы которого устроили Ваших друзей, знакомых, коллег…
0
6 / 3 / 0
Регистрация: 12.04.2013
Сообщений: 67
14.11.2013, 19:28  [ТС] 34
Цитата Сообщение от Surrogate Посмотреть сообщение
что значит кусок экселя ? VBA встроен в любое офисное приложение ?
хочу сделать процедуру стена(х1,х2,х3,х4,...) х- входные данные.
расчет производится не синтаксисом языка ВБА а с помощью таблиц эксель,
результат работ выдаётся как выходные параметры процедуры стена(у1,у2,у3,у4...)
я не льще себе мыслью, что я профессионал, но не понимаю о чем Вы
речь о строительно терминологиию.
Вас уже не раз просили выложить пример файла в эксель, а Вы упорно этого не понимаете. Этот файл позволит более предметно обсуждать данный вопрос !
Это невозможно, этот монстр, который я пилил 2 года, работает только на моём компьютере и только с одного каталога, слишком многое сделанно костылями через одно место.

Поздравляю! Но наверно это не правильно, что директор стройфирмы пишет код Вы хотите, чтоб вам дома плитку программист клал ?
неправильно, мне есть чем заняться.


Если обожглись с одним VBA-программистом, можно найти другого! Результаты работы которого устроили Ваших друзей, знакомых, коллег…
Вы знаете, перебрал не одного, все гуру, вот только когда рассказываешь свои "хотелки", слышишь - невозможно, или очень долго и дорого, да и то не факт. Садишься сам и за несколько дней делаешь.

Однозначно есть хорошие программисты, вот только мне они не попадаются. возможно сказывается провинциальность Рязани. если у вас есть контакты хороших, буду рад услышать.
0
11508 / 3794 / 681
Регистрация: 13.02.2009
Сообщений: 11,197
14.11.2013, 22:15 35
Садишься сам и за несколько дней делаешь
Об чём тогда речь? Вопросов-непоняток нет!?
Пофлудить охота?
хочу сделать процедуру стена(х1,х2,х3,х4,...) х- входные данные.
Уже неоднократно повторялось. Вот вам процедура, пользуйтесь:
Visual Basic
1
2
3
Sub Стена(х1, х2, х3, х4)
' здесь ваши действия
End Sub
расчет производится не синтаксисом языка ВБА
хочу сделать процедуру
Трудно переварить выши желания: процедура без VBA!!
Это разве что в процедурном кабинете! Клизма, например.
0
4377 / 661 / 36
Регистрация: 17.01.2010
Сообщений: 2,134
14.11.2013, 22:22 36
Нет!!! Не могу!!! Я только на секундочку. Ну неужели не видно - это классика в тему "Коллеги"!!! Все, больше небуду.
1
Ушел с CyberForum совсем!
873 / 182 / 25
Регистрация: 04.05.2011
Сообщений: 1,020
Записей в блоге: 110
14.11.2013, 22:51 37
Цитата Сообщение от findeler Посмотреть сообщение
Однозначно есть хорошие программисты, вот только мне они не попадаются. возможно сказывается провинциальность Рязани. если у вас есть контакты хороших, буду рад услышать.
Я знаю одного человека из Рязани (главного русскоязычного гуру по визио, также является профессионалом в вба) с другого форума. Не знаю, как насчет реализации функционала средствами самого Эксель. В общем я ему о вашей задачке сообщил, если ему будет интересно - то кину Вам его контакты или он сам на Вас выйдет если он здесь зарегистрирован.
1
6 / 3 / 0
Регистрация: 12.04.2013
Сообщений: 67
15.11.2013, 06:43  [ТС] 38
Цитата Сообщение от Alex77755 Посмотреть сообщение
Об чём тогда речь? Вопросов-непоняток нет!?
Пофлудить охота?
вопросы есть, я их тут задаю. Если вы помните началось с 2х вопросов. Я не программист, многого не знаю.

Уже неоднократно повторялось. Вот вам процедура, пользуйтесь:
Visual Basic
1
2
3
Sub Стена(х1, х2, х3, х4)
' здесь ваши действия
End Sub
Я уже объяснил, так сделать не вопрос, но очень сложно в таком варианте, "вычёсывать блох" Я иногда в экселе с наглядностью и кучей промежуточных визуальных данных долго ищу ошибку, в случае ВБА синтаксиса сложность возрастёт на порядок.


Трудно переварить выши желания: процедура без VBA!!
пусть будет VBA, но расчёт в экселе, и оформить в виде отдельного файла.

Добавлено через 23 секунды
Цитата Сообщение от Surrogate Посмотреть сообщение
Я знаю одного человека из Рязани (главного русскоязычного гуру по визио, также является профессионалом в вба) с другого форума. Не знаю, как насчет реализации функционала средствами самого Эксель. В общем я ему о вашей задачке сообщил, если ему будет интересно - то кину Вам его контакты или он сам на Вас выйдет если он здесь зарегистрирован.
Спасибо.
0
11508 / 3794 / 681
Регистрация: 13.02.2009
Сообщений: 11,197
15.11.2013, 08:48 39
но очень сложно в таком варианте, "вычёсывать блох"
Вам уже много раз предлагали выложить файл.
Хотя бы начните с малого: Выложите формулу или алгоритм рассчёта какого-то параметра!
Что ж вы воду в ступе толчёте?: я хочу, но не хочу VBA, потому, что ненаглядно
Вот примитивный онлай рассчетчик кирпичной кладки.
Там 8 входных парметров. Все остальные рассчитываются внутри программы.
Видимо есть какие-то коэффициенты и формулы. В чём проблема-то?
Вы ничего не показываете! Сколько входных параметров у вас должно быть?
Сколько выходных? Скорее всего это будет не одна процедура, а несколько.
Скорее всего часть операций лучше будет вынести в функции.
Но в остальном без выших формул это гадание на кофейной гуще
0
6922 / 2832 / 543
Регистрация: 19.10.2012
Сообщений: 8,645
15.11.2013, 11:55 40
Ну теоретически конь в вакууме может быть таким - код берёт параметры, открывает это файл с формулами, заполняет параметрами листы, считывает результаты обсчёта, закрывает файл.
Файл с формулами - это и есть тот "модуль", сам код находится где-то в другом аппликейшене, хоть Ворде или vbs.
2
15.11.2013, 11:55
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.11.2013, 11:55
Помогаю со студенческими работами здесь

Функциия excel в функции excel на vba
С помощью мастера записи матросов получил следующую функцию ActiveCell.FormulaR1C1 = "=IFERROR...

Vba экспорт в excel по vba-фильтру
Работает VBA-фильтр, как сделать экспорт выбранных данных в Excel по средствам кнопки. Прошу о...

VBA запросы в excel vba
Здравствуйте, Есть два запроса на выборку. Необходимо сохранить запросы в excel: 1 запрос на 1...

Импорт таблицы Excel в БД Access через VBA через кнопку в Excel
Форумчане, помогите, пожалуйста с кодом макроса в excel. Задача состоит в следующем:в файле...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru