Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Можно ли сделать динамическую область печати?
 
Здравствуйте. Может кто поможет... При задании области печати в Диспетчере имен появляется новое имя "Область_печати" и ему присваивается выделенный диапазон, например:
Код
=Лист1!$A$1:$W$53

Если задать диапазон области печати с условием, например, так:
Код
=ЕСЛИ(A1=1;Лист1!$A$1:$W$53;Лист1!$A$54:$W$109)

то формула работает, но пересчитывается только с текущими переменными и преобразуется в статическую, в нашем случае это
Код
=Лист1!$A$1:$W$53

То же самое происходит если, например, в А2 прописать:
Код
=ЕСЛИ(A1=1;Лист1!$A$1:$W$53;Лист1!$A$54:$W$109)

и "=А2" добавить в "Область_печати"

Можно ли сделать так чтобы в "Область_печати" была формула с условием? Если нет, то может быть с помощью макроса можно сделать принудительное назначение области печати по формуле, которая находится в ячейке А2? Заранее спасибо!
 
А какое именно условие?
 
Любое, в моем примере Если А1=1, то Область_печати=A1:W53; иначе Область_печати=A54:W109
Главное, чтобы при изменении значения определенной ячейки автоматически изменялась область печати. Желательно чтобы условий можно было сделать несколько.
 
Код
'В модуль листа (правый клик по ярлычку листа - Исходный текст).
'Макросы должны быть разрешены!

Private Sub Worksheet_Change(ByVal Target As Range)
Dim s$
If Not Intersect(Target, Range("A1")) Is Nothing Then
  If Range("A1") = 1 Then
    s = "A1:W53"
  Else
    s = "A54:W109"
  End If
  Me.PageSetup.PrintArea = s
End If
End Sub
 
Казанский, спасибо, возьму ваш пример за основу
 
если несколько вариантов, пример
Код
Select case Range("A1")
case 1: s = "A1:W53"
case 2: s = "A54:W109"
case 3: s = "A110:W145"
end select
 
Всем привет. Понадобился мне аналогичный макрос, как в этой теме, только с другим условием. Казанский, или V, прошу откликнуться. Ну, или еще кто захочет.
В книге есть листы под названием ТК5, ТК6, ТК7, ТК8 и т.д. Они все одинаковые.
Условие 1. Когда я открываю книгу на всех листах область печати задана А1:Т29. (сейчас так и настроено)
Условие 2. Например, я начал заполнять лист ТК5. Если, в любой ячейке С32:С52 я набрал любой символ (цифра, текст -неважно), то область печати должна расшириться до А1:Т52.
Условие 3. Далее.  Если, в любой ячейке С55:С75 я набрал любое значение, то область печати должна расшириться до А1:Т75.
И так на каждом листе ТК(номер) макрос должен работать независимо от других листов.
Вручную раздвигать каждый раз запарно.
Напишите, пожалуйста, макрос для примера на одном листе. В другие я сам накопирую.
На файл даю ссылку, так как весит около 2,5мб. https://yadi.sk/d/bG25MR283TURp9
Изменено: maxrus163 - 21 Мар 2018 13:59:34
 
Цитата
maxrus163 написал: файл...  весит около 2,5мб
Подумайте сами: кому-то интересно копаться в Ваших мегабайтах? Кто-то горит желанием бегать по ссылкам?

Ознакомьтесь с правилами форума.
Создайте небольшой файл-пример, прикрепите к сообщению.
 
vikttur, оставил один лист в книге.
Страницы: 1
Читают тему (гостей: 1)