Excel. VBA. Печатание на подобии Reports

Программирование на Visual Basic for Applications
Avtopic
Постоялец
Постоялец
 
Сообщения: 442
Зарегистрирован: 30.09.2005 (Пт) 17:15
Откуда: Tbilisi

Excel. VBA. Печатание на подобии Reports

Сообщение Avtopic » 30.09.2005 (Пт) 17:43

Если, кто поможет, буду благодарен.
У меня сделано так: Пользователь выделяет на листе область с проектом (с чертежом разных размеров которую сам создает при проектировании) и нажимает Button.При этом программно, выделенная область подготавливается для печати (подбирается Zoom, для того чтобы помещалось на A4 лист, подбираются Margins и т.д.) и выводится в Preview для печати.
Может, кто направит меня в нужную сторону:
Как сделать, чтобы это подготовленная для печати область очерчивалось рамкой и внизу в правом углу в этой рамке наложить маленькую таблицу на подобии профессиональных чертежей.
заранее благодарю!

Терминатор
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 164
Зарегистрирован: 06.01.2005 (Чт) 12:57
Откуда: Москва

Re: Excel. VBA. Печатание на подобии Reports

Сообщение Терминатор » 30.09.2005 (Пт) 18:46

Avtopic писал(а):Как сделать, чтобы это подготовленная для печати область очерчивалось рамкой !


Это просто, на вскидку...

With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With


>>> в правом углу в этой рамке наложить маленькую таблицу на подобии профессиональных чертежей

:arrow: Это Вы о чём ? Какие профессиональные чертежи.?
Hasta la vista, baby!

Avtopic
Постоялец
Постоялец
 
Сообщения: 442
Зарегистрирован: 30.09.2005 (Пт) 17:15
Откуда: Tbilisi

Сообщение Avtopic » 30.09.2005 (Пт) 20:27

Спасибо за ответ.
Хотя считаю себя начинающим (и наверно всегда буду считать), не совсем такой начинающий. Такие вещи знаю.
Программа делает профессиональный расчет систем отопления, хотя в непрофессиональной среде Excel. (Включая чертеж, гидравлический расчет, расчет количества применяемых труб и фитингов и финансовый расчет).
В качестве конечного результата выводит Reports перечисленных расчетов на принтер, включая чертеж. Только чертеж бедный, так как не имеет атрибутов похожих на профессиональные чертежи - окантовку и таблицу с информацией об объекте, масштабе и т.д.
Мне бы совет, как наложить на чертеж заготовку с этими атрибутами. Крайне не устраивает прорисовывать это на рабочем листе и в качестве компромисса, мог бы скопировать все на новый лист или в новую книгу, но размер того, что нужно копировать иногда слишком большой. По этому, может кто предложить какую то мысль, как изящно можно это сделать?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 30.09.2005 (Пт) 20:57

Берем дорогой лазерный принтер, лезем в его настройки, указываем "Печатать вот эту картинку поверх документа". В качестве картинки указываем рамочку, прозрачную в нужных местах...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

K.Sergey
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 115
Зарегистрирован: 11.10.2004 (Пн) 0:42
Откуда: Санкт-Петербург

Сообщение K.Sergey » 30.09.2005 (Пт) 21:47

GSerg писал(а):Берем дорогой лазерный принтер, лезем в его настройки, указываем "Печатать вот эту картинку поверх документа". В качестве картинки указываем рамочку, прозрачную в нужных местах...

Мне тоже это сразу в голову пришло :D.
Но это удобно только если будешь сам пользоваться. Или если будет только на одном принтере печататься.

Легче и надежнее будет задать нужные картинки в качестве колонтитулов.

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

А данные в табличке в углу меняются или для всех листов одинаковые будут?
Life is what happens to us when we are planning to do something else...

Avtopic
Постоялец
Постоялец
 
Сообщения: 442
Зарегистрирован: 30.09.2005 (Пт) 17:15
Откуда: Tbilisi

Сообщение Avtopic » 30.09.2005 (Пт) 22:24

Совет как раз в ту сторону, что я хотел.
Принтер под эти критерии попадает.
Я и не подозревал что принтер такое умеет :shock:.
Поковыряюсь и о результатах обязательно сообщу. Спасибо!

Avtopic
Постоялец
Постоялец
 
Сообщения: 442
Зарегистрирован: 30.09.2005 (Пт) 17:15
Откуда: Tbilisi

Сообщение Avtopic » 30.09.2005 (Пт) 22:44

Пока писал предыдущее, пропустил совет от K.Sergey. Идея с прозрачными прямоугольниками тоже заманчивая. Текст меняется, но тоже не проблема.
Только, не дай бог эти прямоугольники останутся, пользователь сойдет с ума, по этому еще вопрос: можно ли отбавить событие выхода из режима Print Preview?

Avtopic
Постоялец
Постоялец
 
Сообщения: 442
Зарегистрирован: 30.09.2005 (Пт) 17:15
Откуда: Tbilisi

Сообщение Avtopic » 03.10.2005 (Пн) 14:21

Сделал с помощью прозрачных прямоугольников.
Плюс сверху один большой прозрачный прямоугольник с размером листа, Чтобы невозможно било работать с листом в этом режиме ,:idea:
сгруппировал все вместе, дал имя этой группе “Sp1” и на черный день добавил OnAction удаление “Sp1”.
Спасибо всем! Особое To K.Sergey. :D


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 87

    TopList  
cron