Avatar billede pwn Forsker
31. oktober 2016 - 21:52 Der er 6 kommentarer og
2 løsninger

Udskriv fra Excel pdf-fil og vedhæft outlook

Denne rutine (fundet her på Eksperten og nødtørftigt tilpasset) fungerer, men udskriver hele fanebladets indhold. Jeg ønsker imidlertid kun et bestemt område (døbt Print_Area omfattende cellerne A68:F120). Hvor og hvad taster jeg ind i følgende makro?:

Sub CreatePDF_attach_to_EMAIL()

    Dim Wkb As String
    Dim TempFilePath As String
    Dim TempFileName As String
    Dim OutApp As Object
    Dim OutMail As Object

Wkb = ThisWorkbook.Name
TempFilePath = Environ$("temp") & "\"


TempFileName = TempFilePath & Wkb & ".pdf"

Worksheets("euroinvoice").ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        TempFileName, Quality:= _
        xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, _
        OpenAfterPublish:=False
 

Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)

With OutMail
    .Display
    End With
        Signature = OutMail.body 'gets the email's standard signature

On Error Resume Next

With OutMail
.To = ""  'can instead be linked to a cell in the excel sheet
.CC = ""
.BCC = ""
.Subject = "Cost status report - " & ActiveWorkbook.Worksheets("Dev Report").Range("D5") & " - " & ActiveWorkbook.Worksheets("Dev Report").Range("D4") & " - " & ActiveWorkbook.Worksheets("Dev Report").Range("R4")
.body = "Hi" & Chr(10) & Chr(10) & "Please find attached cost status report for " & ActiveWorkbook.Worksheets("Dev Report TEST").Range("D4") & " at end of " & ActiveWorkbook.Worksheets("Dev Report TEST").Range("R4") & Chr(10) & Signature
.Attachments.Add TempFileName
.Display
End With
On Error GoTo 0

Set OutMail = Nothing
Set OutApp = Nothing

If Dir(TempFileName) <> "" Then Kill TempFileName 'deletes the created PDF file in the temps-folder
   

Sub email()
'
' email Makro
'Sub CreatePDF_attach_to_EMAIL()

    Dim Wkb As String
    Dim TempFilePath As String
    Dim TempFileName As String
    Dim OutApp As Object
    Dim OutMail As Object

Wkb = ThisWorkbook.Name
TempFilePath = Environ$("temp") & "\"


TempFileName = TempFilePath & Wkb & ".pdf"

Worksheets("euroinvoice").ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        TempFileName, Quality:= _
        xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, _
        OpenAfterPublish:=False
 

Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)

With OutMail
    .Display
    End With
        Signature = OutMail.body 'gets the email's standard signature

On Error Resume Next

With OutMail
.To = ""  'can instead be linked to a cell in the excel sheet
.CC = ""
.BCC = ""
.Subject = "Cost status report - " & ActiveWorkbook.Worksheets("Dev Report").Range("D5") & " - " & ActiveWorkbook.Worksheets("Dev Report").Range("D4") & " - " & ActiveWorkbook.Worksheets("Dev Report").Range("R4")
.body = "Hi" & Chr(10) & Chr(10) & "Please find attached cost status report for " & ActiveWorkbook.Worksheets("Dev Report TEST").Range("D4") & " at end of " & ActiveWorkbook.Worksheets("Dev Report TEST").Range("R4") & Chr(10) & Signature
.Attachments.Add TempFileName
.Display
End With
On Error GoTo 0

Set OutMail = Nothing
Set OutApp = Nothing

If Dir(TempFileName) <> "" Then Kill TempFileName 'deletes the created PDF file in the temps-folder
   


'
    ActiveCell.Offset(12, 1).Range("A1").Select
    ActiveWindow.SmallScroll Down:=60
    ActiveCell.Offset(55, -4).Range("A1").Select
    Application.Goto Reference:="Print_Area"
    ActiveWindow.SmallScroll Down:=-72
End Sub
Avatar billede supertekst Ekspert
01. november 2016 - 15:49 #1
Eksempel:

Range("A68:F120").Select
    Selection.PrintOut Copies:=1, Collate:=True
Avatar billede pwn Forsker
01. november 2016 - 16:02 #2
Tak :-)
Nu er jeg ikke så stiv i makroprogrammering; hvor skal jeg sætte de to linier ind?
Avatar billede supertekst Ekspert
01. november 2016 - 17:28 #3
Selv tak
Har endnu ikke afprøvet din kode men vil gøre det
Hvis din fil kan sendes så ville det være en fordel
Hvis ja - så www.supertekst-it.dk | Kontakt
Så svarer jeg .. ..
Avatar billede supertekst Ekspert
03. november 2016 - 23:15 #4
Justering blev udført her: --->

Sub email()
'
' email Makro
'Sub CreatePDF_attach_to_EMAIL()

    Dim Wkb As String
    Dim TempFilePath As String
    Dim TempFileName As String
    Dim OutApp As Object
    Dim OutMail As Object

Wkb = ThisWorkbook.Name
TempFilePath = Environ$("temp") & "\"


TempFileName = TempFilePath & Wkb & ".pdf"

    --- >Range("A68:F117").Select

    --- >Selection.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        TempFileName, Quality:= _
        xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, _
        OpenAfterPublish:=False
Avatar billede pwn Forsker
23. maj 2017 - 20:39 #5
Jeg håber, at det er OK at genoptage denne tråd med et lille opstået problem.

Når jeg kører makroen vedhæfter den en mail i Outlook et defineret område som pdf-fil (efter indsættelse af ovenstående #4. I Excel returneres en fejlkode Run-time error '1004': Application-defined or object-defined error. Trykker jeg på Debug vises fejlen her (hvor "ActiveCell.Offset(55, -4).Range("A1").Select" er markeret med gult):

If Dir(TempFileName) <> "" Then Kill TempFileName 'deletes the created PDF file in the temps-folder
  '
    ActiveCell.Offset(12, 1).Range("A1").Select
    ActiveWindow.SmallScroll Down:=60
    ActiveCell.Offset(55, -4).Range("A1").Select
    Application.Goto Reference:="Print_Area"
    ActiveWindow.SmallScroll Down:=-72
End Sub

Hvad er der galt - det ser jo ud som om curseren flyttes til en celle 55 th og 4 op?
Avatar billede supertekst Ekspert
23. maj 2017 - 23:12 #6
Jeg skal prøve at se på problemet.
Avatar billede pwn Forsker
16. juni 2017 - 15:24 #7
Jeg fik løst problemet. Der var en kommando sidst i kodningen, som sendte cursoren ud af regnearket. Efter sletning af disse linier forsvandt fejlen :-)
Avatar billede supertekst Ekspert
16. juni 2017 - 15:35 #8
Fint .. ..
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester