Новости:

Теперь на форум можно залогиниться / зарегистрироваться с помощью ВКонтакте. Уже существующие пользователи могут связать свою учетную запись с аккаунтом ВКонтакте одним кликом в профиле пользователя http://forum.msexcel.ru/index.php?action=profile;area=account

Главное меню

Пронумеровать страницы в листах одной книги и сделать содержание на другом ли

Автор gorushek, 04.10.2012, 21:40

« назад - далее »

gorushek

Здравствуйте, ексель для меня не очень знаком, поэтому обращаюсь сюда. У меня книга, состоящая из 5-10 листов, каждый лист имеет свое название.
Вопрос 1:
как сделать внизу каждой страницы сделать табличку колонтитулов со столбиками (количество страниц в листе, номер страницы в листе, номер страницы в книге) ну, конечно чтобы  цифры заполнялись автоматически :) ?
Вопрос 2 Второй лист книги должен называться "содержание", и чтобы "номер страницы в книге" (из первого вопроса) автоматически заполнялся в нужной строке "содержания".
Заранее благодарю за подсказки и подскажите пожалуйста полезную литературу по екселю.

Poltava

Читаем правила. Прикладываем пример, тогда вас можно будет понять, пока все сесьма туманно
Не пытайтесь спорить с дебилом. Иначе вы опуститесь до его уровня. Где он задавит вас своим опытом.

gorushek


Poltava

1) А что если вместо номера листа будет его имя? как на скриншоте
2) Не понял задачу, у вас уже есть содержание и вам нужно чтобы номер листа соответствовал номеру в книге и количесто страниц на листе. Ну если с количеством страниц все более мене понятно то с номерами листов нет? если они могут меняться то по какой причине Вы их перетасуете местами? скроете? удалите? какой порядок номеров должен быть в таком случае? что делать с теми листами которые вы удалите в содержании?
Не пытайтесь спорить с дебилом. Иначе вы опуститесь до его уровня. Где он задавит вас своим опытом.

gorushek

1. Прикладываю образец необходимых колонтитулов из документа в формате word, такие же таблички хотелось бы иметь на листах в excel, причем  ворд столбцы "страница протокола" и "Всего листов протокола" считает автоматически, а "Лист отчета" не получается сделать автоматически, сбивается столбик "всего листов протокола" и приходилось писать ручкой, может получится реализовать эту функцию в excel?
Все листы в книге будут распологаться в таком порядке в каком они сейчас. Я забиваю нужные в данные в лист "изол"(количество данных может быть разное, от 1 до 50 страниц), автоматически должны посчитаться столбики колонтитулов "страница протокола", "всего листов протокола", "Лист отчета". Цифры из столбцов колонтитулов "всего листов протокола" и "лист отчета" автоматически отображается в нужных ячейках "количество листов" и "№ листа"  листа "Содерж". И также с всеми остальными листами книги.
В листе "содерж" все ячейки (№№, Наименование протокола, № протокола) заполняются  руками и не меняются, автоматически заполняться должны только столбцы(№ листа, количество листов) в зависимости от того, сколько информации  будет занесено руками в листы книги и насколько много там будет страниц.
В идеале, количество листов в книге и соответственно строк в листе "содерж" не будет меняться, и меняться будут только ячейки "№ листа" и "количество листов" в листе "содерж" автоматически. Если же какой то лист из книги  не надо будет использовать, то я его удаляю из книги и удаляю необходимую строку из листа "содерж", и возможно придеться сделать какие нибудь манипуляции с формулами, чтобы остался общий порядкок страниц.

Poltava

1) Колонтитул обязательно должен быть в рамочке или должен просто отображать соответствующую информацию
2) Номера по пункту так и должны повторяться по несколько пятых, есть пустые
3) Номера протоколов где можно брать на листе содержание?
4) Так и должно быть что протоколы номер 3-6 находятся на двух листах 7-8(насколько понимаю это разные листы книги)
Если мои догадки верны и вы выложили некорректный пример то вижу следующий вариант
- ненужные листы скрываем (а не удаляем) ведь потом могут понадобиться!
- каждая строка содержания привязана к определенному листу соответственно если он скрыт то и ее скрываем
- логика подсказывает что достаточно знать количество страниц на каждом листе книги остальное считается как последний лист + 1 - +количество страниц на листе
Не пытайтесь спорить с дебилом. Иначе вы опуститесь до его уровня. Где он задавит вас своим опытом.

