powered by simpleCommunicator - 2.0.39     © 2025 Programmizd 02
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Раздумья о печати конвертов в EXCEL
9 сообщений из 9, страница 1 из 1
Раздумья о печати конвертов в EXCEL
    #36962649
Valll
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Собрался я было сделать макрос массовой печати конвертов. Да, знаю в Ворде есть такая приблуда - даже пользовался как-то. Но, сам Ворд черпает базу данных из Экселя, вообщем как-то коряво это. Думал сделать всё в Экселе. В результате получилась какая-то хрень... код показывать не буду - особо нечего. Но что получилось...

Печать конвертов (как я понял) возможна 2-мя способами:

1. Каждый конверт - этот отдельный файл. Он становится в очередь на принтер, тот начинает печатать... Это в теории. На практике. Как только закончился цикл (неважно сколько) формирования файлов идёт попытка вывода на печать и тут же ошибка принтера... Вставил задержку перед отправкой на печать - вроде нормально для первого, но если с последующим прозеваешь - опять ошибка... И конечно скорость при этом медленная. Вообщем - засада.

2. Способ. Делать формат листа в Экселе строго по размеру печатаемого конверта и текущий конверт (с подставленными данными) копировать на другой лист ниже предыдущего... В результате мы получим таблицу, в которой через определённый интервал находятся конверты с уже набранными адресами. А потом даём команду "На печать" и принтер воспринимает это всё КАК ОДИН ФАЙЛ со многими страницами и печатает... Это в теории. На практике - сил не хватило - надорвался... ловить поля, чтобы это совпадало с размером конверта, да ещё и на одном листе... Но чувствую здесь надо копать.

Вообщем, если есть у кого интерес и мысли поделитесь. А то может путаю что и всё просто?
...
Рейтинг: 0 / 0
Раздумья о печати конвертов в EXCEL
    #36962728
f
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почему не сделать все, например, в Access?
...
Рейтинг: 0 / 0
Раздумья о печати конвертов в EXCEL
    #36962762
Valll
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почему не в Аксессе? Если честно - из-за личный предпочтений... Наверное такое можно сделать в чём угодно, но как-то к Экселю я прирос...
...
Рейтинг: 0 / 0
Раздумья о печати конвертов в EXCEL
    #36962820
Valll,
доработайте способ 2. Всего-то и надо, что
2 листа: на одном шаблоны (сотня, две, три ...) конвертов (под размер печатаемого конверта подгоняется не лист, а страница); на втором- данные для заполнения + 3 процедуры: очистка шаблонов, заполнение шаблонов, отправка заполненных шаблонов на печать.
Возможны варанты. Например, вместо очистки и заполнения шаблонов по месту, копировать лист с шаблонами в новую книгу и заполнять шаблоны там.
...
Рейтинг: 0 / 0
Раздумья о печати конвертов в EXCEL
    #36965018
Valll
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да я тоже всё более ко 2-му варианту тяготею. Силами соберусь - попробую. Проблема правда вот в чём... Конверт (образец, где идёт заполнение) имеет объединённые ячейки для ИНДЕКСА (он ведь большой) и при копировании конверта на другой лист все форматы расползаются... Я уж и строки копировал и ячейки..., и вставлял только форматы и только значения - что-то криво получалось.

Наверное надо попробовать такой вариант: на листе для печати за ранее наштамповать 1000 бланков писем (больше наверное перебор...) и макросом сразу заполнять очередной бланк на этом листе ничего не копируя с образца. Единственно... я запланировал 10 типов конвертов... по 1000 штук - мама-мия!

Может кто чего ещё посоветует?
...
Рейтинг: 0 / 0
Раздумья о печати конвертов в EXCEL
    #36965210
Valll,
отформатировали диапазон ячеек (например [A1:BZ80]) для типа конверта "TransAvia", скопировали 999 раз, - делов-то...

Лист1 процедура STARTER()
...
Рейтинг: 0 / 0
Раздумья о печати конвертов в EXCEL
    #36965306
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valll,

попробуй через ворд
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
'' тип 2
''From:   My Company, Inc
''Index:12345
''Address:1260, Universal st., Arivo, Mexico
''                Your advertising can be  here
''
''
''                                To:
''                                Index
''Address:

Sub m101119_0827()

Dim s1, s2, j1, j2, j3, j3k
s1 = Excel.ActiveWorkbook.Path
Dim ws As Worksheet
Set ws = Excel.ActiveSheet
'ФОРМИРОВАНИЕ ФАЙЛА ДЛЯ WORD
'---------------по типу конверта
'---------------при необходимости требуемое количество копий
'---------------можно добавить дату для уникальности имени
'можно сразу указать размер бумаги и ориентацию
'достаточно точно расположить from \to

s2 = s1 & "\k" & ws.Range("e1") & ".doc"
Open s2 For Output As # 1 
Print # 1 , "<html>"


Print # 1 , "<meta http-equiv=""Content-Type"" content=""text/html; charset=windows-1251"">"
j1 =  1 
j2 =  0 
Do While j2 <  1000  And j1 <  65000 
j1 = j1 +  1 
If ws.Cells(j1,  5 ) = ws.Cells( 1 ,  5 ) Then
j3 =  0 
j3k = IIf(ws.Cells(j1,  4 ) & "" = "",  1 , ws.Cells(j1,  4 ))

Do While j3 < j3k
j3 = j3 +  1 

j2 = j2 +  1 
Debug.Print j1, j2, j3

If j2 >  1  Then

Print # 1 , "<p align=right><font color=red>-"; Chr( 12 ), j2; "</FONT></P>"
End If
Print # 1 , "<table border=0>"
Print # 1 , "<tr>"
Print # 1 , "<th align=right>From:"
Print # 1 , "<td colspan=2>My Company, Inc"
Print # 1 , "<tr>"
Print # 1 , "<th align=right>Index:"
Print # 1 , "<td>12345"
Print # 1 , "<tr>"
Print # 1 , "<th align=right>Address:"
Print # 1 , "<td colspan=2>1260, Universal st., Arivo, Mexico"
Print # 1 , "<tr>"
Print # 1 , "<th "
''''''''''''''''''''''''''''''''
Print # 1 , "<tr>"
Print # 1 , "<td> "
Print # 1 , "<tr>"
Print # 1 , "<td> "


Print # 1 , "<th align=right>To:"
Print # 1 , "<td >"; ws.Cells(j1,  1 )
'''''''''''''''''''''''''''''''''''
Print # 1 , "<tr>"
Print # 1 , "<td>"

Print # 1 , "<th align=right>Index:"
Print # 1 , "<td>"; ws.Cells(j1,  2 )
Print # 1 , "<tr>"
Print # 1 , "<td>"

Print # 1 , "<th align=right>Address:"
Print # 1 , "<td >"; ws.Cells(j1,  3 )
Print # 1 , "</table>"
Loop
End If

Loop
Close # 1 
End Sub


...
Рейтинг: 0 / 0
Раздумья о печати конвертов в EXCEL
    #36965759
Valll
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пробуй камнемValll,
отформатировали диапазон ячеек (например [A1:BZ80]) для типа конверта "TransAvia", скопировали 999 раз, - делов-то...

Лист1 процедура STARTER()

Спасибо! Буду ковырять...

А на счёт Ворда, я хочу без него.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Раздумья о печати конвертов в EXCEL
    #39576330
Почтум.рф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попробуй почтум.рф
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Раздумья о печати конвертов в EXCEL
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]