К списку форумов К списку тем
Регистрация    Правила    Главная форума    Поиск   
Имя: Пароль:
Рекомендовать в новости

Бланк в Excel (печатная форма)

Гость
0 - 19.03.2015 - 21:49
Возник интересный вопрос. Допустим есть шаблон excel - сверху шапка, снизу подвал, а посредине строки с данными. Шаблон формата А4. И есть набранная база в другом листе. Причем, в каждой строке базы может быть длинный текст (за счет чего высота строки может быть в 2-3-4.. раза больше стандартной - в зависимости от количества текста). Так вот, нажимая на кнопку "Сформировать", данные из базы переносятся в шаблон (в среднюю часть). Если в шаблоне заканчивается место, то автоматически создается новый лист (такой же шаблон) и база продолжает заполняться в спец. место в шаблоне, т.е. в среднюю часть листа. И т.д. пока не закончится база. Таким образом может сформироваться комплект листов формата А4, подготовленный к печати.
А вопрос в следующем. Как сделать так, чтобы геометрические размеры формы (шаблона) оставались неизменными независимо от количества строк? Ведь, к примеру, в сформированном комплекте листов формата A4 один лист может содержать 10 строк, а другой лист - 5 строк, а третий лист - 15 строк - все зависит от заполненности строк базы. Реально ли создать подобную реализацию?
PS На самом деле в Word это по умолчанию возможно - колонтитулы и в средине табличка, которая в зависимости от заполнения переходит на новую страницу. Но интересует именно в Excel.



Гость
1 - 20.03.2015 - 08:48
Так как формат остаётся неизменным, то задача сводится к определению необходимого количества строк для имеющегося текста. Не так сложно если формат текста един.
Гость
2 - 20.03.2015 - 11:34
В Excel тоже есть колонтитулы, и при заполнении "строками" всей страницы - они переходят на следующую страницу (правда целиком, а не построчно как в MS Word.

Ваш шаблон сделан неграмотно - правильнее не плодить Листы Excel, а продолжать документ "вниз".

Кнопка Сформировать вызывает (или содержит) VBA-код макроса, в нем нужно убрать формирование новых листов и проверить что Разрывы страниц не задаются явно.

А еще скажу что просьба попахивает перфекционизмом :-))

В современном мире и в период кризиса это ни к чему.
Гость
3 - 20.03.2015 - 18:31
1-lexabard >Да, формат текста един. Но в каждом листе будет разное количество строк. Тем не менее, суммарная высота строк (с учетом границ) должна быть одинаковая и составлять формат А4.
Цитата:
Сообщение от economist Посмотреть сообщение
В Excel тоже есть колонтитулы
Они примитивнее, чем в Word, и основную надпись (штамп в чертежах) там не нарисуешь.
Цитата:
Сообщение от economist Посмотреть сообщение
ш шаблон сделан неграмотно - правильнее не плодить Листы Excel, а продолжать документ "вниз".
Я видел два варианта подобных шаблонов: разбивка по листам и разбивка вниз. У каждого плюсы и минусы. Важно, чтобы при печати выходили листы одного размера (формат А4 с рамкой по ГОСТу).
Цитата:
Сообщение от economist Посмотреть сообщение
А еще скажу что просьба попахивает перфекционизмом :-))
Безусловно! :) Но у проектировщиков и нормоконтролёров так принято, чтобы всё было четко и по ГОСТу :) Конечно, в AutoCAD я бы без проблем организовал подобное, но требуют в Excel. Поэтому пытаюсь понять, как реализовать без косяков и кривизны эту идею. То, что валяется в инете немного не то, кривовато и т.д. Видимо, без VB здесь не обойтись. Но не силен я в нем.
Гость
4 - 20.03.2015 - 19:26
Дайте ссылку на скрипт.
Гость
5 - 20.03.2015 - 23:37
А это нужно только для печати или еще для чего-то?
Гость
6 - 20.03.2015 - 23:50
Помню были спец листы по черчению с рамками по ГОСТу, так я к тому, что может вы эти рамки отдельно в ворде напечатаете, а содержимое в экселе при печати используете листочки из п.1 =)
Гость
7 - 23.03.2015 - 12:10
AVF - если "формат А4 с рамкой по ГОСТу" - в Excel можно вставить как "Подложку" листа (ч/з Разметка страницы).

Суммарную высоту строк можно "подогнать", дейтсивтельно, только кодом на VBA. Он позволяет вычислять абсолютные координаты лев/верх. углов ячеек и менять их высоту методами:

Cells(rownum, columnnum).Left=
Cells(rownum, columnnum).Top=
Cells(rownum, columnnum).RowHeight=

что позволяет вписать в нужную высоту любое кол-во строк с любым текстом.

В ГОСТах по вузовским дипломам не содержится правила равенства высоты в текстовых таблицах на разных листах. Трамбуйте нормоконтролеров, а лучше дайте правильно взятку и посадите того козла/козу.
Гость
8 - 23.03.2015 - 12:50
ащиппка:

Cells(rownum, columnnum).EntireRow.RowHeight=


К списку вопросов






Copyright ©, Все права защищены