powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Разрывы страниц в Excel
25 сообщений из 40, страница 1 из 2
Разрывы страниц в Excel
    #34068304
Фотография Аленочка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброе время суток!
Есть лист с расчетными листами сотрудников.
Все расчётки содержат разное количество строк (это кол-во я могу вычислить).
Нужно расставить разрывы страниц так, чтобы по возможности на 1 лист поместилось 2 расчётки, если две расчётки например 1-ая и 2-ая вместе не умещаются, то 1-ую печатать отдельно, а 2-ую попробовать уместить с 3-ей, 3-юю с 4-ой и так далее по нарастающей...

Как это можно сделать? Если кто решал подобную задачу буду благодарна за наброски кода....


Аленочка тм

-----------------------------------------------
А мы тут плюшками балуемся...
...
Рейтинг: 0 / 0
Разрывы страниц в Excel
    #34068392
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Просуммировать высоты этих строк, добавить к отсупу страницы сверху, расчитать в соотвествии с размером страницы и добавить в том месте где не помещается разрыв (как добавить разрыв можно узнать через запись макроса, примерно: ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=ActiveCell)
...
Рейтинг: 0 / 0
Разрывы страниц в Excel
    #34068403
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Просуммировать высоты этих строк, добавить к отсупу страницы сверху, расчитать в соотвествии с размером страницы и добавить в том месте где не помещается разрыв (как добавить разрыв можно узнать через запись макроса, примерно: ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=ActiveCell)
...
Рейтинг: 0 / 0
Разрывы страниц в Excel
    #34068408
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Или вот пример, где подсчитывается сумма высот строк первой страницы и его сравнение с высотой A4 бумагы
...
Рейтинг: 0 / 0
Разрывы страниц в Excel
    #34068431
Фотография Аленочка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот код который вы мне скинули:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Sub test()
    Dim i%, sngSize!
    sngSize =  0 
    For i =  1  To  56 
        sngSize = sngSize + Rows(i).Height
    Next
    sngSize = sngSize + ActiveSheet.PageSetup.TopMargin + ActiveSheet.PageSetup.BottomMargin
    MsgBox sngSize & vbCrLf & Application.CentimetersToPoints( 297  /  10 )
End Sub


спасибо конечно, но я не понимаю каким образом этот код пригодится для решения моей задачи. что такое 56? что такое (297 / 10) ?
зачем мне рассчитывать высоты каких-то строк...из вашего совета не понятно абсолютно ничего

Аленочка тм

-----------------------------------------------
А мы тут плюшками балуемся...
...
Рейтинг: 0 / 0
Разрывы страниц в Excel
    #34068465
Фотография talgat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Правильным вариантом считаю:
Все расчётки ДОЛЖНЫ содержать ОДИНАКОВОЕ количество строк.

Или листы с расчетными листами сотрудников так генерируются какой то программой?
...
Рейтинг: 0 / 0
Разрывы страниц в Excel
    #34068513
SvIva
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Orunbek показал тебе как посчитать кол-во строк, помещающихся на листе.
А что такое 56 и уж тем более 297 (!) знает каждый, пытающийся сгенерировать какой-то отчет. 297х210 - ничего не говорит ?
...
Рейтинг: 0 / 0
Разрывы страниц в Excel
    #34068517
Фотография Аленочка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
talgatПравильным вариантом считаю:
Все расчётки ДОЛЖНЫ содержать ОДИНАКОВОЕ количество строк.

Или листы с расчетными листами сотрудников так генерируются какой то программой?

ну не могут они изначально содержать равное количество строк, т.к. все начисления детализованы. у кого-то была премия в этом месяце у кого-то не было, кто-то опоздал и с него удержали штраф, а кто-то никак не может расчитаться с кредитом...
...
Рейтинг: 0 / 0
Разрывы страниц в Excel
    #34068526
Фотография Аленочка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SvIvaOrunbek показал тебе как посчитать кол-во строк, помещающихся на листе.
А что такое 56 и уж тем более 297 (!) знает каждый, пытающийся сгенерировать какой-то отчет. 297х210 - ничего не говорит ?

и как по вашему мне это может пригодиться?
...
Рейтинг: 0 / 0
Разрывы страниц в Excel
    #34068535
sergeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вот реальный код из модуля книги, которым пользуюсь я.
первая ячейка строки, в которую надо ставить разделитель имеет надчеркивание

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
Option Explicit