gorushek

1) Колонтитулы не обязательно в рамочке, в рамочке просто красивее)
2) Номера №№ в содержании, должны просто по порядку идти.
3) Номера для каждого протокола определены и не меняются, они прописаны в каждом листе книги, вверху.
4)Протоколы 3-6 должны находиться на разных листах, это некорректный пример.

То что вы написали вроде логично, но что надо сделать практически, чтобы это реализовать.


gorushek

Хотелось бы довести до конца, Что надо сделать практически?

Poltava

Заполнить лист содержание задача простенькая с ней разобрался быстро. А вот колонтитулы это проблемный момент долго думал что можно сделать. Штатными средствами можно настроить либо количество листов протокола и лист протокола, а лист отчета тогда нужно заполнять в ручную (при этом каждый лист книги нужно печатать отдельно) либо наоборот настроить заполнение графы лист отчета но писать в ручную номер листа протокола и количество листов протокола(при этом печатать нужно всю книгу). Никакого элегантного решения найти не удалось посему пошел самым топорным путем заполнить номера макросом но тут нашлись очередные грабли! нельзя делать разные колонтитулы для страниц в пределах одного листа. Побороть эти грабли оказалось невозможным по определению, по сколько майкрософт не считает это граблями, а называет это высокотехнологичным комбайном как в принципе и предыдущие с недостаточным количеством  предопределенных автозаполняемых полей колонтитулов. Единственное решение которое в этой ситуации пришло в голову это печатать каждую страницу документа отдельно и перед печатью заполнять ее колонтитул что я собственно и реализовал в макросе.
Макрос умеет:
- Заполнять содержание(номера листов, количество страниц и пункт по порядку)
- При скрытии листа скрывается соответствующий пункт содержания
- Макрос позволяет распечатать как книгу так и отдельный лист книги с корректно заполненными пунктами
- Автоматическое заполнение содержание перед печатью (на тот случай если кол-во листов поменялось, а содержание не поменяли)
Ограничения:
- Каждый пункт содержания обязательно должен иметь свой лист в книге и порядок листов в книге должен соответствовать порядку в содержании
- При использовании обычной печати заполнение колонтитулов будет некорректным
- Нельзя распечатать отдельную страницу только лист целиком(в теории можно но я не стал пока на этом заморачиваться)
Не пытайтесь спорить с дебилом. Иначе вы опуститесь до его уровня. Где он задавит вас своим опытом.

gorushek

При команде макросу "заполнить содержание" в содержании автоматически меняются номера страниц(при изменении их количества в листах), это нормально, но в самих листах:
- постоянно стоит одна и та же "страница отчета"
-  внутри листа не меняется "лист отчета" при изменении страниц в листах, т.е не изменяется общий счет отчета на листах
я попробовал изменить стандартными инструментами колонтитулов ""страница" и "номер страниц" записи "номер страницы" и "всего страниц протокола" в листе "изол", но он считает будто в листе 5 страниц, хотя в нем 2 листа?
Распечатать отдельную страницу в листе бывает нужно, т.к листы могут доходить до 50 страниц.
Этот документ сохранять только с поддержкой макросов?
Будет ли документ работать в excel 2003? 2007?

Poltava

