Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 3 След.
Макрос печати по условию
 
Sanja, Благодарю. Работает.
Ну, с отслеживанием добавлений новых листов, не предназначенных к печати, можно смириться: разок добавил в макрос и забыл.
Спасибо!
______________________
ан, не работает.
при перемещении листа "остекление" между печатаемыми листами, макрос печатает только первые листы, которые до "остекления".
Ну, это, наверное, уже другая задача.
Спасибо.
Изменено: MrBrown - 19 Апр 2019 12:38:36
Макрос печати по условию
 
Убрал именованную ячейку "first".
Осталось сформировать условие наличия на листе ячейки "МЭМ":
Код
Sub Print_Area()
  Dim wb As Workbook: Set wb = ActiveWorkbook
    Dim Ws As Worksheet
    Dim Ma, rngEnd As Range
Application.ScreenUpdating = False

For Each Ws In wb.Worksheets

    Set Ma = Range("MEM").MergeArea
    'MsgBox Ma.Address
    Set rngEnd = Ma.Cells(Ma.Rows.Count, Ma.Columns.Count)
    'MsgBox rngEnd.Address
    ActiveSheet.PageSetup.PrintArea = Range("A1", rngEnd).Address
    

'If (условие наличия на листе ячейки с именем "MEM" или содержанием "МЭМ") Then
     'Ws.PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False
' End If
Next
Application.ScreenUpdating = True

End Sub
Макрос печати по условию
 
Мда, трусы с граблями - это не вариант.

Посоветуйте, как сделать.
Задача простая:

печатать всё внутри чертёжной форматки.
Левый верхний угол - первая ячейка.
В нижнем правом углу всегда стоит "МЭМ". Но лучше этот угол форматки определить как-то по-иному: мало ли, наименование фирмы поменяется.

И не печатать то, что в ячейках вне форматок (для проверки проставлены несколько цифирь).
И не печатать другие листы, где нет форматок (для проверки вставлен лист "остекление").

Как-то так...

p.s. да, ещё: количество строк и столбцов, в зависимости от контента, может меняться.
Поэтому нижний правый угол форматки нельзя привязывать к конкретным ячейкам.
Изменено: MrBrown - 19 Апр 2019 11:29:28
Макрос печати по условию
 
И как теперь убрать из книги, оставив только на листах?
Может из-за этого и не работает.
Макрос печати по условию
 
А можно, наверное, вообще исключить имя первой ячейки?
Просто задавать диапазон печати от Cells(1,1) до ячейки с Name="MEM".
p.s. "first" на книгу я не ставил. Как-то само проставилось.
Изменено: MrBrown - 19 Апр 2019 11:13:05
Макрос печати по условию
 
Как-то так...
Макрос печати по условию
 
Поставил условие в начало цикла.
Код
For Each Ws In wb.Worksheets
If Ws.Cells(1, 1).Name = "first" Then
Печатает правильно, но в конце появляется окно отладки макроса.

Макрос печати по условию
 
Так печатает только последний лист с поименованной ячейкой.
Макрос печати по условию
 
Код
Sub Print_Area()
  Dim wb As Workbook: Set wb = ActiveWorkbook
    Dim Ws As Worksheet
    Dim Ma, rngEnd As Range
Application.ScreenUpdating = False

For Each Ws In wb.Worksheets

    Set Ma = Range("MEM").MergeArea
   
    Set rngEnd = Ma.Cells(Ma.Rows.Count, Ma.Columns.Count)
   
    ActiveSheet.PageSetup.PrintArea = Range("first", rngEnd).Address
    
    If Ws.Cells(1, 1).Name = "first" Then Ws.PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False

Next
Application.ScreenUpdating = True


End Sub
Пожалуйста:
Макрос в цикле устанавливает на листах область печати, ограниченную самой первой ячейкой ("first") и нижней правой ("MEM").
А печатать не желает. То есть если без условия If-Then, то печатает, но вообще все листы, а мне надо только те, у которых есть "first".
____________________
p.s. а, может быть, сделать условие существования поименованной ячейки, типа exist?
Сейчас попробую....  
Изменено: MrBrown - 19 Апр 2019 10:04:30
Макрос печати по условию
 
