Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Макрос для печати Бланков после обновления данных через функцию ВПР
 
УРА! Пообедать толком не успел, а тут уже ответ(ы) готовы!
Спасибо Влад, очень помогли!!! Всё работает!

Спасибо ~PaRADoX~, но слияние (выгрузку из Excel в Word) по сути можно сделать/настроить самим - это несложно! - В уроках Николая это можно найти. Не вижу смысла в приобретении доп. пакетов за денежку. Хотя каждому, учитывая разные задачи - свое решение. В моем же случае была задача организовать печать для пользователя в самой программе Excel. Которая теперь благополучно решена! - Ещё раз ОГРОМНОЕ СПАСИБО Владу!

Ниже для "коллег по несчастью" привожу полный текст макроса.  

Код
Sub PrintInvoices()

Sheets("ИМЯ_ЛИСТА_НА_КОТОРОМ_БЛАНК(КУДА ПОДСТАВЛЯЕМ ЗНАЧЕНИЕ)").Select
 'Если не будет данного "аргумента", то нижеприведенный макрос будет работать только в том случае, если до его запуска выбран/сделан активным лист на который подставляются значения.
 'В противном случае, подставляться будут верные значения и на нужный лист, НО на печать будет выводиться активный лист, то есть на котором был пользователь до запуска макроса. 

Dim rngFrom As Range, Rng As Range

    On Error Resume Next
    Set rngFrom = Application.InputBox(prompt:="Выделите ячейки с номерам счетов, которые надо распечатать:", Title:="Откуда копируем", Type:=8).Areas(1)
    If rngFrom Is Nothing Then Exit Sub
    
    For Each cl In rngFrom.Cells.SpecialCells(xlCellTypeVisible)
    [Inv] = cl.Value
    'Inv - имя ячейки в которое подставляются значения - чтобы присвоить имя ячейке наводим на нее мышку (делаем её активной) и слева, там где строка формул есть окошко, по умолчанию в нем будет текущий номер ячейки, меняем его на необходимое нам и жмем Enter. Всё ячейка получило собственное имя (в нашем примере Inv), которое можно использовать в макросах или в формулах.
    '.SpecialCells(xlCellTypeVisible) - важный атрибут, благодаря которому на печать будут выводиться только видимые/отфильтрованные значения, а не все из выделенного диапазона. 
    
Calculate
    
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
    IgnorePrintAreas:=False

Next

End Sub
Спасибо всем и удачи!!!  
Изменено: bdenisn - 10.06.2016 14:52:55
Макрос для печати Бланков после обновления данных через функцию ВПР
 
Добрый день, форумчани и знатоки VBA!
Помогите написать макрос - уверен он будет небольшой, но весьма полезный.

Задачка вот в чем: есть два листа в книге, первый с данными, второй - бланк, который и нужно будет вывести на печать после обновления в нем данных через функцию ВПР(в данном случае vlookup2 из plex). - Файл для примера прилагаю.

Что хотелось бы получить: при запуске макроса, появляется диалоговое окно с вопросом какие счета нужно напечатать - номер счета/счетов выбираем на первом листе "DATA", в столбце B ("INVOICE").
Затем макрос подставляя значение на второй лист "Общий_счет_НДС" в ячейку O14, производит Calculation/Пересчет и выводит заполненный бланк на печать, после чего операция повторяется, пока не дойдет до последнего выбранного пользователем номера счета.

Я пытался "написать" макрос сделав симбиоз из найденных данных в интернете и на форуме, но ввиду того, что грамоте по VBA пока не обучен - ничего толкового пока из этого не вышло.
Вот попытки/старания:
Код
Dim rngFrom
As Range, Rng As Range
 
    On Error Resume Next
    Set rngFrom = Application.InputBox(prompt:="Выделите ячейки с номерам счетов, которые надо распечатать:", Title:="Откуда берем данные (подсказка: лист DATA,Cтолбец2)", Type:=8).Areas(1)
    If rngFrom Is Nothing Then Exit Sub
'????? - вот тут не знаю как прописать чтобы макрос работал, как я описал в запросе выше...
Код
Calculate
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
    IgnorePrintAreas:=False

Буду надеется, что данная задачка будет решена с вашей помощью.
Спасибо!


 
Страницы: 1
Наверх