Private Sub Workbook_BeforePrint(Cancel As Boolean)
'расстановка страниц по строке с надчеркиванием
Dim I As Long, RowUpN As Long, ErrHP As Long, FlagOut As Boolean
If ActiveSheet.Name = "Расч.листки" Then
  Application.ScreenUpdating = False: ActiveSheet.DisplayPageBreaks = True
  ActiveWindow.View = xlPageBreakPreview: ActiveSheet.ResetAllPageBreaks
  For I =  1  To  10000 
    On Error Resume Next
    RowUpN = ActiveSheet.HPageBreaks(I).Location.Row 'строка с разделителем страницы
    ErrHP = Err.Number
    On Error GoTo  0 
    If ErrHP =  0  Then
      FlagOut = False
      Do While Cells(RowUpN,  1 ).Borders(xlEdgeTop).LineStyle = xlNone
        RowUpN = RowUpN -  1 : FlagOut = True
      Loop
      If FlagOut Then ActiveSheet.HPageBreaks.Add Rows(RowUpN)
    Else
      Exit For 'кончились страницы
    End If
  Next I
  ActiveWindow.View = xlNormalView: Application.ScreenUpdating = True
End If
End Sub 'Workbook_BeforePrint
...
Рейтинг: 0 / 0
Разрывы страниц в Excel
    #34068558
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Аленочкавот код который вы мне скинули:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Sub test()
    Dim i%, sngSize!
    sngSize =  0 
    For i =  1  To  56 
        sngSize = sngSize + Rows(i).Height
    Next
    sngSize = sngSize + ActiveSheet.PageSetup.TopMargin + ActiveSheet.PageSetup.BottomMargin
    MsgBox sngSize & vbCrLf & Application.CentimetersToPoints( 297  /  10 )
End Sub


спасибо конечно, но я не понимаю каким образом этот код пригодится для решения моей задачи. что такое 56? что такое (297 / 10) ?
зачем мне рассчитывать высоты каких-то строк...из вашего совета не понятно абсолютно ничего

Аленочка тм

-----------------------------------------------
А мы тут плюшками балуемся...

ну это просто набросок, по логике, ваша программа должна суммировать высоты ячеек и если его значение в каком-то месте переваливает за размеры страницы, то в том месте вставлять разрыв, предварительно еще проверив по вашим условиям
...
Рейтинг: 0 / 0
Разрывы страниц в Excel
    #34068563
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а 56, это номер строки, на которую кончается первая страница документа которую я приложил
...
Рейтинг: 0 / 0
Разрывы страниц в Excel
    #34068588
Фотография Аленочка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
народ, складывается впечатление, что задание вы совсем не читали. да знаю я как ставить эти пейдж брейки!!! мне нужен алгоритм который будет определять поместяться ли 2 подряд идущие расчётки на 1 лист или нет. А если поместятся, то поставить разрыв в конце второй расчётки... таким образом поступить со всеми другими расчётками: влезают 2 на 1 лист - ставим разрыв после второй, нет- ставим разрыв после первой...


Аленочка тм

-----------------------------------------------
А мы тут плюшками балуемся...
...
Рейтинг: 0 / 0
Разрывы страниц в Excel
    #34068608
SvIva
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Аленочканарод, складывается впечатление, что задание вы совсем не читали. да знаю я как ставить эти пейдж брейки!!! мне нужен алгоритм который будет определять поместяться ли 2 подряд идущие расчётки на 1 лист или нет. А если поместятся, то поставить разрыв в конце второй расчётки... таким образом поступить со всеми другими расчётками: влезают 2 на 1 лист - ставим разрыв после второй, нет- ставим разрыв после первой...

Все все прочитали, просто это настолько просто, что никто и не отвечает.
Зная, сколько строк помещается на листе, для очередного расчетника проверяем - лезет или нет. Если не лезет, после предыдущего ставим разрыв. Если лезет, к текущему кол-ву добавляем кол-во строк очередного и считаем для следующего.
...
Рейтинг: 0 / 0
Разрывы страниц в Excel
    #34068615
sergeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторнарод, складывается впечатление, что задание вы совсем не читали. да знаю я как ставить эти пейдж брейки!!! мне нужен алгоритм который будет определять поместяться ли 2 подряд идущие расчётки на 1 лист или нет. А если поместятся, то поставить разрыв в конце второй расчётки... таким образом поступить со всеми другими расчётками: влезают 2 на 1 лист - ставим разрыв после второй, нет- ставим разрыв после первой...


Аленочка тм

если это ко мне, то я не учу ставить разделители, я показываю как их двигать:), если в строке, куда надо подвинуть, есть какой-то признак. а расчетки это или что то другое не важно.
алгоритм конечно медленный, но надежный - настройки страниц и принтеров не важны
...
Рейтинг: 0 / 0
Разрывы страниц в Excel
    #34068617
Фотография Аленочка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SvIva Аленочканарод, складывается впечатление, что задание вы совсем не читали. да знаю я как ставить эти пейдж брейки!!! мне нужен алгоритм который будет определять поместяться ли 2 подряд идущие расчётки на 1 лист или нет. А если поместятся, то поставить разрыв в конце второй расчётки... таким образом поступить со всеми другими расчётками: влезают 2 на 1 лист - ставим разрыв после второй, нет- ставим разрыв после первой...

