Страницы: 1
RSS
Нумерация в конкретной ячейке на всех печатаемых листах
 
Подскажите, пжл., как сделать так что бы при печати файла эксель в ячейках L-O 8, на каждой странице выводился правильный номер. Например: 1 Лист, Всего 22 листа; 2 Лист Всего 22 листа и т.д. Файл прилагаю.

Важно, именно не в колонтитуле а в конкретной заданной ячейке. И я не владею навыками написания макросов, но потребуется это сделать в большом кол-ве файлов. Есть ли для этого какая-то простая возможно функция. Если нет, как разобраться с этими вашими страшными макросами)
 
Зачем продублировали тему?
 
Доброе время суток
По материалам Автоматически создаваемое оглавление и с теми же ограничениями. Функция, выводящая номер страницы ячейки, в которую она вставлена.
Скрытый текст


Успехов.
 
Ни по описанию, ни из примера не ясно, что вам нужно: № страницы на листе, или количество листов в книге.
Если страницы на листе - то хорошо бы показать, как это должно выглядеть.
 
Цитата
Михаил С. написал:
или количество листов в книге.
Михаил, спасибо. Выпустил этот момент. Тогда для активного листа, число листов печати вычисляется ещё проще, чем определение номера листа для яейки.
Код
1
PageCount = ActiveSheet.PageSetup.Pages.Count
Изменено: Андрей VG - 12.11.2015 04:46:26
 
Спасибо,
1. Тему я не пыталась продублировать, просто другой модератор посчитал, что это другой вопрос. 1 вопрос = 1 тема.
2. Поясню. строки 7-13 этого файла - являются сквозными строками. Необходимо, что бы при печати на каждой странице в ячейке L8 выводился номер печатаемого листа по порядку,а в ячеке N8 выводилось общее колличество листов в книге. Т.е. на первом листе ; "L8 =1 лист" "N8=5 листов", на втором листе ; "L8 =2 лист" "N8=5 листов"
3. Андрей, извините за мое пространство, а что делать с тем кодом, который вы прислали, куда его вставлять))?
4. Автоматически создаваемое оглавление начинаю читать
 
И еще у меня стоит Microsoft Excel 2010, и функции я прописываю на русском языке
 
подбором поля колонтитула и пробелами в нём можно найти гармонию в Вашем "пространстве".
 
кб1 спасибо, это немного помогло, тогда может быть есть возможность сделать колонтитул видимым не только при печати, но и при просмотре файла? и второе, первая страница отличается от последующих, как для нее одной сделать другое место для отображения колонтитула?
 
не думаю что это возможно.
 
UDF-функцией выйдет только число страниц. Со сквозными строками даже Word не может вывести номер печатаемой страницы. А вам, filcom, как, надеюсь, участнику форума, а не просто потребителю, забегающему сюда по спешной надобности, полезно прочитать Создание макросов и пользовательских функций на VBA.

Так что пользуйтесь советом Карена, пусть и не без мучений, но что-то можно будет сделать.
 
спасибо, я думала это очень простоя задача, ведь во многих документах это есть. А возможно разобщаться с макросами обычному экономисту, и главное будет ли это полезно? я верно понимаю, что как раз для решения индивидуальных задач. что будет полезно?
 
Цитата
filcom написал: ведь во многих документах это есть
И где вы это видели? В специализированных программах? Excel - это Page Maker - задачи у них как бы разные ;) .
В Word вам точно также придётся заголовок таблицы вынести в колонтитул, чтобы там отображался номер страницы и число страниц. Как писал выше в Word при указании первых строк таблицы как сквозных при вводе кодов полей для номера и числа страниц, получается тоже самое, номер страницы не меняется.

А по поводу - экономист. Найдите время, посмотрите профили отвечающих - думаю, поймёте, что программистов здесь как раз и меньшинство  :D
Изменено: Андрей VG - 12.11.2015 21:58:41
 
Цитата
filcom написал: не только при печати, но и при просмотре файла?
При просмотре листа (не путать с предварительным просмотром) думаю можно, но не колонтитулом, а записью в ячейку "L8" номера страницы с активной ячейкой.
Далее пока не думал.
Пример дадите?
-------------------------------------
Подготовка к эвакуации.
 
Цитата
k61 написал: Пример дадите?
Карен, так пример в первом посте.
 
Цитата
Андрей VG написал: И где вы это видели?
видела в стандартных отчетах Пенсионного фонда) Начала изыскивать время с вашего профиля. Спасибо!
 
И еще вопрос) а где можно увидеть ваш профиль?
 
Цитата
filcom написал: Начала изыскивать время с вашего профиля
Это как? ))
А профиль посмотреть проще простого - кликните по фото.
 
Виноват. Не заметил по причине личной неприязни к расширению "xlsx", вызванной необходимостью лишнего пробега до другого компьютера.
Виновные наказаны.
Вернусь с микрокомандировки на автозимник, посмотрю.
 
Цитата
filcom написал:
первая страница отличается от последующих, как для нее одной сделать другое место для отображения колонтитула?
Посылать на печать программно.
Сначала первую страницу, затем изменить положение колонтитулов, остальные.
Вот, оказывается Сергей (KuklP) всё сделал два года назад. :)
http://planetaexcel.ru/forum/?PAGE_NAME=read&FID=1&TID=48769
Он вообще всё сделал раньше, поэтому сейчас редко появляется. :)
"Сверчок Сергей поет, запрятавшись во тьму,
И песенка его не пустословье,—
Не зря сверчит, дай бог ему здоровья,
И я не зря завидую ему.
....." (с М.Петровых)
 
KB, спасибо и вам и Сергею) там действительно мой вопрос, но не могли бы вы меня проконсультировать как применить ответ? как применить этот написанный макрос? И еще в профилях, к сожалению, нет профессий
 
Доброе время суток
Цитата
как применить ответ?
Например, прочитать Создание макросов и пользовательских функций на VBA.
Цитата
filcom написал:
И еще в профилях, к сожалению, нет профессий
Ну, вы же тоже не оставили о себе никакой информации ;)
Код макроса под ваш случай.
Код
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Public Sub PrintWithNumber()
    Dim PagesText As String, PageCount As Long
    Dim pSheet As Worksheet, i As Long
    Set pSheet = ThisWorkbook.ActiveSheet
    PageCount = pSheet.PageSetup.Pages.Count
    i = PageCount Mod 10: PagesText = CStr(PageCount) & " "
    If (i > 1) And (i < 5) Then
        pSheet.Range("N8").Value = PagesText & "листа"
    ElseIf i = 1 Then
        pSheet.Range("N8").Value = PagesText & "лист"
    Else
        pSheet.Range("N8").Value = PagesText & "листов"
    End If
    For i = 1 To PageCount
        pSheet.Range("L8").Value = "лист " & CStr(i)
        pSheet.PrintOut i, i, 1, False
    Next
End Sub


Успехов.
P. S. Вы серьёзно уверены, что в пенсионном фонде готовят документы в Excel?
Изменено: Андрей VG - 13.11.2015 19:02:39
Страницы: 1
Читают тему
Loading...