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

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

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

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

Сообщений: 33


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

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


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

Сообщений: 52


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

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

Сообщений: 52


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

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

Сообщений: 52


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

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


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

Сообщений: 33


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

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

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

Сообщений: 48


« Ответ #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

Сообщений: 52


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

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

Сообщений: 48


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

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

Сообщений: 687


« Ответ #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

Сообщений: 33


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

Добавил комментарии и те условия, что вскрылись в ходе обсуждения.
Ты уже отстал от условий, теперь нужно что бы папку можно было выбрать и как оказывается печатать не только xls файлы Улыбка
Записан
Страниц: « 1 2 3 4 5 6 7   Вверх
  Печать  
 
Перейти в:  

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