Здравствуйте!
Строка из цикла по листам книги:
Если первая ячейка на очередном листе Ws поименована как "first", то - печатать.
Почему не работает?
Код
Dim Ws As Worksheet
.... 
If Ws.Cells(1, 1).Name = "first" Then Ws.PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False
Изменено: MrBrown - 19 Апр 2019 09:50:45
Увеличить область печати на один столбец вправо и на пару строк вниз
 
Здравствуйте!
Есть пара поименованных ячеек:
Левая верхняя - "first", правая нижняя - "end".
Такой код :
Код
ActiveSheet.PageSetup.PrintArea = Range("first", "end").Address
прекрасно работал бы, если бы ячейка "end" была простой, а она в действительности состоит из объединённых ячеек.
Ну и получается вот такая область печати, как на приложенной картинке. Угловой штамп не входит полностью в область печати.
Попытался сделать что-то вроде:
Код
ActiveSheet.PageSetup.PrintArea = Range("first", Cells(Cells.Name = "end").Offset(1, 2)).Address
Ан не получилось. Другие танцы с бубном - тоже.
Как изменить строчку кода, чтобы область печати увеличилась на столбец вправо и на пару строк вниз?
Догадываюсь, что нужно использовать MergeArea, но как - ума не приложу.
Спасибо.
_______________________________
Сам нашёл:
Код
Set Ma = Range("end").MergeArea
'MsgBox Ma.Address
Set rngEnd = Ma.Cells(Ma.Rows.Count, Ma.Columns.Count)
'MsgBox rngEnd.Address
ActiveSheet.PageSetup.PrintArea = Range("first", rngEnd).Address
Изменено: MrBrown - 27 Мар 2019 12:59:03
Скомбинировать накопительную диаграмму с графиком
 
Последний вопрос: как убрать цифры из легенды "Температура2......"?
___________________
Сделал сам.
p.s. Андрей быстрее... :)
Изменено: MrBrown - 11 Янв 2019 14:05:10
Скомбинировать накопительную диаграмму с графиком
 
Андрей VG, замечательно!, восхитительно!
Мне остаётся только [до предела обнаглеть и] попросить вставить ещё одну линию "Температура2", так как у меня - ну не получается! Не могу уяснить комбинирование диаграмм.
Пожалуйста...
_______________
Через пять минут: вроде, получилось сделать самому.. Что-то начинаю понимать.
___________________
Да, получилось!

Вопрос решён. Моя благодарность всем, принявшим участие в решении.
Отдельная - Андрею.
Изменено: MrBrown - 11 Янв 2019 13:48:41
Скомбинировать накопительную диаграмму с графиком
 
vikttur,
Цитата
Название тоже Дмитрий предложил...
Надеюсь, он не обидится на меня за "спасибо" не по адресу. :)
Дмитрий(The_Prist) Щербаков,  увы, не годится.
Теперь линейный график не хочет вставать как надо - узлами по границам слоёв.
Пойду гуглить, может что при помощи VBA получится...
Скомбинировать накопительную диаграмму с графиком
 
Дмитрий(The_Prist) Щербаков, благодарю за файлик, сейчас попробую разобраться.
Ув. модератор, также моя благодарность за изменение названия темы..
Сам я не нашёл способа, как менять тему, потом погуглил и нашёл такое: тынц
Скомбинировать накопительную диаграмму с графиком
 
Линейчатая с накоплением, и линейный график с узлами.
Вот, которая "с накоплением", не получается, как отдельно расположенная правая диаграмма (или здесь: тынц )
Прошу помощи.
_______________________
Добавляю: в идеале должно получаться, как Вар1 или Вар2
(отрисовал в автокаде, без цвета, но это не важно)
Изменено: MrBrown - 11 Янв 2019 11:43:57
Возможно ли повернуть диаграмму по оси Z?
 
