Waarom werkt de opgenomen macro niet?

Status
Niet open voor verdere reacties.

Henk Schepers

Gebruiker
Lid geworden
3 apr 2004
Berichten
187
Beste Helpers
Ik heb de onderstaande macro opgenomen met "Macro opnemen"
De handelingen om een werkmap pakbon.xlsm te versturen als pdf werkte prima,
maar bij het uitvoeren van de macro word de werkmap in de bijlage van de e-mail
geen PDF maar pakbon.xlsm.
Wat gaat er fout?
Code:
 'ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
     '   "C:\Users\MBF2\AppData\Local\Temp\E-mail pakbon.pdf", Quality:= _
      '  xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, _
       ' OpenAfterPublish:=False
 
Laatst bewerkt door een moderator:
Met welke code stuur je de email dan ?
 
verzende

i
Code:
ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "C:\Users\MBF2\AppData\Local\Temp\pakbon.pdf", Quality:=xlQualityStandard, _
        IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish:= _
        False
Application.Dialogs(xlDialogSendMail).Show
 
Laatst bewerkt:
Bij deze de vraag weer open, was inderdaad een andere vraag.
 
Laatst bewerkt:
Met Sendmail kan je enkel het actieve workbook meesturen als attachment.
Je zal dus moeten overschakelen op het Outlook-model.
 
beste warme bakkertje

Is daar een speciale code voor? Omdat bij het opnemen van de macro wel alles goed gaat.
Ik kopieer vanuit een andere werkmap naar een nieuwe vaste werkmap die in een macro wordt opgeroepen.
die opgeroepen werkmap moet verzonden worden als PDF via outlook. Bij het opnemen van de macro gaat het zoals ik wil, maar bij afspelen van de macro verstuurd hij het bestand als .xlsm
 
Code:
Sub tst()
    With CreateObject("Outlook.Application").createitem(0)
        .To = "henk.schepers@skynet.be" ' wijzig hier ontvangermailadres
        .Subject = "Testcase" 'onderwerp email
        .Body = "Dit is een test" 'eventueel begeleidend bericht
        .attachments.Add "C:\Users\MBF2\AppData\Local\Temp\pakbon.pdf"
        .Display '.Send
    End With
End Sub
 
@WB

Henk heeft wel gelijk; In Excel 2010 kun je met sendmail via de UI het aktieve bestand als PDF ver'mailen'.
De macrorecorder registreert dat niet.
Ik ben er nog niet achter of daarvoor in VBA code bestaat.
 
te uitgebreid

Beste warmebakkertje.
bedankt voor je code, de code is te uitgebreid omdat de geadresseerde zelf moet worden ingevuld.
Kan ik dat er gewoon uitlaten?
Het excelbestand pakbon.xlsm dat geopend staat en actief is moet geconverteerd worden naar pdf
en dan als atachment verzonden worden.
Ik ben blijkbaar niet de enigste die het ervaart, gezien het bericht van SNB
groeten Henk
 
Hoezo Te uitgebreid ??????
Je hebt toch wel ergens die emailadressen staan, die komen er toch niet vanzelf in. Als je die adressen in cellen hebt staan kan je daar toch naar verwijzen en moet je toch zelf niets meer invullen.
Je doet dan gewoon je export, maakt een array van die adressen en je stuurt je bestand naar iedereen, dit met 1 druk op de knop en zonder verder nog iets te moeten invullen.
Je kan zelfs het onderwerp en begeleidend bericht in cellen zetten en daarnaar verwijzen. Simpeler kan het m.i. toch niet zijn.
 
Laatst bewerkt:
Dat begrijp ik, de pakbon moet naar een afnemer die gekozen word in outlook als de e-mail eenmaal geopend is met de pakbon.pdf als bijlage. Zoals de code die ik in mijn eerste bericht heb staan. Het enige probleem is, dat de macro hem niet conferteerd naar een PDF attachment maar als een xlsm bestand.
gr Henk
 
Dan volstaat dit om enkel een emailbericht met de bijlage te openen.
Code:
Sub tst()
    Const wDir = "C:\Users\MBF2\AppData\Local\Temp\"
    ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        wDir & "pakbon.pdf", Quality:=xlQualityStandard, _
        IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish:=False
    With CreateObject("Outlook.Application").createitem(0)
        .attachments.Add wDir & "pakbon.pdf"
        .Display '.Send
    End With
End Sub
 
Laatst bewerkt:
Dank je wel. ik ga het binnenkort uitproberen en laat het je weten
met vriendelijke groet
henk
 
@WB

Waarom een constante declareren als die ingebakken is ?

Code:
msgbox environ("temp")
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan