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

Excel VBA модули

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

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

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

Пример:


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

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

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

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

Вопрос как реализовать такой модуль на эксель, и как передавать в/из него данные посредством VBA.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.11.2013, 21:51
Ответы с готовыми решениями:

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

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

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

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

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

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

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

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

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

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

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

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

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

Вызываете процедуру откуда надо или по кнопке и передаёте нужные аргументы.
По умолчанию аргументы ByRef.
Если это функция, то возврат в имени функции.
Это как я понял, не то. Это модули и процедуры VBA, меня интересует как сделать кусок экселя в виде модуля.
0
Ушел с CyberForum совсем!
874 / 183 / 25
Регистрация: 04.05.2011
Сообщений: 1,020
Записей в блоге: 110
14.11.2013, 14: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  [ТС]
Цитата Сообщение от Surrogate Посмотреть сообщение
что значит кусок экселя ? VBA встроен в любое офисное приложение ?
хочу сделать процедуру стена(х1,х2,х3,х4,...) х- входные данные.
расчет производится не синтаксисом языка ВБА а с помощью таблиц эксель,
результат работ выдаётся как выходные параметры процедуры стена(у1,у2,у3,у4...)
я не льще себе мыслью, что я профессионал, но не понимаю о чем Вы
речь о строительно терминологиию.
Вас уже не раз просили выложить пример файла в эксель, а Вы упорно этого не понимаете. Этот файл позволит более предметно обсуждать данный вопрос !
Это невозможно, этот монстр, который я пилил 2 года, работает только на моём компьютере и только с одного каталога, слишком многое сделанно костылями через одно место.

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


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

Однозначно есть хорошие программисты, вот только мне они не попадаются. возможно сказывается провинциальность Рязани. если у вас есть контакты хороших, буду рад услышать.
0
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
14.11.2013, 22:15
Садишься сам и за несколько дней делаешь
Об чём тогда речь? Вопросов-непоняток нет!?
Пофлудить охота?
хочу сделать процедуру стена(х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
Нет!!! Не могу!!! Я только на секундочку. Ну неужели не видно - это классика в тему "Коллеги"!!! Все, больше небуду.
1
Ушел с CyberForum совсем!
874 / 183 / 25
Регистрация: 04.05.2011
Сообщений: 1,020
Записей в блоге: 110
14.11.2013, 22:51
Цитата Сообщение от findeler Посмотреть сообщение
Однозначно есть хорошие программисты, вот только мне они не попадаются. возможно сказывается провинциальность Рязани. если у вас есть контакты хороших, буду рад услышать.
Я знаю одного человека из Рязани (главного русскоязычного гуру по визио, также является профессионалом в вба) с другого форума. Не знаю, как насчет реализации функционала средствами самого Эксель. В общем я ему о вашей задачке сообщил, если ему будет интересно - то кину Вам его контакты или он сам на Вас выйдет если он здесь зарегистрирован.
1
6 / 3 / 0
Регистрация: 12.04.2013
Сообщений: 67
15.11.2013, 06:43  [ТС]
Цитата Сообщение от Alex77755 Посмотреть сообщение
Об чём тогда речь? Вопросов-непоняток нет!?
Пофлудить охота?
вопросы есть, я их тут задаю. Если вы помните началось с 2х вопросов. Я не программист, многого не знаю.

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


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

Добавлено через 23 секунды
Цитата Сообщение от Surrogate Посмотреть сообщение
Я знаю одного человека из Рязани (главного русскоязычного гуру по визио, также является профессионалом в вба) с другого форума. Не знаю, как насчет реализации функционала средствами самого Эксель. В общем я ему о вашей задачке сообщил, если ему будет интересно - то кину Вам его контакты или он сам на Вас выйдет если он здесь зарегистрирован.
Спасибо.
0
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
15.11.2013, 08:48
но очень сложно в таком варианте, "вычёсывать блох"
Вам уже много раз предлагали выложить файл.
Хотя бы начните с малого: Выложите формулу или алгоритм рассчёта какого-то параметра!
Что ж вы воду в ступе толчёте?: я хочу, но не хочу VBA, потому, что ненаглядно
Вот примитивный онлай рассчетчик кирпичной кладки.
Там 8 входных парметров. Все остальные рассчитываются внутри программы.
Видимо есть какие-то коэффициенты и формулы. В чём проблема-то?
Вы ничего не показываете! Сколько входных параметров у вас должно быть?
Сколько выходных? Скорее всего это будет не одна процедура, а несколько.
Скорее всего часть операций лучше будет вынести в функции.
Но в остальном без выших формул это гадание на кофейной гуще
0
6998 / 2896 / 555
Регистрация: 19.10.2012
Сообщений: 8,804
15.11.2013, 11:55
Ну теоретически конь в вакууме может быть таким - код берёт параметры, открывает это файл с формулами, заполняет параметрами листы, считывает результаты обсчёта, закрывает файл.
Файл с формулами - это и есть тот "модуль", сам код находится где-то в другом аппликейшене, хоть Ворде или vbs.
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.11.2013, 11:55

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
GitHub Copilot в JetBrains: модель по умолчанию, Fix и контроль MCP
and_y87 12.10.2026
10 октября 2026 года GitHub обновил Copilot для JetBrains: добавил настройки стартовой модели, исправления из диагностики и управление автозапуском MCP. Поддержка IDE 2025. 1 прекращена — требуется. . .
День 5 из 28: Codex подсказывает следующий запрос
and_y87 12.10.2026
9 октября 2026 года OpenAI запустила бету Composer predictions — подсказок следующего сообщения в текущем диалоге Codex. Это помощь с формулировкой запроса, а не автоматическое продолжение задачи. . . .
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru