Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Excel → PDF без открытия XLSX - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Excel → PDF без открытия XLSX (Макросы Sub)
Excel → PDF без открытия XLSX
Валерьянка Дата: Понедельник, 10.02.2014, 10:06 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 71
Репутация: 2 ±
Замечаний: 0% ±

Excel 2010
Может быть кто-нибудь знает решение для следующей задачи:
Нужен макрос для преобразования файлов .xlsx в .pdf без открытия самого исходника.
В файлах эксцель имеются ссылки (значения из других документов), значения в PDF должны быть актуальными

С помощью макрорекордера получилось только вот это, все работает, только приходится сначала открыть файл → SaveAs в ПДФ → закрыть файл

По идеи файлов для преобразования будет много и поэтому хочу упростить операции избавившись от открытия файлов.

[vba]
Код

Sub PDFSave()
Dim vbname
vbname = InputBox("Введите Имя файла в формате: " & Chr(10) & "месяц-(2 цифры), нижнее подчеркивание _ , " & Chr(10) & "год (4 цифры)", "Ввод", "ММ_ГГГГ")

If vbname = "" Or vbname = "ММ_ГГГГ" Then
MsgBox "Введите имя!"
Else

Workbooks.Open Filename:= _
"http://Moibank/departaments/dbuio/DocLib223/калькуляторы%20для%20расчета%20премии/отсод/adm/index0007/w2f55f1115d5555s_5545/000015/99951/8855413/3652417/9115721/otsod/gtsod_orient/eemisurina/online.xlsx" _
, UpdateLinks:=3
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"http://moibank/departaments/dbuio/DocLib223/калькуляторы%20для%20расчета%20премии/ОТСОД/adm/index0007/w2f55f1115d5555s_5545/000015/99951/8855413/3652417/9115721/otsod/gtsod_orient/eemisurina/" & vbname & ".pdf" _
, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=False

ActiveWindow.Close False

MsgBox "Готово!"

End If

End Sub
[/vba]


Сообщение отредактировал Валерьянка - Понедельник, 10.02.2014, 10:30
 
Ответить
СообщениеМожет быть кто-нибудь знает решение для следующей задачи:
Нужен макрос для преобразования файлов .xlsx в .pdf без открытия самого исходника.
В файлах эксцель имеются ссылки (значения из других документов), значения в PDF должны быть актуальными

С помощью макрорекордера получилось только вот это, все работает, только приходится сначала открыть файл → SaveAs в ПДФ → закрыть файл

По идеи файлов для преобразования будет много и поэтому хочу упростить операции избавившись от открытия файлов.

[vba]
Код

Sub PDFSave()
Dim vbname
vbname = InputBox("Введите Имя файла в формате: " & Chr(10) & "месяц-(2 цифры), нижнее подчеркивание _ , " & Chr(10) & "год (4 цифры)", "Ввод", "ММ_ГГГГ")

If vbname = "" Or vbname = "ММ_ГГГГ" Then
MsgBox "Введите имя!"
Else

Workbooks.Open Filename:= _
"http://Moibank/departaments/dbuio/DocLib223/калькуляторы%20для%20расчета%20премии/отсод/adm/index0007/w2f55f1115d5555s_5545/000015/99951/8855413/3652417/9115721/otsod/gtsod_orient/eemisurina/online.xlsx" _
, UpdateLinks:=3
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"http://moibank/departaments/dbuio/DocLib223/калькуляторы%20для%20расчета%20премии/ОТСОД/adm/index0007/w2f55f1115d5555s_5545/000015/99951/8855413/3652417/9115721/otsod/gtsod_orient/eemisurina/" & vbname & ".pdf" _
, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=False

ActiveWindow.Close False

MsgBox "Готово!"

End If

End Sub
[/vba]

Автор - Валерьянка
Дата добавления - 10.02.2014 в 10:06
AndreTM Дата: Понедельник, 10.02.2014, 10:29 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 500 ±
Замечаний: 0% ±

