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: 386
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
  • EXCEL -jak otevřít 2 excel sobory abych je viděla současne a samostatně
    od Ketty02 » 30 srp 2024 21:19 » v Vše ostatní (sw)
    2
    4716
    od Riviera kid Zobrazit poslední příspěvek
    02 zář 2024 16:21
  • Přechod z Excel 21 na Excel 24
    od Snekment » 29 led 2025 13:46 » v Kancelářské balíky
    2
    12144
    od Snekment Zobrazit poslední příspěvek
    29 led 2025 15:05
  • Office 365: compare sheet Příloha(y)
    od teichmann.ondrej » 03 led 2025 12:32 » v Kancelářské balíky
    1
    2074
    od elninoslov Zobrazit poslední příspěvek
    03 led 2025 17:28
  • Převádění Dokumentu z MS Office do online prostředí
    od zuzana3 » 10 dub 2025 13:00 » v Kancelářské balíky
    1
    3655
    od Gerete Zobrazit poslední příspěvek
    10 dub 2025 13:48
  • Instalace Office 2021 přes Deployment Tool Příloha(y)
    od atari » 30 lis 2024 15:21 » v Kancelářské balíky
    5
    3393
    od atari Zobrazit poslední příspěvek
    01 pro 2024 20:23

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

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 1 host