Цитировать- постоянно стоит одна и та же "страница отчета"
-  внутри листа не меняется "лист отчета" при изменении страниц в листах, т.е не изменяется общий счет отчета на листах
Это при печати или при просмотре!
Цитироватья попробовал изменить стандартными инструментами колонтитулов ""страница" и "номер страниц" записи "номер страницы" и "всего страниц протокола" в листе "изол", но он считает будто в листе 5 страниц, хотя в нем 2 листа?
Вы вообще читали что я писал выше! стандартными инструментами колонтитулов это невозможно в принципе!!! Нужно печатать с помощью макросов! завтра на работе попробую но у меня вся нумерация была корректной!
ЦитироватьЭтот документ сохранять только с поддержкой макросов?
Он сохранен в 2003 формате это автоматически подразумевает его работу в 2003 офисе! ну, а уж если нужно то тогда сохраняем в xlsm поскольку xlsx макросы не поддерживает
ЦитироватьРаспечатать отдельную страницу в листе бывает нужно, т.к листы могут доходить до 50 страниц.
Это отдельная процедура и вижу смысл в ее написании только если вы одобрите макросы выше! по сути это не проблема но нет желания делать, а потом под вас переделывать!
Не пытайтесь спорить с дебилом. Иначе вы опуститесь до его уровня. Где он задавит вас своим опытом.

gorushek

- постоянно стоит одна и та же "страница отчета"
-  внутри листа не меняется "лист отчета" при изменении страниц в листах, т.е не изменяется общий счет отчета на листах
Это при печати или при просмотре!

При просмотре

я попробовал изменить стандартными инструментами колонтитулов ""страница" и "номер страниц" записи "номер страницы" и "всего страниц протокола" в листе "изол", но он считает будто в листе 5 страниц, хотя в нем 2 листа?
Вы вообще читали что я писал выше! стандартными инструментами колонтитулов это невозможно в принципе!!! Нужно печатать с помощью макросов! завтра на работе попробую но у меня вся нумерация была корректной!

Я не пробовал еще печатать, я только просматривал

Этот документ сохранять только с поддержкой макросов?
Он сохранен в 2003 формате это автоматически подразумевает его работу в 2003 офисе! ну, а уж если нужно то тогда сохраняем в xlsm поскольку xlsx макросы не поддерживает


Значит в excel 2007 документ работать не будет?

Poltava

ЦитироватьПри просмотре
ЦитироватьЗначит в excel 2007 документ работать не будет?
В этом то и есть ваша проблема! если Вы внимательно прочитаете мои сообщения то увидите что я писал ну да ладно не поленился написать вам кстати весьма не простой макрос не поленюсь и процитировать вам еще раз основные мысли из моих прошлых сообщений
Цитироватьнельзя делать разные колонтитулы для страниц в пределах одного листа. Побороть эти грабли оказалось невозможным по определению.....Единственное решение которое в этой ситуации пришло в голову это печатать каждую страницу документа отдельно и перед печатью заполнять ее колонтитул что я собственно и реализовал в макросе.
ЦитироватьОн сохранен в 2003 формате ну, а уж если нужно то тогда сохраняем в xlsm поскольку xlsx макросы не поддерживает это автоматически подразумевает его работу в 2003 офисе
Как по мне понятно что и в более высоких версиях чем 2003 естественно файл тоже будет работать! Другое дело если вы пересохраните его в формате 2007 офиса и при этом выберите тип файла xlsx который не поддерживает макросы вместо xlsm который макросы поддерживает! Я вообще не понимаю к чему такие вопросы задавать неужели вас в гугле забанили ну если так вот вам ссылочка  на статью о пересохранении форматов Сохранение книги в файле другого формата
ЦитироватьРаспечатать отдельную страницу
Добавил форму для печати, на ней есть выбор принтера для печати, а также возможность печати в том числе и страниц по их номеру. Можно переменять как сквозную нумерацию так и нумерацию в пределах листа.
ЦитироватьЯ не пробовал еще печатать вот вам
прилагаю ПДФ файлик с результатами печати макросом и новую версию эксель файла

Не пытайтесь спорить с дебилом. Иначе вы опуститесь до его уровня. Где он задавит вас своим опытом.

gorushek