2003 & 2010
Чтобы что-то сохранить (конвертировать) - нужно это что-то всё равно сначала прочитать (открыть).
Так что если Excel может сделать то, что вам необходимо - зачем же усложнять задачу использованием внешних компонент?
Просто доработайте свой макрос:
- Вместо InputBox используйте что-нибудь из диалоговых окон, позволяющих создать список файлов "для открытия", либо открывате файлы по некоему шаблону имени, либо ещё как (например, создайте листбокс с содержимым каталога и мультиотметками). Тогда вы разом получите список для обработки.
- При открытии и сохранении управляйте видимостью окон и отображением изменений (всякие .Visible, .ScreenUpdating, . DisplayAlerts и т.п.), чтобы увеличить скорость обработки и подавить ненужные отображения.
- Сохраняйте результат сначала локально, а затем уже копируйте его в удалённое хранилище. Возможно - все сформированные файлы разом.
- При массовой обработке - продумайте реакцию на ошибки чтения, записи, копирования. Используйте .StatusBar или какой-нибудь прогрессбар для информирования пользователя - MsgBox останавливает выполнение, и должно использоваться только при критических ошибках либо окончании выполнения всего задания.


Skype: andre.tm.007
Donate: Qiwi: 9517375010
 
Ответить
СообщениеЧтобы что-то сохранить (конвертировать) - нужно это что-то всё равно сначала прочитать (открыть).
Так что если Excel может сделать то, что вам необходимо - зачем же усложнять задачу использованием внешних компонент?
Просто доработайте свой макрос:
- Вместо InputBox используйте что-нибудь из диалоговых окон, позволяющих создать список файлов "для открытия", либо открывате файлы по некоему шаблону имени, либо ещё как (например, создайте листбокс с содержимым каталога и мультиотметками). Тогда вы разом получите список для обработки.
- При открытии и сохранении управляйте видимостью окон и отображением изменений (всякие .Visible, .ScreenUpdating, . DisplayAlerts и т.п.), чтобы увеличить скорость обработки и подавить ненужные отображения.
- Сохраняйте результат сначала локально, а затем уже копируйте его в удалённое хранилище. Возможно - все сформированные файлы разом.
- При массовой обработке - продумайте реакцию на ошибки чтения, записи, копирования. Используйте .StatusBar или какой-нибудь прогрессбар для информирования пользователя - MsgBox останавливает выполнение, и должно использоваться только при критических ошибках либо окончании выполнения всего задания.

Автор - AndreTM
Дата добавления - 10.02.2014 в 10:29
Валерьянка Дата: Понедельник, 10.02.2014, 10:46 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 71
Репутация: 2 ±
Замечаний: 0% ±

Excel 2010
AndreTM, Спасибо за идею, буду пробовать использовать всякие .Visible, .ScreenUpdating, . DisplayAlerts и т.п. :)
может подскажете где можно найти инфу по этим опциям?


Сообщение отредактировал Валерьянка - Понедельник, 10.02.2014, 10:47
 
Ответить
СообщениеAndreTM, Спасибо за идею, буду пробовать использовать всякие .Visible, .ScreenUpdating, . DisplayAlerts и т.п. :)
может подскажете где можно найти инфу по этим опциям?

Автор - Валерьянка
Дата добавления - 10.02.2014 в 10:46
Валерьянка Дата: Понедельник, 10.02.2014, 11:24 | Сообщение № 4
Группа: Пользователи
Ранг: Участник
Сообщений: 71
Репутация: 2 ±
Замечаний: 0% ±

