Новости:

Теперь на форум можно залогиниться / зарегистрироваться с помощью ВКонтакте. Уже существующие пользователи могут связать свою учетную запись с аккаунтом ВКонтакте одним кликом в профиле пользователя http://forum.msexcel.ru/index.php?action=profile;area=account

Главное меню

Выборочная печать данных на отдельных страницах

Автор gella2002, 18.03.2009, 14:53

« назад - далее »

gella2002

Здравствуйте!
Помогите, пожалуйста, со следующей проблемой: есть таблица клиентов с адресами и прочей информацией. Название фирмы клиента и его адрес находятся в разных ячейках. Каким образом можно распечатать данные о названии фирмы плюс адрес (типа "Куда:", "Кому:"), но так, чтобы на каждом отдельном листе бумаги на одном и том же месте (внизу справа) было название и адрес только одного клиента, а на следующем листе название и адрес другого и т.п.? Потом эти листы вкладываются в конверты с окошками.

Мне, как чайнику, пришло в голову сделать на отдельном листе в excel сделать ссылки на ячейки, содержащие эти данные (Куда: =A1, Кому: =А4), постранично, но клиентов очень много, они добавляются и удаляются, и каждый раз это переделывать...наверняка есть более простой универсальный способ.

Спасибо!


GWolf

Уважаемая gella2002! Любая задача - вершина! Путей к ней множество. Предложу свой:

Стоя на листе с данными об адресах клиентов Alt+F11 - попадаем в модуль листа. Здесь набираем:
Sub AdrecToPost()
   'здесь пишем код обработки Вашего списка в цикле Do ... Loop
   'а в теле цикла
   
      'открываем Word-овский файл-шаблон с метками
      'и в него, в позиции на листе отмеченные метками пишем нужные нам значения
      'отправляем Word-овский документ на печать
      'закрываем Word-овский документ без сохранения
   И так по кругу, пока некончатся данные
End Sub

Если такой вариант подходит и есть вопросы - пишите.
Путей к вершине - множество. Этот один из многих!

gella2002

Спасибо за ответ, только чтобы эту процедуру написать самостоятельно, у меня знаний, к сожалению, не хватит пока. А можете для совсем тупых и кто в танке написать подробнее, начиная с места "...файл-шаблон с метками"? :) Шаблон - это вот прям шаблон, который .dot?

GWolf

Сегодня постараюсь выложить реализацию Вашей задачи.
Путей к вершине - множество. Этот один из многих!

ник

Уважаемая gella2002
если я правильно понял-
/чтобы на каждом отдельном листе бумаги на одном и том же месте (внизу справа) было название и адрес только одного клиента/
/(Куда: =A1, Кому: =А4)/
то в данном случае есть простое решение
на чистом экс листе начиная с первой строки ставим ссылки на таблицу клиентов /(Куда: =A1, Кому: =А4)/ затем протягиваем формулы на количество строк равное кол клиентов (должна же быть какая-то закономерность заполнения таблицы клиентов)
в режиме -преварительного просмотра- перемещаем поля так чтобы на одном листе отображалась только одна строка в нужном для вас месте
дальше можно распечатывать листы

GWolf

Путей к вершине - множество. Этот один из многих!

gella2002

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

послушайте, может быть, вы мне поможете еще с одной штукой? :)
там, в этом же файле, под каждой строкой, отведенной под одного клиента, есть еще несколько строк с группировкой. Суть данных в следующем:
строка 1: ООО "Рога и копыта" / адрес / телефон / веб-сайт / комментарии
группировка: ген.директор Пупкин В.В. / email / мобильный
                     менеджер Иванов И.И. / e-mail / мобильный
и так далее, на каждую компанию. Везде разное кол-во строк.
Мне эта схема данных не нравится с самого начала, а сейчас для того, чтобы нормально адреса печатать, она тем более не подходит. Мне так представляется, что нужна какая-то форма для удобной работы. Как вы считаете лучше сделать - все данные по одному клиенту на одном листе в одну строчку сделать или эти уточнения по персоналиям на отдельный лист вынести с каким-нибудь там кодом для каждого клиента (по аналогии как в access)? или это геморно? может и здесь есть какое-то простое решение?