Все все прочитали, просто это настолько просто, что никто и не отвечает.
Зная, сколько строк помещается на листе, для очередного расчетника проверяем - лезет или нет. Если не лезет, после предыдущего ставим разрыв. Если лезет, к текущему кол-ву добавляем кол-во строк очередного и считаем для следующего.

отлично значит я даун
...
Рейтинг: 0 / 0
Разрывы страниц в Excel
    #34068746
Фотография talgat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Аленочка talgatПравильным вариантом считаю:
Все расчётки ДОЛЖНЫ содержать ОДИНАКОВОЕ количество строк.

Или листы с расчетными листами сотрудников так генерируются какой то программой?

ну не могут они изначально содержать равное количество строк, т.к. все начисления детализованы. у кого-то была премия в этом месяце у кого-то не было, кто-то опоздал и с него удержали штраф, а кто-то никак не может расчитаться с кредитом...
В том то и дело, что могут.

Штраф: 0,00 руб.
Премия: 0,00 руб.
...
Рейтинг: 0 / 0
Разрывы страниц в Excel
    #34069080
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SvIva Аленочканарод, складывается впечатление, что задание вы совсем не читали. да знаю я как ставить эти пейдж брейки!!! мне нужен алгоритм который будет определять поместяться ли 2 подряд идущие расчётки на 1 лист или нет. А если поместятся, то поставить разрыв в конце второй расчётки... таким образом поступить со всеми другими расчётками: влезают 2 на 1 лист - ставим разрыв после второй, нет- ставим разрыв после первой...

Все все прочитали, просто это настолько просто, что никто и не отвечает.
Зная, сколько строк помещается на листе, для очередного расчетника проверяем - лезет или нет. Если не лезет, после предыдущего ставим разрыв. Если лезет, к текущему кол-ву добавляем кол-во строк очередного и считаем для следующего.

мдааа... ;)
...
Рейтинг: 0 / 0
Разрывы страниц в Excel
    #34069174
apl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По-моему строки считать не обязательно.
Если принять, что одна расчетка горантированно влезет на один лист, то я пользовался таким алгоритмом:

1. Все документы выведены на один лист экселя подряд, друг за другом.
2. Просматриваем строки листа в цикле.
3. Во временных переменных запоминаем номера строк с очередным разрывом и с концом очередного документа.
4. Если встреченный очередной разрыв попадает на неконец документа, то ставим разрыв в строку последнего запомненного конца документа. После этого эксель автоматически переразобьет все, что ниже.
5. Продолжаем до конца документа.

Если это то, что Вам нужно, но что-то непонятно - спрашивайте.

Есть там еще нюансы с подсчетом разрывов и т.п.:
- например, нижняя граница области печати - не считается разрывом страницы;
- если позиция последнего разрыва совпадет с границей области печати, то счетчик разрывов будет выдавать например N, но при этом обращение к N-му разрыву вызовет ошибку;
и т.п...
Если нужно - спрашивайте.
...
Рейтинг: 0 / 0
Разрывы страниц в Excel
    #34069179
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
образец свой выложите, попробую реализовать свою идею на реальном примере
...
Рейтинг: 0 / 0
Разрывы страниц в Excel
    #34086045
Фотография Аленочка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orunbekобразец свой выложите, попробую реализовать свою идею на реальном примере

спасибо за предложение. уже и не расчитывала на помощь :-)
...
Рейтинг: 0 / 0
Разрывы страниц в Excel
    #34086108
Фотография Аленочка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем если у кого получится найти решение данной задачи - буду премного благодарна...Задача, напомню, та же самая: расставить разрывы страниц, помещая на листе либо 1 либо 2 расчётки если влезут (для экономии бумаги ;-))

Аленочка тм

-----------------------------------------------
А мы тут плюшками балуемся...
...
Рейтинг: 0 / 0
Разрывы страниц в Excel
    #34086154
Фотография Аленочка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 apl

На сегодняшний момент у меня реализовано так: при добавлении новой расчётки на общий лист печати у меня автоматически после неё вставляется разрыв страницы. ясное дело что 1 расчётка умещается на 1 лист. а вот как уместить на 1 листе 2 расчётки и при этом правильно расставить разрывы - в этом вся задача...

Аленочка тм

-----------------------------------------------
А мы тут плюшками балуемся...
...
Рейтинг: 0 / 0
Разрывы страниц в Excel
    #34088765
Фотография Аленочка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
up
...
Рейтинг: 0 / 0
Разрывы страниц в Excel
    #34089870
Фотография Аленочка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
up

Аленочка тм

-----------------------------------------------
А мы тут плюшками балуемся...
...
Рейтинг: 0 / 0
25 сообщений из 40, страница 1 из 2
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Разрывы страниц в Excel
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]