Excel 2010
AndreTM, вроде .Visible тоже не пройдет :( , т.к. в пдф сохраняю область печати при выполнении сохраняется файл преобразователя
 
Ответить
СообщениеAndreTM, вроде .Visible тоже не пройдет :( , т.к. в пдф сохраняю область печати при выполнении сохраняется файл преобразователя

Автор - Валерьянка
Дата добавления - 10.02.2014 в 11:24
alex77755 Дата: Понедельник, 10.02.2014, 12:07 | Сообщение № 5
Группа: Проверенные
Ранг: Обитатель
Сообщений: 362
Репутация: 64 ±
Замечаний: 0% ±

А если воспользоваться программой конвертации?
например UPDF


Могу помочь в VB6, VBA
Alex77755@mail.ru
 
Ответить
СообщениеА если воспользоваться программой конвертации?
например UPDF

Автор - alex77755
Дата добавления - 10.02.2014 в 12:07
Hugo Дата: Понедельник, 10.02.2014, 12:35 | Сообщение № 6
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3254
Репутация: 707 ±
Замечаний: 0% ±

2019
Не советую использовать ActiveSheet - кто знает как там файл сохранён.
Я бы делал так:
Set wb = Workbooks.Open(filename, опции по требованию)
или
With Workbooks.Open(filename, опции по требованию)
далее обращался к wb.sheets(имя или номер) или .sheets(имя или номер)
сохраняел его в pdf, закрывал
далее закрывал открытую ранее книгу.

Ну и screenupdating в любом случае должен помочь.


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
СообщениеНе советую использовать ActiveSheet - кто знает как там файл сохранён.
Я бы делал так:
Set wb = Workbooks.Open(filename, опции по требованию)
или
With Workbooks.Open(filename, опции по требованию)
далее обращался к wb.sheets(имя или номер) или .sheets(имя или номер)
сохраняел его в pdf, закрывал
далее закрывал открытую ранее книгу.

Ну и screenupdating в любом случае должен помочь.

Автор - Hugo
Дата добавления - 10.02.2014 в 12:35
Валерьянка Дата: Понедельник, 10.02.2014, 12:41 | Сообщение № 7
Группа: Пользователи
Ранг: Участник
Сообщений: 71
Репутация: 2 ±
Замечаний: 0% ±

Excel 2010
Hugo, большое Спасибо, буду пробовать yes
 
Ответить
СообщениеHugo, большое Спасибо, буду пробовать yes

Автор - Валерьянка
Дата добавления - 10.02.2014 в 12:41
antal10 Дата: Понедельник, 10.02.2014, 13:19 | Сообщение № 8
Группа: Проверенные
Ранг: Участник
Сообщений: 58
Репутация: 8 ±
Замечаний: 0% ±

Excel 2013
Вообще то, если не ошибаюсь, при установленном Adobe Acrobat не Reader, в контекстном меню проводника Windows появляются пункты, что-то вроде конвертировать в PDF или преобразовать в PDF точно не помню как правильно называется, но знаю что точно есть. И также есть пакетное преобразование. И насколько я помню, файлы Excel в том числе подходят для этого преобразования(конвертирования) без их открытия и даже с возможностью выбора опций.
 
Ответить
СообщениеВообще то, если не ошибаюсь, при установленном Adobe Acrobat не Reader, в контекстном меню проводника Windows появляются пункты, что-то вроде конвертировать в PDF или преобразовать в PDF точно не помню как правильно называется, но знаю что точно есть. И также есть пакетное преобразование. И насколько я помню, файлы Excel в том числе подходят для этого преобразования(конвертирования) без их открытия и даже с возможностью выбора опций.

Автор - antal10
Дата добавления - 10.02.2014 в 13:19
KuklP Дата: Вторник, 11.02.2014, 18:15 | Сообщение № 9
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
файлы Excel в том числе подходят для этого преобразования(конвертирования) без их открытия

antal10, побойтесь Бога, Вам же писали:
Чтобы что-то сохранить (конвертировать) - нужно это что-то всё равно сначала прочитать (открыть).

Взрослые люди, а в сказки верите. >( И другим вводите в заблуждение :)


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728
 
Ответить
Сообщение
файлы Excel в том числе подходят для этого преобразования(конвертирования) без их открытия

antal10, побойтесь Бога, Вам же писали:
Чтобы что-то сохранить (конвертировать) - нужно это что-то всё равно сначала прочитать (открыть).

Взрослые люди, а в сказки верите. >( И другим вводите в заблуждение :)

Автор - KuklP
Дата добавления - 11.02.2014 в 18:15
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Excel → PDF без открытия XLSX (Макросы Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!