powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Excel. Автостартующий макрос или вставка числа страниц
9 сообщений из 9, страница 1 из 1
Excel. Автостартующий макрос или вставка числа страниц
    #37218605
KpaqpTuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Имеем книгу из 1 листа с N-ым числом страниц, требуется вставить некую формулу, которая в нужной ячейке отразит число страниц моего документа, т.е. в идеале должно быть выведено число N. немного погугля нарыл формулу:
Код: plaintext
ExecuteExcel4Macro("GET.DOCUMENT(50)")
Запихнул данную строку в макрос:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Sub Макрос3()
'
' Макрос3 Макрос
' Макрос записан 15.04.2011 (Adm)
'
' Сочетание клавиш: Ctrl+m
'
Range("F5").FormulaR1C1 = ExecuteExcel4Macro("GET.DOCUMENT(50)")

End Sub

Вопрос: Можно вставить число страниц минуя макросы, мб есть какая-то формула. Или если же нельзя обойтись без макросов, как сделать макрос автостартующим, чтобы при открытии шаблона EXCEL он сам проставлял число страниц в заданную ячейку.
...
Рейтинг: 0 / 0
Excel. Автостартующий макрос или вставка числа страниц
    #37218624
NullUzer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
KpaqpTukИмеем книгу из 1 листа с N-ым числом страниц

Это как?
...
Рейтинг: 0 / 0
Excel. Автостартующий макрос или вставка числа страниц
    #37218653
KpaqpTuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NullUzerKpaqpTukИмеем книгу из 1 листа с N-ым числом страниц

Это как?
Когда идем в предварительный просмотр, внизу пишется кол-во страниц, в моем шаблоне есть таблица, которая программно наращивается вниз, и как только доходит до разрыва страницы начинается след. лист. Приведенный мною макрос работает и число страниц вставляется верно, но не автоматически.
...
Рейтинг: 0 / 0
Excel. Автостартующий макрос или вставка числа страниц
    #37218674
NullUzer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
KpaqpTuk,

Код: plaintext
1.
2.
3.
4.
Function PagesCount() As Double
    Application.Volatile
    PagesCount = Application.Caller.Parent.PageSetup.Pages.Count
End Function

В ячейке вызовешь эту функцию. :)
...
Рейтинг: 0 / 0
Excel. Автостартующий макрос или вставка числа страниц
    #37218759
KpaqpTuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NullUzerKpaqpTuk,

Код: plaintext
1.
2.
3.
4.
Function PagesCount() As Double
    Application.Volatile
    PagesCount = Application.Caller.Parent.PageSetup.Pages.Count
End Function

В ячейке вызовешь эту функцию. :)

Спасибо Вам за помощь, дали наводку, но что-то у меня не получается вызвать польз. функцию, получаю ЗНАЧ#
...
Рейтинг: 0 / 0
Excel. Автостартующий макрос или вставка числа страниц
    #37218768
NullUzer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
KpaqpTuk,

Пришли книгу.
...
Рейтинг: 0 / 0
Excel. Автостартующий макрос или вставка числа страниц
    #37218781
KpaqpTuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Еще такой момент, в самом шаблоне у меня 1 страница, т.е. в нем таблица с 1 строкой. Далее я средтвами ORACLE заполняю эту таблицу и страниц становится 2. В редакторе VB я поставил
Код: plaintext
Range("AM27").FormulaR1C1 = ExecuteExcel4Macro("GET.DOCUMENT(50)")
на событие
Код: plaintext
Workbook_Activate()
. И после открытия отчета я любуюсь цифро 1. То есть выполнение команды идет до заполнения таблицы. Можно ли прогнать команду в момент отображения документа на экран?
...
Рейтинг: 0 / 0
Excel. Автостартующий макрос или вставка числа страниц
    #37218801
NullUzer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
KpaqpTuk,

1. Функцию надо положить в простой модуль (я сделал, чтобы не отображались разрывы).
2. Чтобы формула автоматически пересчитывала функцию, необходимо среагировать на событие Worksheet_Change и вызвать Application.Calculate. Тогда произойдёт пересчёт страниц. В твоём случае Application.Volatile не нужно, но пусть будет. :)

Вставь в ячейку какую-либо цифру - и увидишь, что вместо 1 будет 3. :) Удачи!
...
Рейтинг: 0 / 0
Excel. Автостартующий макрос или вставка числа страниц
    #37218811
KpaqpTuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NullUzerKpaqpTuk,

1. Функцию надо положить в простой модуль (я сделал, чтобы не отображались разрывы).
2. Чтобы формула автоматически пересчитывала функцию, необходимо среагировать на событие Worksheet_Change и вызвать Application.Calculate. Тогда произойдёт пересчёт страниц. В твоём случае Application.Volatile не нужно, но пусть будет. :)

Вставь в ячейку какую-либо цифру - и увидишь, что вместо 1 будет 3. :) Удачи!

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


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