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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.09.2010, 00:05   #1
edikamn
Пользователь
 
Регистрация: 31.08.2010
Сообщений: 19
По умолчанию Вставка надписи на последнюю страницу документа

Всем привет. Помогите, не могу решить свой вопрос.
На листе имеется таблица, которая часто меняет свой размер по количеству страниц на листе, при том что иногда приходится вставлять принудительный разрыв страницы. Мне нужно на последней странице таблицы, в самом низу слева (не таблицы, а последней странице)вставлять фамилию исполнителя. Это может быть или ячейка или просто надпись.
Я пробовал вставлять надпись исходя из количества точек по горизонтали на листе за минусом позиций в точках верхнего и нижнего полей. Все вроде ничего, но когда приходится вставлять принудительный разрыв страницы, надпись начинает скакать по непонятному мне правилу то на середину последней страницы, то вообще на другую страницу.

В общем нужно стабильное положение текста внизу слева на последней странице.
edikamn вне форума Ответить с цитированием
Старый 12.09.2010, 23:52   #2
vikttur
Участник клуба
 
Регистрация: 16.05.2010
Сообщений: 1,249
По умолчанию

Переменная, определяющая последнюю заполненную строку на листе (строку таблицы):
i= Sheets("ля-ля").Cells(Rows.Count, 1).End(xlUp).Row
ii=i+5 - отступ - например, пятая строка после таблицы - с этой строки вставлять "подвал"
vikttur вне форума Ответить с цитированием
Старый 13.09.2010, 11:25   #3
edikamn
Пользователь
 
Регистрация: 31.08.2010
Сообщений: 19
По умолчанию

Не очень актуально.
Последняя строка всегда бывает на разном уровне относительно странице.
А надпись нужно вставлять ИМЕННО внизу страницы.
Кто-нибудь Помогите, всю голову сломал, не знаю как.
edikamn вне форума Ответить с цитированием
Старый 13.09.2010, 13:49   #4
Aent
Форумчанин
 
Аватар для Aent
 
Регистрация: 17.07.2009
Сообщений: 519
По умолчанию

edikamn, вам надо воспользоваться коллекцией HPageBreaks.
Aent вне форума Ответить с цитированием
Старый 15.09.2010, 14:31   #5
edikamn
Пользователь
 
Регистрация: 31.08.2010
Сообщений: 19
По умолчанию

Я смотрел эту коллекцию. Определить адресность разрыва страницы можно командой LOCATION. Но в этом случае адрес привязан к адресу ячейки. А мне нужно определить в точках, так как нижнюю часть последней страницы, выводимой на печать я могу определить только по положению нижнего поля листа BOTTOMMARGIN

Кто-нибудь знает как определить положение в точках разрыва страницы
edikamn вне форума Ответить с цитированием
Старый 15.09.2010, 15:44   #6
alexvav
Форумчанин
 
Регистрация: 23.11.2006
Сообщений: 152
По умолчанию

а если распечатывать все листы, кроме последнего, потом добавлять надпись в колонтитул и дораспечатывать?
alexvav вне форума Ответить с цитированием
Старый 15.09.2010, 16:06   #7
Aent
Форумчанин
 
Аватар для Aent
 
Регистрация: 17.07.2009
Сообщений: 519
По умолчанию

В предположении что вертикальных разрывов страниц нет (т.е. страницы в одну колонку)
Код:
Public Sub Example()
    Dim i As Long 
    Dim j As Long
    Dim k As Long
    Dim b As Long
    With ActiveSheet
        i = .Cells(.Cells.Rows.Count, 1).End(xlUp).Row
        k = ExecuteExcel4Macro("Get.Document(50)")
        On Error Resume Next
        Application.EnableEvents = False
        j = 1
        Do
            b = .HPageBreaks(k).Location.Row
            If Err.Number <> 0 Then
                Err.Clear
                .Cells(i + j, 1).Value = " "
                j = j + 1
            Else
                Exit Do
            End If
        Loop
        .Cells(i + 1, 1).Resize(j - 1, 1).ClearContents   'Не обязательно
        Application.EnableEvents = True
        MsgBox "Последняя строка на последней странице: " & CStr(i + j - 1)
    End With
End Sub
Как вариант посмотрите http://www.mrexcel.com/forum/showthread.php?t=53736

Последний раз редактировалось Aent; 15.09.2010 в 16:19.
Aent вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как скопировать лист оз одного документа в другой trunx Microsoft Office Word 9 14.06.2010 02:58
вставка данных из разных книг в один лист Aigulasan Microsoft Office Excel 3 26.03.2010 22:17
объединение несколько файлов Excel в один лист документа Дмитрий11111111111 Microsoft Office Excel 2 15.02.2010 12:25
Авто вставка № договора и печать документа 550953 Microsoft Office Word 8 09.09.2009 12:21
забрать лист из другого документа snakezx Microsoft Office Excel 4 28.11.2008 09:12