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

Programy pro práci v kanceláři (Word, Excel, Access…=>Office)

Moderátor: Mods_senior

Klamer
nováček
Příspěvky: 4
Registrován: duben 19
Pohlaví: Nespecifikováno

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

Příspěvekod Klamer » 30 dub 2019 19:08

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?


Řekněte někdo těm prasatům, že vyhazovat nedopalky cigaret z okýnka auta po dokouření NENÍ V POŘÁDKU!!!

Reklama
Uživatelský avatar
elninoslov
Level 2
Level 2
Příspěvky: 189
Registrován: červen 13
Pohlaví: Muž

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

Příspěvekod elninoslov » 01 kvě 2019 01:07

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

Goo
nováček
Příspěvky: 22
Registrován: duben 17
Pohlaví: Muž

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

Příspěvekod Goo » 01 kvě 2019 14:18

Otestováno a funguje to tak, jak potřebuji. Děkuji moc za opravu


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Excel - VBA - Makro - odeslání dat ze souboru A do souboru B
    od Pavel Křivánek » 26 lis 2018 15:04 » v Kancelářské balíky
    3
    827
    od MePExG
    28 lis 2018 21:30
  • Česká instalačka Excel/Office 95 (Office pro Windows 95)
    od xlnc » 02 bře 2019 13:09 » v Kancelářské balíky
    0
    401
    od xlnc
    02 bře 2019 13:09
  • Přečtení binární podoby souboru pdf
    od Zikmund » 02 říj 2018 15:01 » v Vše ostatní (sw)
    4
    773
    od petr22
    02 říj 2018 21:32
  • VBA import vice souboru do jednoho
    od honza99 » 26 úno 2019 13:32 » v Programování a tvorba webu
    0
    378
    od honza99
    26 úno 2019 13:32
  • Excel VBA - GetObject
    od Grimm » 11 bře 2019 14:53 » v Kancelářské balíky
    3
    466
    od ITCrowd
    11 bře 2019 16:12

Zpět na “Kancelářské balíky”

Kdo je online

Uživatelé prohlížející si toto fórum: CommonCrawl [Bot] a 0 hostů