Страницы: 1
RSS
Макрос сохранения страницы в новый файл
 
Всем здравствуйте. Прошу помочь с следующей задачей, ну или направить волшебным пенделем в нужном направлении...

Есть книга с несколькими листами. Сохранять отдельно нужно:
лист Invoice (в PDF, в заранее определённую папку (R:\Invoice), с именем "Contract_Invoice_" + значение ячейки А2 листа Invoice + дата сохранения;
лист Balt (в XLS/XLSX, в заранее определённую папку (R:\Balt), с именем "Balt" + значение ячейки А2 листа Balt + дата сохранения.
Хочу чтобы это было 2 разных макроса, на каждой странице поставить кнопку. Меню СохранитьКак тоже должно остаться (иногда нужно в другую папку сохранять)

Пока смогла добиться только сохранения листа Invoice в формате PDF с именем Contract_Invoice....
Код
Sub SaveInvoiceAsPdf()
    fileSaveName = Application.GetSaveAsFilename("Contract_Invoice", "PDF (*.pdf), *.pdf")
    If fileSaveName <> False Then
        Sheets("Invoice").ExportAsFixedFormat Type:=xlTypePDF, Filename:=(fileSaveName), _
            Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
    End If
End Sub
Даже смогла разобраться, что данный код не сработает на сохранение в XLS...


В посте такое обсуждали, но видимо я совсем тормоз или что-то не так делаю, хочется по меньше кода (я в VBA младше младенца)
Заранее благодарна.
 
Код
Sub safe_Balt()

Dim iFileName As String

    iFileName = Range("A2")
    Sheets("Balt").Copy
    ActiveWorkbook.SaveAs Filename:="R:\Balt\Balt_" & iFileName & " - " & Date & ".xlsx", _
        FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
    ActiveWorkbook.Close SaveChanges:=True
End Sub
Для Balt
В PDF не умею (
Изменено: ts-79 - 16.03.2019 20:06:35
 
ts-79, спасибо! Сперва видимо намудрила, но сейчас всё хорошо, сохраняет  :)
ещё бы диалоговое окно прилепить, чтоб видно было, куда сохраняется, и иметь возможность поменять имя при сохранении (в случае надобности)...
Умом понимаю, что это как-то можно взять с кода под PDF - но как именно, не знаю... :(  
 
PDF прикрутил
 
В "Приемах" есть статья по Вашей теме.
 
Юрий М,видела, спасибо  :) я уже не сосчитаю к-во вкладок в браузере, где пробую найти как и что надо прописать, чтобы сделать так как надо в моём конкретном случае. Сложно, когда не разбираешься, а сделать надо.
ts-79, и Вам спасибо  :) осталось победить прописать диалог.окно для экселя.... :sceptic:  
 
Цитата
rinolga написал:
диалог.окно для экселя
Если так, то просто спросит сохранять или нет
Код
Sub safe_Balt2()
    Sheets("Balt").Copy
    ActiveWorkbook.Close 
End Sub
 
ts-79,немного не то :(
вот в этом коде на выходе имеем окно СохранитьКак, и можно прописать имя и выбрать куда... но я не понимаю, как правильно указать формат под сохранение в xls :(
Код
Sub SaveInvoiceAsPdf()
    fileSaveName = Application.GetSaveAsFilename("Contract_Invoice", "PDF (*.pdf), *.pdf")
    If fileSaveName <> False Then
        Sheets("Invoice").ExportAsFixedFormat Type:=xlTypePDF, Filename:=(fileSaveName), _
            Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
    End If
End Sub
Изменено: rinolga - 16.03.2019 23:40:44
 
Код
Sub SaveBalt()
    Filesavename = Application.GetSaveAsFilename("Balt", "Excel Files (*.xls), *.xls")
    If Filesavename <> False Then
        Sheets("Balt").SaveAs Filename:=(Filesavename)
    End If
End Sub
Так?
Изменено: ts-79 - 17.03.2019 08:09:06
 
ts-79,оно! Работает! Спасибо  :)  ещё бы прикрутить к имени файла дату  Format(Now, "mm.dd.yyyy_hh.mm.ss") - и всё, будет то что надо ...
 
Цитата
rinolga написал:
ещё бы прикрутить к имени файла дату  Format(Now, "mm.dd.yyyy_hh.mm.ss")
Опять идём в раздел "Приемы" и читаем эту статью.
===
P.S. Почему бы Вам не почитать этот раздел? Там очень много полезняшек.
Страницы: 1
Наверх