Дмитрий(The_Prist) Щербаков, получилось, благодарю.
Возможно ли повернуть диаграмму по оси Z?
 
Андрей VG, прошу извинить, но - "не догоняю", как получилось построить горизонтальную диаграмму?
Сам пробую и не нахожу "нужной кнопочки".
Подскажите, пожалуйста.
Возможно ли повернуть диаграмму по оси Z?
 
Андрей VG, спасибо! Я как-то не увидел в обилии видов диаграмм нужную.
Полдела сделано. Теперь буду накладывать линейные диаграммы.
Возможно ли повернуть диаграмму по оси Z?
 
Здравствуйте!
Возникла необходимость в Excel автоматизировать отображение стены здания в разрезе с указанием слоёв:
штукатурка-кирпич-утеплитель-кирпич-штукатурка.
Это как один вариант из множества.
Необходимо, чтобы диаграмма располагалась, с вертикальными слоями (вложение "Диагр1")
А она работает только как ("Диагр2").
Есть ли варианты поворота картинки как надо? Пусть даже неправильным, "кривым", способом.
Работа в фотошопе исключается, так как диаграмма должна динамически меняться при изменении толщины/добавлении/убавлении количества слоёв.
А, может быть, существует какой-нибудь макрос по моей теме? Подкиньте ссылку, пожалуйста.
Спасибо.
p.s. Office 2016.
p.p.s в последующем на этот "пирог" будут накладываться линейные диаграммы распределения температуры по слоям для определения местонахождения точки росы (последнее написал для понимания тем, кто разбирается в теплотехнических расчётах зданий).
И ещё: не обязательно диаграмма должна быть объёмной. Можно и 2D.
--------------------------------------------
Только что пришла мысль: может быть, возможно не поворачивать диаграмму, а изменить толщину столбцов согласно данным, при одинаковой их высоте.
Изменено: MrBrown - 11 Янв 2019 09:18:25
Как найти верхнюю правую ячейку в обрамлённом рамкой диапазоне?
 
Inexsu, перевёл.
С наступающим Новым годом!
Автоматическая простановка страниц и формирование оглавления
 
Вопрос решён здесь
Как найти верхнюю правую ячейку в обрамлённом рамкой диапазоне?
 
Юрий М, ОК, прошу почистить мои посты про колонтитулы. Вы правы.
Inexsu,  Номер Яндекс-кошелька в Вашем профиле - действующий?
Я хотел бы отблагодарить Вас разумной денежкой. Считаю, что Ваша помощь здесь - рабочий комплект макросов с нуля, - на уровне услуги, а не просто подсказка.
Как найти верхнюю правую ячейку в обрамлённом рамкой диапазоне?
 
Inexsu, Посмотрел код.
Столько функций!!!
Да мне ни в жисть такое не сваять.
Inexsu,  "Я внутренне Вами просто нецензурно восхищаюсь".
Благодарю за этот новогодний подарок.
Как найти верхнюю правую ячейку в обрамлённом рамкой диапазоне?
 
Юрий М, см. пост #6.
Как найти верхнюю правую ячейку в обрамлённом рамкой диапазоне?
 
Михаил Лебедев, а как создать верхний и нижний колонтитулы, как в моём файле?
Чтобы вверху была заштрихованная область с адресом, номер страницы.
А внизу и слева - стандартные таблицы углового штампа?
Просто номер страницы, дату я умею вставлять, а вот как вставить в виде таблицы?
Изменено: MrBrown - 30 Дек 2018 18:59:12
Как найти верхнюю правую ячейку в обрамлённом рамкой диапазоне?
 
