Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.10.2009, 12:15   #1
belst
Новичок
Джуниор
 
Регистрация: 28.10.2009
Сообщений: 2
По умолчанию Вопрос по печати

Добрый день! Подскажите, пожалуйста, следующее. Есть документ - как в нем сделать так, чтобы вывести на печать лишь интересующие ячейки на одну страницу с листа в местах, где они расположены. При печати выделенного диапазона каждая отдельный фрагмент печатается на выделенном листе...прикрепляю файл, в нем цветом выделены ячейки, который должны печататься на одной странице (другой текст не должен быть виден при печати).
Большое спасибо,
С уважением,
Егор
Вложения
Тип файла: rar CMR-тест.rar (14.8 Кб, 23 просмотров)
belst вне форума Ответить с цитированием
Старый 28.10.2009, 13:12   #2
Slavik
Форумчанин
 
Регистрация: 23.11.2008
Сообщений: 237
По умолчанию

Цитата:
каждая отдельный фрагмент
У вас хорошее чуство юмора
Предлагаю вам следующее: Вид-Разметка страницы. Добавьте там несколько страниц, выровняйте их как вы хотите, и распечайте нужные страницы (например:1,2,8,10...)
Если мой ответ вам понравился, поставьте позитивный отзыв
Slavik вне форума Ответить с цитированием
Старый 28.10.2009, 14:07   #3
Jetronic
 
Регистрация: 28.10.2009
Сообщений: 7
По умолчанию

Измени цвет ненужного текста/линий и т.п на белый цвет. И все.
Jetronic вне форума Ответить с цитированием
Старый 28.10.2009, 16:16   #4
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

1) Выделяем все желтые блоки ячеек на листе (удерживая клавишу Ctrl)
2) жмём Файл - Область печати - Задать
3) Можно переключить вид в режим разметки страницы

Вот что получаем:

EducatedFool вне форума Ответить с цитированием
Старый 28.10.2009, 16:35   #5
belst
Новичок
Джуниор
 
Регистрация: 28.10.2009
Сообщений: 2
По умолчанию

Уважаемый EducatedFool!
Спасибо, что ответили. Но при таких действиях в итоге идет печать каждого отдельного куска на новом листе. в предварительном просмотре при таком выделении отражается лишь первый абзац для печатания.
Спасибо
belst вне форума Ответить с цитированием
Старый 28.10.2009, 16:55   #6
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
Но при таких действиях в итоге идет печать каждого отдельного куска на новом листе
Тогда надо воспользоваться советом от Jetronic

В виде кода это будет выглядеть так:
Код:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
    ActiveSheet.UsedRange.Font.Color = vbWhite
    [ForPrintOut].Font.Color = vbBlack
End Sub

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    If [a1].Font.Color = vbWhite Then ActiveSheet.UsedRange.Font.Color = vbBlack
End Sub
Предварительно выделяем все желтые блоки ячеек на листе (удерживая клавишу Ctrl), и назначаем выделенному диапазону имя ForPrintOut

При печати будет виден текст только этого диапазона.
После распечатки достаточно выделить любую ячейку, чтобы цвет шрифта всех ячеек восстановился.

Пример файла: http://excelvba.ru/XL_Files/Sample__...__18-57-48.zip
EducatedFool вне форума Ответить с цитированием
Старый 14.12.2009, 17:11   #7
segail
Форумчанин
 
Регистрация: 13.06.2009
Сообщений: 691
По умолчанию

Здравствуйте.
Можно ли использовать данный код для печати, или есть более эффективные методы печати ?
Код:
ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=1
segail вне форума Ответить с цитированием
Старый 14.12.2009, 18:06   #8
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
Можно ли использовать данный код для печати
А Вы запустите этот код, - и узнаете...

Цитата:
или есть более эффективные методы печати ?
В чем измеряется эффективность метода печати?
Я-то думал, что код либо выводит данные на печать, либо не выводит.
А, оказывается, у каждого метода - свой показатель эффективности...
EducatedFool вне форума Ответить с цитированием
Старый 14.12.2009, 18:36   #9
segail
Форумчанин
 
Регистрация: 13.06.2009
Сообщений: 691
По умолчанию

В смысле не эффективности, а не будет ли сбоев при печати на других принтерах. Не знаю как будет работать код на другом принтере.
segail вне форума Ответить с цитированием
Старый 14.12.2009, 18:45   #10
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
не будет ли сбоев при печати на других принтерах
Эта команда не отправляет данные непосредственно на принтер.
(она лишь сообщает подсистеме печати ОС, что и на какой из принтеров надо вывести)

Выводом на печать занимается Windows, и, если и будут сбои, то никак не по вине макроса.

Если Windows, Office и принтеры установлены нормально - макрос одинаково хорошо отправит данные на любой из принтеров.
EducatedFool вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Аудит печати alexsvi Безопасность, Шифрование 2 25.10.2009 12:27
Вопрос насчет курсоров и печати изображения Romich Общие вопросы Delphi 10 11.06.2009 02:05
Настройка печати Максим_Леонидович Компоненты Delphi 3 26.09.2008 20:45
Качество печати Македонский Общие вопросы Delphi 2 14.01.2008 22:46
Запрет печати vserg4 Microsoft Office Word 4 26.01.2007 20:45