Страницы: 1
RSS
Сохранение в PDF с автоматическим назначением имён файлов из ячейки
 
недавно начал осваивать макросы и нужно сделать следующую вещь: при сохранении в pdf  макрос должен сделать имя файла из определённой ячейки текущего файла. сейчас он подставляет имя листа , но это не удобно , т.к. файлы делаются регулярно и каждый раз их приходится переименовывать вручную
посмотрел по форуму и ничего подобного не нашёл
 
Во-первых, зачем картинки на форуме по Эксель?
Используйте для именования системные дату и время. И будет счастье.
Я сам - дурнее всякого примера! ...
 
картинку вставил из-за того , что текст макроса не хотел по-людски вставляться , а сам файл больше 100 кб.
про дату думал , но это мне не удобно . там присваиваться номера документов должны, а за один день их бывает много
 
Код
Sub сохранить()
'
' сохранить Макрос
'

'
    Sheets(Array("акт", "ДКП бу")).Select
    Sheets("ДКП бу").Activate
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "C:\Users\AUTO4YOU\Desktop\ДКП.pdf", Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
        False
    Sheets("поручение").Select
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "C:\Users\AUTO4YOU\Desktop\Поручение.pdf", Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
        False
    Sheets("основа").Select
    Range("A1").Select
End Sub
 
Изменено: somafountain - 21.01.2014 20:55:46
 
Может так

Код
Sub сохранить()
Dim Fname As String
Fname = "C:\" & Sheets("ДКП бу").Range("A1").Value
        ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Fname, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
End Sub
 
я так понимаю это кусок кода надо куда-то вставить , но не пойму куда
а отдельным макросом это не работает  
Изменено: somafountain - 22.01.2014 10:32:34
 
Все работает. По крайней мере у меня. Сохраняет файл pdf с именем из ячейки A1 листа "ДКП бу" на диск С
 
выдаёт сообщение
" Runtime error  '1004'
документ не сохранён или при сохранении возникла ошибка "
не знаю что это означает
 
попробуйте так. Вместо [a1] можете указать нужные Вам ячейки (ну и тип переменных при обьявлении тоже)
Код
Sub сохранить()
'
' сохранить Макрос
'
dim a,b 
a = Sheets("ДКП бу").[a1].value
b = Sheets("акт").[a1].value

    Sheets(Array("акт", "ДКП бу")).Select
    Sheets("ДКП бу").Activate
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
     "C:\Users\AUTO4YOU\Desktop\"& a &".pdf", Quality:=xlQualityStandard, _
     IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
     False
    Sheets("поручение").Select
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
     "C:\Users\AUTO4YOU\Desktop\"& b &".pdf", Quality:=xlQualityStandard, _
     IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
     False
    Sheets("основа").Select
    Range("A1").Select
End Sub 
 
ура ! заработала !
спасибо огромное !
теперь принцип понятен , попробую разные варианты сделать
 

Доброго времени суток.

Подскажите пожалуйста решение аналогичной проблемы, только чтобы лист сохранялся в PDF в ту же папку, из которой сейчас открыт Excel?

Пытался адаптировать предложенное выше решение, но что-то никак... :(

 
Аналогичный вопрос. Как сохранить в pdf активный лист с именем Книги и в том же месте где и книга?
 
Цитата
Сохранение в PDF с автоматическим назначением имён файлов из ячейки
Есть разница?
 
Цитата
antal10 написал:
Может так

1 Sub сохранить()
2 Dim Fname As String
3 Fname = "C:\" & Sheets("ДКП бу").Range("A1").Value
4        ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Fname, _
5        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
6 End Sub
Ваш вариант помог
Скажите, а можно сделать так, чтобы данный макрос запускался на первом листе, а pdf файл создавался со второго листа?
 
Цитата
Dim a
a = Sheets("Протокол").[R6C15].Value


   Sheets("Протокол").Select
   
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
    Filename:="C:\Users\Public\Documents\Протокол\2023_" & a & ".pdf", _
    Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True

End Sub

Сохраняю файлы в ПДФ с этим макросом, но есть проблемка, как сделать, чтоб имя файла происходило с двух ячеек типа ("А1"_"А2")
 
Назар Бублик, Доброго времени суток. А кто вам мешает добавить в код эти ("A1"_"A2")?
Код
    a = Sheets("Протокол").Range("A1").Value
    b = Sheets("Протокол").Range("A2").Value
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
    Filename:="C:\Users\Public\Documents\Протокол\2023_" & a & "_" & b & ".pdf", _
    Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True

Не тестировал.
Изменено: MikeVol - 21.02.2023 15:33:29
 
Цитата
Спасибо, макрос обрел такой вид, не брал к вниманию условие Range, из за этого не работал и бил ошибку. Я так понимаю, можно использовать множество значений (Dim a, b, c, d, i) используя условие "Range".
Изменено: Назар Бублик - 22.02.2023 09:06:54
 
Назар Бублик, Вернитесь и Удалите ваше цитирование! Пока модераторы не увидели.
А так да, можно использовать в название файла множество значения из Range.
Страницы: 1
Наверх