Stránka 1 z 1

MS Office Excel: VBA - Přiřazení názvu k .pdf vygenerovanému souboru

Napsal: 30 dub 2019 19:08
od Klamer
Zdravím

Pokouším se zautomatizovat odesílání objednávek, které vytvářím v excelu.

Stav nyní: Vytvořím objednávku, uložím do .pdf, vytisknu jednu kopii, odešlu příjemci

Stav, kam se chci dostat: Vytvořím objednávku a vytištění, uložení a odeslání chci vyřešit makrem

VBA neovládám, ale pokouším se skládat nějaké příklady do sebe a stylem „co se stane, když odmažu tohle“ se docela daří nějaké drobnější věci udělat. Zde jsem skoro u cíle a mám udělán tento zdrojový kód:

Kód: Vybrat vše

Sub ODESLI_OBJEDNAVKU()
Dim Outlook As Outlook.Application
Dim Zprava As Object
Dim PDF_path As String

a = Range("D11").Text 'Ulož do proměnné a text z pole D11
soubor = "Z:\VYROBA\Výroba OCEL\MTZ_2019\" & a & ".pdf" 'Cesta pro uložení listu do .pdf

ActiveSheet.ExportAsFixedFormat _
    Type:=xlTypePDF, _
    Filename:=soubor, _
    Quality:=xlQualityStandard, _
    IncludeDocProperties:=True, _
    IgnorePrintAreas:=False, _
    OpenAfterPublish:=False

PDF_path = ActiveWorkbook.Path & a & ".pdf"

Set Outlook = New Outlook.Application
Set Zprava = Outlook.CreateItem(olMailItem)
Set myAttachments = Zprava.Attachments

On Error GoTo ERR1
   
myAttachments.Add PDF_path, olByValue, 1, ""

With Zprava
        .To = Range("V4") 'adresát
        .Subject = Range("V5") 'předmět
        .Body = Range("V6") 'obsah
        .BodyFormat = olFormatPlain 'formát mailu
        .Display 'zobrazit okno
        '.Send        'odeslat
End With

GoTo konec
   
ERR1:
MsgBox "e-mai nebyl odeslán, něco je špatně"
konec:

End Sub



V tuto chvíli tedy umím uložit stránku do .pdf, umím vytisknout stránku na tiskárně. Vytvoří se mi emailová zpráva se správným adresátem, předmětem a doprovodným textem. Nedaří se mi poslední věc a to ta, že uložený pdf soubor má správný název. Potřebuji, aby měl soubor v příloze identický název, jako je název souboru, který ukládám do .pdf. Název si ukládám do proměnné a myslím si, že mám nastaveno správně, ale evidentně nemám.

Poradíte?

Re: MS Office Excel: VBA - Přiřazení názvu k .pdf vygenerovanému souboru

Napsal: 01 kvě 2019 01:07
od elninoslov
Napr. takto. V ceste Vám za prvé chýbalo "\" medzi cestou a súborom, a za druhé ste použil 2 rôzne umiestnenia. Súbor PDF sa v ActiveWorkbook.Path asi nenachádza, ale je v Z:\VYROBA\Výroba OCEL\MTZ_2019\.

Kód: Vybrat vše

Sub ODESLI_OBJEDNAVKU()
Dim Outlook As Outlook.Application
Dim Zprava As Object
Dim Soubor As String
Dim Cesta As String

    Cesta = "Z:\VYROBA\Výroba OCEL\MTZ_2019\"   'Cesta pro uložení listu do .pdf
    Soubor = Cesta & Range("D11").Value & ".pdf" 'Celý název PDF souboru s cestou

    ActiveSheet.ExportAsFixedFormat _
        Type:=xlTypePDF, _
        Filename:=Soubor, _
        Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, _
        IgnorePrintAreas:=False, _
        OpenAfterPublish:=False

    Set Outlook = New Outlook.Application
    Set Zprava = Outlook.CreateItem(olMailItem)
    Set myAttachments = Zprava.Attachments

    On Error GoTo ERR1
   
    myAttachments.Add Soubor            'Uložený soubor PDF přiložit jako přílohu

    With Zprava
        .To = Range("V4").Value         'adresát
        .Subject = Range("V5").Value    'předmět
        .Body = Range("V6").Value       'obsah
        .BodyFormat = olFormatPlain     'formát mailu
        .Display                        'zobrazit okno
        '.Send                           'odeslat
    End With

    GoTo konec
   
ERR1:
    MsgBox "e-mai nebyl odeslán, něco je špatně"
konec:
    Set myAttachments = Nothing
    Set Zprava = Nothing
    Set Outlook = Nothing
End Sub

Re: MS Office Excel: VBA - Přiřazení názvu k .pdf vygenerovanému souboru

Napsal: 01 kvě 2019 14:18
od Goo
Otestováno a funguje to tak, jak potřebuji. Děkuji moc za opravu