Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

25 Ноябрь 2017, 08:36 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Доступно и просто о работе в офисных пакетах
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: « 1 2 3 4 5 6 7 8 »   Вниз
  Печать  
Автор Тема: макрос для печати всех файлов в той же папке, в которой находится файл с макросо  (Прочитано 4517 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Bigor
Новичок
*
Offline Offline

Сообщений: 41


« Ответ #90: 25 Август 2017, 12:11 »

закладка События
на Выполнить действие вешаете макрос


* МакросНеаКнопку.png (27.03 Кб, 1123x295 - просмотрено 5 раз.)
« Последнее редактирование: 25 Август 2017, 12:13 от Bigor » Записан
OOKapitan
Пользователь
**
Offline Offline

Сообщений: 84


« Ответ #91: 25 Август 2017, 17:19 »

на Выполнить действие вешаете макрос
Всё получилось. Огромнейшее спасибо!
Записан
OOKapitan
Пользователь
**
Offline Offline

Сообщений: 84


« Ответ #92: 25 Август 2017, 17:19 »

 Всё хорошо Всё хорошо Всё хорошо Всё хорошо Всё хорошо Всё хорошо Всё хорошо Всё хорошо Всё хорошо Всё хорошо
Записан
OOKapitan
Пользователь
**
Offline Offline

Сообщений: 84


« Ответ #93: 6 Сентябрь 2017, 10:20 »

       Здравствуйте, снова.
       Понадобилось печатать, решил использовать макрос, предоставленный Bigor, - и опять вылезла ошибка (на скрине). Замечу, что в папке, которую я выбрал для печати, есть ещё и odt файлы. Помогите, пожалуйста.


* ОШИБКА4.jpg (223.66 Кб, 1366x768 - просмотрено 9 раз.)
« Последнее редактирование: 6 Сентябрь 2017, 10:31 от OOKapitan » Записан
Bigor
Новичок
*
Offline Offline

Сообщений: 41


« Ответ #94: 6 Сентябрь 2017, 19:49 »

Если нужно печатать только xls файлы, то проще сделать как rami советовал, прописать поиск только xls. Для этого строку 
Код:
sFileName = Dir(sPath, 0)
заменить на 
Код:
sFileName = Dir(sPath & "*.xls", 0)

А по ошибке мало информации, когда тестил .odt, .txt печатались без проблем. скорее всего еще есть что-то не поддерживаемое LO, возможно скрытое
Записан
Rafik
Новичок
*
Offline Offline

Сообщений: 49


« Ответ #95: 7 Сентябрь 2017, 07:09 »

Чтобы видеть какие файлы будет пытаться открывать, необходимо перед строкой
Код:
set oDoc = oDesk.loadComponentFromURL(filename,"_blank",63, args())
вставить print filename
В итоге должно получиться
Код:
print filename
set oDoc = oDesk.loadComponentFromURL(filename,"_blank",63, args())
После такого дополнения макрос будет выводить название файла, который будет пытаться открывать. Посмотреть на каком имени будет спотыкаться и решить как запретить макросу открывать такие файлы.
Записан
OOKapitan
Пользователь
**
Offline Offline

Сообщений: 84


« Ответ #96: 7 Сентябрь 2017, 17:59 »

решить как запретить макросу открывать такие файлы.
Проблема в том, что нужно чтобы макрос и эти файлы ОТКРЫВАЛ и xls. Пока некогда было смотреть. Как посмотрю - сразу отпишусь.
Записан
Rafik
Новичок
*
Offline Offline

Сообщений: 49


« Ответ #97: 8 Сентябрь 2017, 07:16 »

Проблема в том, что нужно чтобы макрос и эти файлы ОТКРЫВАЛ и xls...
Мне думается, что мешающие файлы как раз и не придётся печатать, ибо офис спотыкается на чём-то что не нужно открывать. Это могут быть скрытые временные файлы или что-нибудь типа Desktop.ini, Thumbs.db и прочая служебная ерунда, которая не нужна пользователю.
Записан
economist
Ветеран
*****
Offline Offline

Сообщений: 746


« Ответ #98: 8 Сентябрь 2017, 09:20 »

Вот интересно, эта ветка наберет 100 страниц или нет? Копеечная проблема - уже отняла у людей несколько часов.
А причина в том, что ТС не смог четко и сразу описать что нужно. Здесь срабатывает горькое правило - переделка 1-й строки кода занимает столько же времени, сколько нужно на написание 10% всего кода.

Коллеги, еще раз приведу свой код, который работает и написан за 1... ну ладно, за 5 минут. Добавил комментарии и те условия, что вскрылись в ходе обсуждения.
Код:

Option VBASupport 1
Option Compatible
' работает и в Excel, и в LibreOffice Calc (в OpenOffice "Инфра" и нек-ых др. - работает)

Sub Print_All_XLS_From_This_Directory()
' Макрос печатает все XLS из "этого" каталога на принтер по умолчанию
katalog=ThisWorkbook.Path     ' текущий путь
'katalog="C:\DOWNLOAD\!TEST" ' или явный каталог, но без \
failik=dir(katalog & "\*.xls") ' поискали первый XLS
While failik<>""  ' делаем цикл пока находятся еще XLS-ы
if failik<>ActiveWorkbook.Name then ' если это НЕ файл с этим макро, то
Workbooks.open(katalog & failik)' открыли
Workbooks(failik).Sheets(1).PrintOut ' напечатали 1-й лист
wait(500) ' подождали зачем-то (spooler в Win капризен!)
Workbooks(failik).Close ' закрыли
failik=dir() ' еще раз поискали XLS-ы
Else
failik=dir() ' и поискали XLS, если это был "Я"
End if
Wend
End Sub


Еще раз призываю форумчан к активному юзанию VBA-кода внутри StarBasic-кода в LibreOffice.
Это дает ускорение программированию в десятки раз по сравнению с чистым StarBasic-ом.
Код выше написан по памяти, без заглядывания в справку и Интернет, просто потому что объектная модель VBAExcel
идеально проста и хорошо запоминается, команды - короткие. А в Сети - инфы с кусками кода по VBA столько, что это превышает
инфу по всем другим языками программирования, вместе взятым.
VBA - самый популярный язык программирования, на нем пишут около 15 млн. человек во всем мире.  
Выше - наглядное преимущество майкрософтовского диалекта и подтверждение правильности шагов разработчиков OpenOffice|LibreOffice в этом направлении (VBA в SB).

Макросы - последний "бастион" Экселя, после которого Calc станет фактически ему равен по силе и возможностям. И это достойное соревнование, ведь Excel - одно из самых популярных приложений в мире (для PC), с 32-х летней историей и именно он сделал компьютеры персональными, и привел их в бизнес навсегда. С пятницей, друзья! https://ru.wikipedia.org/wiki/Microsoft_Excel
« Последнее редактирование: 8 Сентябрь 2017, 09:30 от economist » Записан

Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...
Bigor
Новичок
*
Offline Offline

Сообщений: 41


« Ответ #99: 8 Сентябрь 2017, 11:40 »

Добавил комментарии и те условия, что вскрылись в ходе обсуждения.
Ты уже отстал от условий, теперь нужно что бы папку можно было выбрать и как оказывается печатать не только xls файлы Улыбка
Записан
OOKapitan
Пользователь
**
Offline Offline

Сообщений: 84


« Ответ #100: 17 Октябрь 2017, 11:44 »

     Здравствуйте.
     Пользуюсь Вашими макросами, и всё работает нормально. Но вот понадобилось печатать на другой принтер - но почему-то в настройках документа другой принтер по умолчанию не ставится - только на разовую печать. Скажите, пожалуйста, как в Ваших макросах указать имя принтера? Особенно сейчас интересует макрос от пользователя Bigor.
Записан
Bigor
Новичок
*
Offline Offline

Сообщений: 41


« Ответ #101: 17 Октябрь 2017, 15:34 »

По мне, так проще сделать нужный принтер по умолчанию  в системе.
НО если хочется что бы макрос выводил  печать на определенный принтер , то смотри приложенный файл. В  PrintName надо прописать имя нужного принтера (как он называется в системе)

* print_catalog_2.odt (20.32 Кб - загружено 0 раз.)
Записан
OOKapitan
Пользователь
**
Offline Offline

Сообщений: 84


« Ответ #102: 17 Октябрь 2017, 17:01 »

НО если хочется что бы макрос выводил  печать на определенный принтер , то смотри приложенный файл.
Большое спасибо.
Как опробую - отпишусь.
Пока что сделал как Вы и посоветовали:
По мне, так проще сделать нужный принтер по умолчанию  в системе.
Записан
Rafik
Новичок
*
Offline Offline

Сообщений: 49


« Ответ #103: 18 Октябрь 2017, 08:41 »

Для ЛО можно попробовать ещё такой вариант: в документе, котором находится макрос, пройти в меню "Файл" - "настройки принтера", выбрать требуемый принтер и сохранить. Вывод будет идти на принтер, который указан для документа с макросом.
Записан
OOKapitan
Пользователь
**
Offline Offline

Сообщений: 84


« Ответ #104: 18 Октябрь 2017, 11:15 »

Для ЛО
У меня ОО.
Записан
Страниц: « 1 2 3 4 5 6 7 8 »   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!