здравствуйте. у меня есть макрос для печати листов: [vba]
Код
Private Sub Макрос8() Application.ScreenUpdating = False Sheets("журнал постановлений").Visible = True Sheets("журнал постановлений").Select ActiveSheet.PrintOut copies:=1 Sheets("журнал постановлений").Visible = True Sheets("форма").Select Application.ScreenUpdating = True End Sub
[/vba] Возникла необходимость сделать, что бы на печать выводились только страницы, на которых в ячейках E8-E... есть текст. Я попробовал добавить в макрос строку Range("Е2:E1000") = Range("Е2:E1000").Value, но понял, что это мне не под силу. Строку вставлял после Sheets("журнал постановлений").Select Одним словом, моя попытка скопировать с похожего варианта успехом не увенчалась.
Еще возник момент момент, когда печатается, то на второй стороне листа (двухсторонняя печать) страница выходит к верх ногами (надеюсь что объяснил) Как вариант, может возможно сделать так, что бы: 1.1. печаталось не с двух сторон. 1.2. если печаталось с двух сторон, то по нормальному
прикрепил файл 1. заполняется страница "дела". 2. страница "журнал постановлений", заполняется со страницы дела. 3. на странице форма кнопка печати.
заранее спасибо за помощь.
здравствуйте. у меня есть макрос для печати листов: [vba]
Код
Private Sub Макрос8() Application.ScreenUpdating = False Sheets("журнал постановлений").Visible = True Sheets("журнал постановлений").Select ActiveSheet.PrintOut copies:=1 Sheets("журнал постановлений").Visible = True Sheets("форма").Select Application.ScreenUpdating = True End Sub
[/vba] Возникла необходимость сделать, что бы на печать выводились только страницы, на которых в ячейках E8-E... есть текст. Я попробовал добавить в макрос строку Range("Е2:E1000") = Range("Е2:E1000").Value, но понял, что это мне не под силу. Строку вставлял после Sheets("журнал постановлений").Select Одним словом, моя попытка скопировать с похожего варианта успехом не увенчалась.
Еще возник момент момент, когда печатается, то на второй стороне листа (двухсторонняя печать) страница выходит к верх ногами (надеюсь что объяснил) Как вариант, может возможно сделать так, что бы: 1.1. печаталось не с двух сторон. 1.2. если печаталось с двух сторон, то по нормальному
прикрепил файл 1. заполняется страница "дела". 2. страница "журнал постановлений", заполняется со страницы дела. 3. на странице форма кнопка печати.
Видимо, я не совсем правильно поняла задачу. Проверьте так. Что касается второго вопроса, то надо смотреть настройки параметров принтера. Там есть галка Поворот на 180 градусов, её надо снять
Видимо, я не совсем правильно поняла задачу. Проверьте так. Что касается второго вопроса, то надо смотреть настройки параметров принтера. Там есть галка Поворот на 180 градусов, её надо снятьPelena
Pelena, спасибо. вроде бы все работает, даже лучше чем я думал - выборка на печать идет только тех строк которые заполнены даже по середине таблицы. Я перенес Ваш макрос в свой файл, и печать стала подвисать просто безбожно) - 1 мин 40 сек.
еще момент один: если в середине следующего листа сделать текст в ячейке, то эксель, как я понимаю, перед печатью скрывает незаполненные ячейки, а потом забывает их раскрыть - они в скрытых оказываются (на листе печати (надеюсь понятно объяснил)
Pelena, спасибо. вроде бы все работает, даже лучше чем я думал - выборка на печать идет только тех строк которые заполнены даже по середине таблицы. Я перенес Ваш макрос в свой файл, и печать стала подвисать просто безбожно) - 1 мин 40 сек.
еще момент один: если в середине следующего листа сделать текст в ячейке, то эксель, как я понимаю, перед печатью скрывает незаполненные ячейки, а потом забывает их раскрыть - они в скрытых оказываются (на листе печати (надеюсь понятно объяснил)krilovsky68
адвокат
Сообщение отредактировал krilovsky68 - Пятница, 04.03.2022, 10:21
Время уменьшилось до 55,93 сек. В любом случае ОГРОМНОЕ спасибо.
Попытался разобраться в макросе, понял что это уже для меня непосильно (а какая срока выборку делает? я правильно понял, что на наличие информации оцениваются все столбцы)
Елена (Pelena), как профессионал, скажите пожалуйста, а может удобнее сделать что бы таблица заполнялась автоматически, в зависимости от столбца "E"? Пробовал сделать умную таблицу (список), но она автоматически продлевается ориентируясь на столбец "А". Пробовал добавить в таблицу скрытый столбец, в котором продублировать E (=дела!B4), но таблица меня не поняла
Время уменьшилось до 55,93 сек. В любом случае ОГРОМНОЕ спасибо.
Попытался разобраться в макросе, понял что это уже для меня непосильно (а какая срока выборку делает? я правильно понял, что на наличие информации оцениваются все столбцы)
Елена (Pelena), как профессионал, скажите пожалуйста, а может удобнее сделать что бы таблица заполнялась автоматически, в зависимости от столбца "E"? Пробовал сделать умную таблицу (список), но она автоматически продлевается ориентируясь на столбец "А". Пробовал добавить в таблицу скрытый столбец, в котором продублировать E (=дела!B4), но таблица меня не поняла krilovsky68
Private Sub Макрос8() Dim rng As Range Application.ScreenUpdating = False Application.Calculation = xlCalculationManual
Sheets("журнал постановлений").Visible = True Sheets("журнал постановлений").Select r0 = 8 rlast = Cells(Rows.Count, 1).End(xlUp).Row If rlast <= r0 Then Exit Sub For i = r0 To rlast If Cells(i, 5) = 0 Then If rng Is Nothing Then Set rng = Rows(i) Else Set rng = Union(rng, Rows(i)) End If Next i If Not rng Is Nothing Then rng.EntireRow.Hidden = True
rlast1 = Cells(Rows.Count, 5).End(xlUp).Row
If rlast1 > r0 Then ActiveSheet.PrintOut copies:=1
For i = r0 To rlast If Cells(i, 5) = 0 Then Rows(i).Hidden = False Next i
Application.Calculation = xlCalculationAutomatic Application.ScreenUpdating = True End Sub
[/vba]
Первый вопрос: Я правильно понял: Cells(i, 5) определяет столбец по счету(1,2,3,4,5), который необходимо оценить на наличие/отсутствие информации, после чего информация?
Второй вопрос: Возможно на примере заполнения одной ячейки макросом сделать заполнение других строк (грубо говоря, найти пример, где заполнение идет и путем копирования сделать заполнение других столбцов) ?
Третий вопрос: Как я понимаю вычисление идет с 1 по последнюю строку 1 048 576 Как можно ограничить поле вычисления например с 8 по 400 строку (больше не будет), это по моему должно в разы уменьшить время обработки.
заранее спасибо.
с вашего позволения: [vba]
Код
Private Sub Макрос8() Dim rng As Range Application.ScreenUpdating = False Application.Calculation = xlCalculationManual
Sheets("журнал постановлений").Visible = True Sheets("журнал постановлений").Select r0 = 8 rlast = Cells(Rows.Count, 1).End(xlUp).Row If rlast <= r0 Then Exit Sub For i = r0 To rlast If Cells(i, 5) = 0 Then If rng Is Nothing Then Set rng = Rows(i) Else Set rng = Union(rng, Rows(i)) End If Next i If Not rng Is Nothing Then rng.EntireRow.Hidden = True
rlast1 = Cells(Rows.Count, 5).End(xlUp).Row
If rlast1 > r0 Then ActiveSheet.PrintOut copies:=1
For i = r0 To rlast If Cells(i, 5) = 0 Then Rows(i).Hidden = False Next i
Application.Calculation = xlCalculationAutomatic Application.ScreenUpdating = True End Sub
[/vba]
Первый вопрос: Я правильно понял: Cells(i, 5) определяет столбец по счету(1,2,3,4,5), который необходимо оценить на наличие/отсутствие информации, после чего информация?
Второй вопрос: Возможно на примере заполнения одной ячейки макросом сделать заполнение других строк (грубо говоря, найти пример, где заполнение идет и путем копирования сделать заполнение других столбцов) ?
Третий вопрос: Как я понимаю вычисление идет с 1 по последнюю строку 1 048 576 Как можно ограничить поле вычисления например с 8 по 400 строку (больше не будет), это по моему должно в разы уменьшить время обработки.
Елена (Pelena), а макрос как я понял запускается только при нажатии на кнопку печать? Возможно ли, что макрос "постоянно" работал на заполнение страницы (грубо говоря как у меня ссылки)
Елена (Pelena), а макрос как я понял запускается только при нажатии на кнопку печать? Возможно ли, что макрос "постоянно" работал на заполнение страницы (грубо говоря как у меня ссылки)krilovsky68
Елена (Pelena), спасибо Вам. Предложенный вами вариант с заполнением таблицы с помощью макроса, кажется более удобным вариантом. В этом случае кнопка заполнить журнал постановлений. кнопка печать
Получилось вот так). Наверное примитивно в части рисования таблицы, но)
Елена (Pelena), спасибо Вам. Предложенный вами вариант с заполнением таблицы с помощью макроса, кажется более удобным вариантом. В этом случае кнопка заполнить журнал постановлений. кнопка печать
Получилось вот так). Наверное примитивно в части рисования таблицы, но)krilovsky68