IMHO.WS

IMHO.WS (http://www.imho.ws/index.php)
-   Программирование (http://www.imho.ws/forumdisplay.php?f=40)
-   -   Задачка по Excel (http://www.imho.ws/showthread.php?t=61839)

dr-evil 15.06.2004 18:05

Задачка по Excel
 
Знакомая задачку задала...

Есть база данных (таблица) строительных материалов. Требуется разработать таблицу для автоматизации составления сметы с использованием данных из этой таблицы.

Процедура работы должна выглядеть так: пользователь выбирает из списка (элемент управления) нужную позицию, в заданных вами ячейках отражаются цена за единицу размерности этой товарной позиции (из таблицы-базы). Пользователь задает необходимое количество этой товарной позиции и нажимает кнопку "включить в смету". Макрос добавляет наименование выбранной позиции, цену за единицу, указанное количество и общую стоимость (цена*количество) отдельной строкой в смету. Далее пользователь может выбрать произвольное кол-во товарных позиций и также включить их в смету. То есть число строк в смете должно увеличиваться, при этом форма сметы должна предусматривать общую сумму по включенным в нее строкам-позициям. После того, как пользователь закончил формирование сметы он должен ее распечатать (тоже через макрос).

Если кто сможет сделать и сделает получит мой вечный респект :)

EvroStandart 15.06.2004 23:54

Цитата:

dr-evil:
Есть база данных (таблица) строительных материалов
Вот этот момент я не понял. База, или всё-таки таблица? Если база, то какая?

Если я правильно понял, там должны быть элементы формы: список, кнопка добавления и кнопка печати?
Если это просто две таблицы на разных листах, должно быть просто.

А вообще, один деятель хотел аналогичную автоматизацыю. Я ему Access базу сделал, он остался доволен. ИМХО удобнее и надёжнее.

dr-evil 17.06.2004 14:23

а это просто задачка такая,
в данном случае под базой имеется ввиду таблица ака прайс-лист

EvroStandart 17.06.2004 17:17

Подсказал бы кто-нить как к этому списку обращаться. Пробовал через Value - выдаёт ошибку. Или я параметры неправильно прописал? ...

dr-evil 17.06.2004 17:49

да сам в непонятках =(

EvroStandart 17.06.2004 23:25

Как список работает, я понял. Теперь можно дальше ковырять.

dr-evil 18.06.2004 12:50

а ты выкинь сюда то что есть, может мне че в голову придет

EvroStandart 18.06.2004 16:46

Пока ничего нет. Я только методом тыка вычислил как список работает. Прописываеш откуда брать данные (D10:D15) и куда выдавать ответ (C1). При изменении список прописывает в C1 порядковый номер выбранного элемента. Если выбрал D10, тогда С1 будет равен 1. Если D12 - С1 равен 3.
Через событие списка OnChange (вроде так назывался) можно получить новое значение C1. Дальше смотреть пока времени небыло.

dr-evil 18.06.2004 18:24

я до этого тоже докопался, а вот со скриптами/макросами в Excel я не дружу

tombird 18.06.2004 23:43

если дружишь с Delphi, можешь
попробовать себя в OLE-программировании
осуществлять манипуляции с Excel достаточно просто.
v: variant;
v:=CreateOleObject("Excel.Application");
v.Visible:=True;
v.Cells[1,1]:=5.5
и т.д.

EvroStandart 19.06.2004 00:02

А я макросы писАл довольно успешно. Потом поровыряю его на эту тему. :cool:

EvroStandart 25.06.2004 10:33

Это ещё актуально?

dr-evil 25.06.2004 11:54

да, весьма

EvroStandart 25.06.2004 12:06

Вложений: 1
Ну что я могу сказать?
Праздники прошли, похмельный синдром тоже. Работающий прототип готов.
хе-хе
:biggrin:

Только щас косяк заметил.
В процедуре Sub Button6_Click()
есть строчка
Range("A2:D" & strLast).Select
её нужно заменить на
Range("A2:D" & strLast + 2).Select
:cool:

EvroStandart 28.06.2004 08:22

Ну и как? Хоть кому-нибудь пригодилось? :confused:

dr-evil 28.06.2004 17:38

да весьма, нашел еще один баг: при прерывании печати

EvroStandart 28.06.2004 18:29

и что там происходит?

dr-evil 02.07.2004 12:22

А там просто идет Runtime Error - метод завершен некорректно.

EvroStandart 02.07.2004 16:48

Ну, это по ходу уже баг свмого экселя, а не макро кода. Наверно, так будет с использованием любой внешней программы (как программа печати).
:cool:


Часовой пояс GMT +4, время: 17:03.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.