GWolf

#7
Цитата: gella2002 от 21.03.2009, 00:55
вы гений эксельной мысли :) спасибо! я, правда, зашла на форум не под паролем и поэтому не сразу увидела ссылку на файл, ну, он мне и не понадобился - я все сделала и так. оказался еще нюанс - нужно, чтобы высота строки была одинаковая везде (просто адреса-то разные, у кого просто а/я, а у кого там сто тысяч разных координат), в общем, спасибо вам.

за "гений ..." спасибо  :-*, но я только учусь! ;D ;D ;D

Цитата: gella2002 от 21.03.2009, 00:55
послушайте, может быть, вы мне поможете еще с одной штукой? :)
там, в этом же файле, под каждой строкой, отведенной под одного клиента, есть еще несколько строк с группировкой. Суть данных в следующем:
строка 1: ООО "Рога и копыта" / адрес / телефон / веб-сайт / комментарии
группировка: ген.директор Пупкин В.В. / email / мобильный
                     менеджер Иванов И.И. / e-mail / мобильный
и так далее, на каждую компанию. Везде разное кол-во строк.
Мне эта схема данных не нравится с самого начала, а сейчас для того, чтобы нормально адреса печатать, она тем более не подходит. Мне так представляется, что нужна какая-то форма для удобной работы. Как вы считаете лучше сделать - все данные по одному клиенту на одном листе в одну строчку сделать или эти уточнения по персоналиям на отдельный лист вынести с каким-нибудь там кодом для каждого клиента (по аналогии как в access)? или это геморно? может и здесь есть какое-то простое решение?


Заполните Ваши дополнительные данные в мой пример и ... я Вам помогу. ;)
Соответственно направте его после этого мне ;D

чуть позже:
по поводу изменения схемы данных. Вопрос в том, что если кроме Вас еще кто то работает с этой информацией, то наверное несовсем удобно будет менять эту схему!?
хотя есть варианты: если по одной и той же компании имеет место изменение набора уточняющих данных во времени. И нужно отслеживать динамику этих изменений (например: часто ли компания меняет свои расчетные счета и много ли их у нее, или часто ли меняются в компании те или иные менеджеры и т.п.), тогда имеет смысл сделать это хранилище многоуровневым ... А как, я Вам расскажу, если вы ответите Да на вопрос о динамике. Просто иначе нет смысла строить уровни - вашу проблему об удобстве вывода на печать можно решить проще!
Путей к вершине - множество. Этот один из многих!

gella2002

Я заполнила, см. там группировки сделаны.
За процедуру печати спасибо, изучу-запомню :) А вообще там если печатается, то все клиенты сразу, не по одному.

Менять файл можно как угодно, люди с ним работают разные, но если он сделается удобнее - значит, будут работать с новой версией. Отслеживать динамику изменений не нужно, основная функция файла - быстрый справочник, как телефонный, так и по другим данным, например, есть графа "договор", вот смотреть, заключен он или нет, и до какой даты действует.

GWolf

Цитата: gella2002 от 23.03.2009, 13:15
Я заполнила, см. там группировки сделаны.
За процедуру печати спасибо, изучу-запомню :) А вообще там если печатается, то все клиенты сразу, не по одному.

Менять файл можно как угодно, люди с ним работают разные, но если он сделается удобнее - значит, будут работать с новой версией. Отслеживать динамику изменений не нужно, основная функция файла - быстрый справочник, как телефонный, так и по другим данным, например, есть графа "договор", вот смотреть, заключен он или нет, и до какой даты действует.


Данные взял - сделаю ...
Постараюсь учесть возможность выборочной печати. (Например, если дата вывода на печать неуказана, а в ячейке стоит "**" (две звездочки), то печатать!

А жаль, динамика - это организация с много - листовой, - уровневой структурой. Может еще где "прикрутите" ;D
Путей к вершине - множество. Этот один из многих!

gella2002

насчет печати, там можно воспользоваться простым решением, которое предлагают выше - про перемещение полей и не заморачиваться с программированием.

спасибо вам большое!

GWolf

Путей к вершине - множество. Этот один из многих!

gella2002


GWolf

Путей к вершине - множество. Этот один из многих!