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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.11.2009, 19:29   #1
Zirat
Пользователь
 
Регистрация: 01.08.2009
Сообщений: 17
По умолчанию Номер страницы - проставить

Добрый вечер!
Подскажите, пож-та каким образом можно сделать следующее: для строк в столбце "В", текст в которых написан шрифтом большим 12 (выделены красным) проставить напротив (в стобце М) номера страниц, на которых эти строки расположены


Файл-исходник:
Вложения
Тип файла: rar Книга2.rar (145.7 Кб, 26 просмотров)
Zirat вне форума Ответить с цитированием
Старый 12.11.2009, 20:08   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
каким образом можно сделать следующее
При помощи пользовательской функции

Цитата:
проставить напротив (в стобце М) номера страниц
А что такое - номер страницы?
По каким признакам его вычислять?

К примеру, почему строки 54 (Резервуар горизонтальный) и 55 (Технологическое оборудование ) имеют номер страницы, равный двум?
EducatedFool вне форума Ответить с цитированием
Старый 12.11.2009, 20:15   #3
андей
Пользователь
 
Регистрация: 27.09.2008
Сообщений: 69
По умолчанию

Вроде это то, что Вам нужно:
http://www.sql.ru/forum/actualthread.aspx?tid=329838

Или вот ещё:
http://www.programmersforum.ru/showthread.php?t=23104
Андрей
андей вне форума Ответить с цитированием
Старый 12.11.2009, 20:19   #4
Zirat
Пользователь
 
Регистрация: 01.08.2009
Сообщений: 17
По умолчанию

Скачал выставленный файл. Почему-то параметры страницы слетели (ориентация была альбомная, и отступы полей были другие).
На самом деле Таблица будет шириной в 1 страницу, а высотой n страниц.
Номер страницы определяется по номеру, который будет при включенном режиме "Разметка страницы" (или предварительном просмотре), т.е. количеством разрывов страниц.

Попробую еще раз залить файл.
Вложения
Тип файла: rar Книга2_1.rar (153.1 Кб, 27 просмотров)
Zirat вне форума Ответить с цитированием
Старый 12.11.2009, 20:28   #5
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Вот Вам пример:



Обратите внимание на формулы в столбце M:
Код:
  Ячейка: M9      Формула  (стиль A1):   =НомерСтраницы(B9)
                  Формула  (стиль R1C1): =НомерСтраницы(RC[-11])
Вот весь код:
Код:
Function НомерСтраницы(ByRef cell As Range) As String
    If cell.Font.Size < 12 Then Exit Function
    НомерСтраницы = PageNumber(cell)
End Function

Function PageNumber(cel As Range) As Long
    Dim ws As Worksheet, rgBreaks As Range, hBreak As HPageBreak
    Dim vBreak As VPageBreak, i As Long, j As Long, k As Long, n As Long
    Set ws = cel.Parent
    For Each hBreak In ws.HPageBreaks
        If hBreak.Location.Row > cel.Row Then Exit For
        i = i + 1
    Next
    For Each vBreak In ws.VPageBreaks
        If vBreak.Location.Column > cel.Column Then Exit For
        j = j + 1
    Next
    PageNumber = j * ws.VPageBreaks.Count + i + 1
End Function
Отключите автоматический пересчёт формул.
Перед выводом на печать вручную запускайте пересчёт.

Последний раз редактировалось EducatedFool; 12.11.2009 в 20:30.
EducatedFool вне форума Ответить с цитированием
Старый 12.11.2009, 20:38   #6
Zirat
Пользователь
 
Регистрация: 01.08.2009
Сообщений: 17
По умолчанию

EducatedFool, спасибо Вам большое! Вы мне очень помогли. Буду дальше разбираться.
Zirat вне форума Ответить с цитированием
Старый 12.11.2009, 20:50   #7
tae1980
Форумчанин
 
Регистрация: 02.02.2009
Сообщений: 842
По умолчанию

EducatedFool: Как быть в подобной ситуации при этом использовать колонтитул. А номер страницы должен отражать в колонтитуле?
С уважением, Алексей.
tae1980 вне форума Ответить с цитированием
Старый 12.11.2009, 21:00   #8
tae1980
Форумчанин
 
Регистрация: 02.02.2009
Сообщений: 842
По умолчанию

EducatedFool: в другой теме нашел вариант решения, постранично, и каждый перед каждой страницей изменять колонтитул. Думаю это единственное здравое решение.

Еще вопрос: В книге есть лист "Лист 1" как узнать сколько в нем всего листов, с учетом колонтитула на этом листе?
С уважением, Алексей.
tae1980 вне форума Ответить с цитированием
Старый 12.11.2009, 21:01   #9
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
Сообщение от tae1980 Посмотреть сообщение
EducatedFool: Как быть в подобной ситуации при этом использовать колонтитул. А номер страницы должен отражать в колонтитуле?
А в чём сложность?
Меню Вид - Колонтитулы - Создать верхний колонтитул, нажимаем на кнопочку с символом #, потом ОК.
EducatedFool вне форума Ответить с цитированием
Старый 12.11.2009, 21:39   #10
tae1980
Форумчанин
 
Регистрация: 02.02.2009
Сообщений: 842
По умолчанию

Цитата:
Сообщение от EducatedFool Посмотреть сообщение
А в чём сложность?
Меню Вид - Колонтитулы - Создать верхний колонтитул, нажимаем на кнопочку с символом #, потом ОК.
Я скорее всего не правильно выразился. Попробую еще раз:
Есть таблицы, шириной 1 лист, длиною N листов , на первом листе оформлена шапка (3-4 строки), которая должна повторяться на каждом листе. Эту шапку я задаю сквозными строками:
.PrintTitleRows = "$1:$" & Строк_скв 'Задаем сквозные строки
где Строк_скв - количество сквозных строк.

Стоит задача, в шапке проставлять номера страниц, причем номер рассчитывается с учетом других листов (таблиц) которые должны печататься раньше.

Я планирую такой алгоритм работы при печати таблицы:
1. по списку смотрим какие листы (таблицы) должны печататься раньше и определяем их общий размер в страницах.
2. вносим номер страница в шапку.
3. печатаем одну страницу текущего листа (таблицы).
4. увеличиваем номер страницы в шапке.
5. печатаем следующую страницу.
6. повторяем 4-5 пока не кончаться страницы.

Возникает вопрос по пункту 1. Нужно определить размер листа (таблицы) с учетем сквозных строк.
С уважением, Алексей.
tae1980 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Узнать номер страницы в Excel перед печатью Azat I Свободное общение 0 17.09.2009 18:25
как с помощью формулы проставить тире между цифрами ALEKS2008 Microsoft Office Excel 22 21.08.2009 18:04
Как в HTML в form проставить два E-mail чебургатор HTML и CSS 1 27.05.2009 20:33
Динамическое изменение URL страницы в JavaScript без перезагрузки страницы ilusha JavaScript, Ajax 7 25.02.2009 09:59
Как сделать разрыв страницы печати по условию и узнать номер страницы Leanna Microsoft Office Excel 2 21.01.2008 06:59