Нужен макрос для копирования листа

Автор aleksandr19_87, 10 февраля 2012, 17:14

0 Пользователи и 1 гость просматривают эту тему.

aleksandr19_87

Всем привет. Помогите пожалуйста с макросом...сам я этим не когда не занимался но время видимо пришло...)
Есть книга1.ods в ней около 10 листов последний лист назовем "бухгалтерия" нужно создать другую книгу в сетевой папке назовем ее книга2.ods  куда должен копироваться полностью единственный лист из книги1 а именно бухгалтерия  и соответственно если там что то меняют в этом листе книги1 должно автоматически меняться в книге2  . При чем книга1 должна отдавать информацию... тк расположенная книга2 в сетевой папке просто не имеет доступа к компьютеру и тем самым не может забирать информацию за неимением доступа( доступ открыть невозможно). Поэтому только отдавать в сетевую... Главное что бы он полностью копировался и обновлялся с книги1 по мере редактирования листа бухгалтерия, уж не знаю как будет происходить копирование, при закрытии книги1 он будет обновляться или как то по другому... Помогите!!) Очень нужен этот макрос ...

JohnSUN

Цитата: aleksandr19_87 от 10 февраля 2012, 17:14
Всем привет.
Добро пожаловать на форум!
Цитата: aleksandr19_87 от 10 февраля 2012, 17:14
Есть книга1.ods в ней около 10 листов последний лист назовем "бухгалтерия"
Всегда последний?
oSheet = oSheets.getByIndex(oSheets.getCount()-1)
Или все-таки назовем "бухгалтерия"?
oSheet = oSheets.getByName("бухгалтерия")
В первом случае можем поймать глюк, если лист перетащат в другое место (это очень просто - облокотиться на мышку и дёрнуть локтем) или добавят новый лист после последнего.
Во втором случае глюк возникнет, если лист переименуют в, скажем, "Бухгалтерия" или "бухгалтерия за декабрь"
Цитата: aleksandr19_87 от 10 февраля 2012, 17:14
нужно создать другую книгу в сетевой папке назовем ее книга2.ods  куда должен копироваться полностью единственный лист из книги1 а именно бухгалтерия  и соответственно если там что то меняют в этом листе книги1 должно автоматически меняться в книге2  . При чем книга1 должна отдавать информацию...
Точнее, принудительно запихивать. А если "книга2.ods" в этот момент открыта кем-то из любопытных или обрабатывается какой-то программой? Что с этой книгой вообще будет происходить? Смотреть и печатать? Тогда это вполне может быть PDF. Дополнительно что-то считать по полученным данным? Тогда CSV...
Цитата: aleksandr19_87 от 10 февраля 2012, 17:14
Поэтому только отдавать в сетевую... Главное что бы он полностью копировался и обновлялся с книги1 по мере редактирования листа бухгалтерия,
Погоди. Что будем отдавать-то? Только посчитанные значения? Или и формулы, и оформление, и примечания?..
Цитата: aleksandr19_87 от 10 февраля 2012, 17:14
Очень нужен этот макрос ...
Да не спеши ты с макросом! Возможно, он и не нужен будет - есть куча способов сообщить информацию в другой документ...
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

aleksandr19_87

Да этот лист "бухгалтерия" всегда последний.
Эту книгу2 будут только смотреть ... не какие формулы там не нужны только цифровые значения. Суть в том что бы все ячейки просто дублировались не важно текст там или цифры. Редактировать книгу2 тоже не будут.

JohnSUN

Напрашиваются два варианта:
1. Экспортировать лист "бухгалтерия" в PDF-файл на сервер - смотрите сколько хотите.
2. Сохранять лист "бухгалтерия" в CSV-файл на сервер, а для его просмотра использовать книгу Calc с прилинкованными данными (меню Вставка - Лист из файла)
Любой из них можно оформить макросом, который привязать к сохранению основного документа
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

aleksandr19_87

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

JohnSUN

Уговорил на экспорт в PDF? Тогда, например, этот макрос от Клио
Ну, там заменить "Лист1" на "бухгалтерия", диапазон ячеек в .getCellRangeByName() правильный задать и указать полный путь на сервер в .storeToURL() - должно работать.
Или более подробный вариант - здесь можно использовать более точную настройку параметров выходного PDF.
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне