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
Stav:
Offline

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.5
Level 2.5
Příspěvky: 369
Registrován: červen 13
Pohlaví: Muž
Stav:
Offline

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: 28
Registrován: duben 17
Pohlaví: Muž
Stav:
Offline

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
  • Tisk více excel souborů najednou. Příloha(y)
    od Myerina » včera, 17:42 » v Kancelářské balíky
    2
    218
    od Myerina Zobrazit poslední příspěvek
    dnes, 07:38
  • Překladač MS Office
    od Lazar » 18 říj 2023 14:12 » v Kancelářské balíky
    0
    1557
    od Lazar Zobrazit poslední příspěvek
    18 říj 2023 14:12
  • Office app nejde vykopnout
    od jaojao » 24 bře 2024 09:38 » v Mobily, tablety a jiná přenosná zařízení
    0
    453
    od jaojao Zobrazit poslední příspěvek
    24 bře 2024 09:38
  • Microsoft Office - One Note
    od Søren » 12 dub 2024 21:40 » v Windows 11, 10, 8...
    5
    969
    od Søren Zobrazit poslední příspěvek
    15 dub 2024 17:06
  • Notebook do 15.000 Kč (office, edit videa)
    od barinator » 19 črc 2023 16:18 » v Rady s výběrem hw a sestavením PC
    1
    583
    od petr22 Zobrazit poslední příspěvek
    19 črc 2023 20:58

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

Kdo je online

Uživatelé prohlížející si toto fórum: Airen a 3 hosti