ocet p, не понял.
Inexsu, приложил.
Sanja, Будет очень много листов.
Делается проект. Десяток разделов. Предлагается так:
Лист - раздел.
В разделе по 20-60 страниц.
В приложенном файле на первом листе размещены три страницы (для примера).
Вот мне и нужно, чтобы мой любимый Ёксель-моксель макросом определил синие границы и проставил в верхней правой ячейке каждой области номер страницы по восходящей.
Здесь, на первом листе - только три страницы для примера, на втором листе нумерация продолжается: 4, 5, 6 и т.д.
Подчеркну ещё раз: пользователь может добавлять/удалять строки и столбцы, и даже целые страницы, и после этого макрос вновь проставлял бы страницы уже в новых верхних правых ячейках.
p.s. границы я сделал синими из соображения указать макросу, в какой области искать и нумеровать ячейку.
Подскажите способ лучше.
Изменено: MrBrown - 30 Дек 2018 18:01:44
Как найти верхнюю правую ячейку в обрамлённом рамкой диапазоне?
 
Здравствуйте!
Дан прямоугольный диапазон ячеек, ограниченный рамкой, допустим, синего цвета (простыми словами - "форматка А4").
Точнее, их таких - несколько на листе. Расположены беспорядочно по всему листу.
Число строк и столбцов в каждой форматке в ходе работы пользователь может менять - удалять и вставлять дополнительные.
Как сделать, чтобы при запуске макроса, в верхнюю правую ячейку каждой форматки автоматически вставлялись номера страниц?
Спасибо.
p.s. точнее, я бы и сам разобрался со вставкой страниц (возможно), да только ума не приложу: как найти эту верхнюю правую ячейку циклом в каждой форматке.
(а также: как объединить все ячейки верхней строки кроме правой ячейки).
Как заставить программу определить границы всех форматок на листе?
p.p.s так как кроме общей границы, в каждой форматке есть ещё линии углового штампа, то я специально выделил нужные (внешние) границы синим.
Автоматическая простановка страниц и формирование оглавления
 
Здравствуйте!
Всех с наступающим Новым годом! Пусть новогодний поросёнок (как-никак, год свиньи) обернётся для каждого полной копилкой в новом году!
__________________________
Прошу помощи у знатоков уделить моей проблеме часть своего досуга.
Есть прекрасный макрос, автоматом формирующий оглавление с нумерацией страниц очередного раздела (листа).
Исходный файл с макросом взят отсюда
В приложенном файле - мои "хотелки", а тут - вопросы, а именно:
1. Для чего нужен макрос Sub Printed_Pages_Count()? Я его удалял, и без него второй макрос прекрасно формирует оглавление.
2. Как отвязать наименование листа на его закладке от оглавления? Ну, чтобы наименования разделов в оглавлении брались из верхней левой ячейки каждого листа. В приложенном файле я организовал это формулой, но это не то, нужен именно макрос.
3. Как автоматом (макросом) проставить номера страниц в верхних правых ячейках каждой страницы (номера страниц  показаны в листах красным в жёлтых ячейках)? Причём, при изменении ширины/высоты столбцов/строк, а также при их удалении/добавлении, - номера страниц также перемещались бы в новую правую верхнюю ячейку относительно границ печатной области каждой страницы.
Я так думаю, нужно в макросе задействовать понятие границ страницы (или печатной области страницы), только вот не знаю, откуда это взять и как применить. Прошу помощи. Может у кого-то уже есть подобное. Или подкиньте ссылочку про это.
Спасибо.
p.s. При новом открытии файла границы печатной области страниц пропали, но, надеюсь, там всё понятно.
p.p.s Забыл: существующий макрос добавляет страницы, с которыми соприкасаются ячейки с нумерацией. Как этого избежать?
Изменено: MrBrown - 26 Дек 2018 12:31:41
Какой формулой правильно вставить нумерацию страниц в одной из ячеек?
 
Сергей, это понятно, только я "ленюсь" на каждом листе вбивать в формуле 'Лист2', 'Лист3' и т.д..
Хотелось бы сделать своеобразную рекурсию, что ли, чтобы формула сама копировалась бы при создании нового листа копированием.
Ну, в принципе, мне и первые решения форумчан подойдут.
Всем спасибо за участие!
Страницы: 1 2 3 След.
Наверх