Вопросы такие:
1.В книге появились два новых листа(лист 1 и лист 2), их можно убрать, я их удалил?
2. Из листа "Титул" колонтитулы нужно вообще убрать
3. В листе "содерж" из колонтитулов оставить только "лист отчета"
4. В листах в колонтитулах я могу изменять только "форму протокола" и "номер протокола", остальное не редактируется?
5. Значит просматривать корректные колонтитулы я могу только после распечатки...
6. Я хочу поменять некоторые листы, т.е прежние листы удалить и вставить другие листы с тем же названием, можно это сделать?
7. Можно ли менять местами листы, удалять, добавлять,  будет ли это влиять и как на работы макроса и как это исправлять.
На некоторые вопросы я бы сам мог ответить методом тыка, но чтобы увидеть результат, придется распечатать весь документ, поэтому и задаю.
з.ы. И можно ли колонтитулы в табличку засунуть?

Poltava

#14
Цитировать1.В книге появились два новых листа(лист 1 и лист 2), их можно убрать, я их удалил?
Вы читали условия работы и ограничения! Зачем печатать и использовать метод тыка если можно просто ВНИМАТЕЛЬНО прочитать! то что ВАМ пишут! процитирую себя же
Цитировать- Каждый пункт содержания обязательно должен иметь свой лист в книге и порядок листов в книге должен соответствовать порядку в содержании
А теперь пересчитайте листы и количество пунктов содержания! какие еще тут могут быть вопросы.
Если удалили листы но не удалили пункты содержания получите некорректное заполнение! Если вам просто в данный момент не нужен этот протокол то скрываете лист а пункт в содержании скроется автоматом! что тут непонятного!
Цитировать2. Из листа "Титул" колонтитулы нужно вообще убрать
Цитировать3. В листе "содерж" из колонтитулов оставить только "лист отчета"
А раньше об этом упомянуть было нельзя! Подумайте хорошо может вам еще что то нужно, а то мне что по три раза на дню вам макрос переделывать!
Цитировать4. В листах в колонтитулах я могу изменять только "форму протокола" и "номер протокола", остальное не редактируется?
Я постарался сделать чтоб было похоже на ваш пример! Редактировать данные можно просто те что статические редактировать можно руками из екселя, а те что вносятся макросом(ОН ВЕДЬ ИХ НЕ СЛУЧАЙНЫМ ОБРАЗОМ ВАМ ГЕНЕРИРУЕТ) редакрировать можно внутри макроса!
Цитировать5. Значит просматривать корректные колонтитулы я могу только после распечатки...
Нет только в бумаге! можно зафиксировать только для первого и двух последних листов что тут непонятного! потом колонтитулы будут браться с последних если нужно для конкретного листа то печатать только его и тогда в пред просмотре будет корректный колонтитул только для этой страницы!
Цитировать6. Я хочу поменять некоторые листы, т.е прежние листы удалить и вставить другие листы с тем же названием, можно это сделать?
Цитировать7. Можно ли менять местами листы, удалять, добавлять,  будет ли это влиять и как на работы макроса и как это исправлять.
Читаем пункт первый все остальное фиолетово!
Цитироватьвидеть результат, придется распечатать
Вас забанил гугл вот неплохая ссылочка по этому поводу. Но я бы остановился на этом FinePrint есть еще и ПДФ от этой же конторы для вас должен подойти как раз!
ЦитироватьИ можно ли колонтитулы в табличку засунуть
Нет! если сможете сделать руками такое расскажите как и я сделаю в макросе

PS: Я вот тут подумал про табличку единственный вариант который приходит в голову это вставка в колонтитулы рисунка в виде рамочек. Но это уже исключительно ваш геморой с подбором масштабов размеров и так далее...
И ещё если вам нужно выделить какие то листы в отдельные обработчики (титул и содержание) то нужно эти листы привязать к какой то константе (номер листа, имя листа,кодовое имя листа) в общем признак по который нельзя будет изменять! я бы остановился на номере или кодовом имени. И если сейчас нет ограничений на имена и порядок листов то для листов с особым обработчиком будет нельзя менять признак по которому они опознаются, в вашем случае напрашивается индекс то есть первый и второй лист нельзя будит перемещать в другое место книги.
Жду ваших комментариев тогда будем думать дальше
Не пытайтесь спорить с дебилом. Иначе вы опуститесь до его уровня. Где он задавит вас своим опытом.