Уважаемые форумчане! Есть задача: 1. Существует таблица с данными (в примере – лист «таблица») 2. Есть форма документа для печати (в примере – лист «форма для печати») Требуется распечатать несколько форм с данными из таблицы, указывая номер п/п. Например, в диалоге ввожу «2-4», должны распечататься три формы с данными из таблицы из строк №2,3,4.
Прошу вас , если кто встречал на этом форуме похожую задачу, поделитесь ссылкой на пост…. Или намекните, как лучше реализовать – шаблоны, макросы?... Даже не знаю, с чего начать… Я разберусь, литературу почитаю… Передо мной, наверно, не первой такая проблемка появилась, так что наверно уже есть решения… Заранее спасибо. [moder]Начните с Правил этого форума. Поправьте название темы. Потом мы перенесем ее в нужный раздел (уже перенесли - кто-то более добр, чем я), а потооооом уже появятся ответы.
Уважаемые форумчане! Есть задача: 1. Существует таблица с данными (в примере – лист «таблица») 2. Есть форма документа для печати (в примере – лист «форма для печати») Требуется распечатать несколько форм с данными из таблицы, указывая номер п/п. Например, в диалоге ввожу «2-4», должны распечататься три формы с данными из таблицы из строк №2,3,4.
Прошу вас , если кто встречал на этом форуме похожую задачу, поделитесь ссылкой на пост…. Или намекните, как лучше реализовать – шаблоны, макросы?... Даже не знаю, с чего начать… Я разберусь, литературу почитаю… Передо мной, наверно, не первой такая проблемка появилась, так что наверно уже есть решения… Заранее спасибо. [moder]Начните с Правил этого форума. Поправьте название темы. Потом мы перенесем ее в нужный раздел (уже перенесли - кто-то более добр, чем я), а потооооом уже появятся ответы.marysabel
Чем мне поможет эта функция? Не поняла... Пример прицеплен для наглядности, а в реале в таблице до 500 строк. Надо печатать 200-250 документов по форме на втором листе. То есть, надо вывести на печать форму со второго листа, где все данные будут по Иванову Ивану Ивановичу, потом распечатать такой же документ с данными по Петрову, и так далее, пока не распечатаются все документы по людям из заданного диапазона...
Чем мне поможет эта функция? Не поняла... Пример прицеплен для наглядности, а в реале в таблице до 500 строк. Надо печатать 200-250 документов по форме на втором листе. То есть, надо вывести на печать форму со второго листа, где все данные будут по Иванову Ивану Ивановичу, потом распечатать такой же документ с данными по Петрову, и так далее, пока не распечатаются все документы по людям из заданного диапазона...marysabel
Вы думаете, что в сказку попали? Нет, это вы в жизнь вляпались....
Сообщение отредактировал marysabel - Вторник, 14.04.2015, 21:47
Можно печатать и в рамках Excel. На листе Таблица в ячейках J1 и L1 вводите номера документов для печати, например 1 и 3 (печатать с 1 по 3) Можно вставить кнопку на лист и запустить макрос (в модуле листа Таблица), [vba]
Код
Private Sub CommandButton1_Click() Dim i As Long Dim Nomer As Integer Dim FoundNomer Nomer = Range("J1") Do Set FoundNomer = Columns(1).Find(Nomer, , xlValues, xlWhole) With Worksheets("форма для печати") .Range("B3") = Cells(FoundNomer.Row, 2) 'номер документа .Range("B5") = Cells(FoundNomer.Row, 3) 'ФИО .Range("B7") = Cells(FoundNomer.Row, 4) 'гражданство .Range("B9") = Cells(FoundNomer.Row, 5) 'дата .Range("B11") = Cells(FoundNomer.Row, 6) 'паспорт .PrintPreview Nomer = Nomer + 1 End With Loop While Nomer <> Range("L1") + 1 End Sub
[/vba] Для печати замените строку .PrintPreview на .PrintOut
Можно печатать и в рамках Excel. На листе Таблица в ячейках J1 и L1 вводите номера документов для печати, например 1 и 3 (печатать с 1 по 3) Можно вставить кнопку на лист и запустить макрос (в модуле листа Таблица), [vba]
Код
Private Sub CommandButton1_Click() Dim i As Long Dim Nomer As Integer Dim FoundNomer Nomer = Range("J1") Do Set FoundNomer = Columns(1).Find(Nomer, , xlValues, xlWhole) With Worksheets("форма для печати") .Range("B3") = Cells(FoundNomer.Row, 2) 'номер документа .Range("B5") = Cells(FoundNomer.Row, 3) 'ФИО .Range("B7") = Cells(FoundNomer.Row, 4) 'гражданство .Range("B9") = Cells(FoundNomer.Row, 5) 'дата .Range("B11") = Cells(FoundNomer.Row, 6) 'паспорт .PrintPreview Nomer = Nomer + 1 End With Loop While Nomer <> Range("L1") + 1 End Sub
[/vba] Для печати замените строку .PrintPreview на .PrintOutKuzmich