Avatar billede sjokoman Juniormester
09. december 2015 - 17:47 Der er 1 kommentar

Ændre udskrift fra xls til pfd

Jeg har et regneark, der er opdelt i mange sider. Her kan jeg sende hver enkelt side afsted som email, med en xls fil vedhæftet.
Jeg kunne tænke mig, at det var en PFD fil, der blev sendt afsted, er dette muligt?



Const emneTekst = "Hej: Trold næste uge"                      'Emne-tekst til mail
Const MailData = "Trold.xls"                'temp. workbook til selektiv forsendelse - oprettes automatisk
Const antalRækVogn = 37                            'pr. vogn
Const antalKolVogn = 14                            'pr. vogn
Rem =========================

Dim arkNavn                                        'Arknavn (valgte måned)
Dim ræk, hpArr(), antalSideskiftH, antalSideskiftV, rækNr
Dim indhRæk, xSti
Sub ForsendelseAfSider(ark)
    arkNavn = ark
    findSti
    opsætningAfSider
End Sub
Private Sub findSti()
    xSti = ActiveWorkbook.Path
    If Right(xSti, 1) <> "\" Then
        xSti = xSti + "\"
    End If
End Sub
Private Sub opsætningAfSider()
Dim h, v, fraRække, tilRække, fraKolonne, tilKolonne, område, antalRækker, vognNr
    ActiveWorkbook.Sheets(arkNavn).Activate
   
    antalRækker = ActiveCell.SpecialCells(xlLastCell).Row
    ActiveWorkbook.Sheets(arkNavn).Cells(antalRækker, 1).Select
   
Rem Hent antallet af sideskift (vandrette)
    antalSideskiftH = Worksheets(arkNavn).HPageBreaks.Count
    antalSideskiftV = Worksheets(arkNavn).VPageBreaks.Count
   
    fraRække = 1
    tilRække = fraRække + antalRækVogn - 1
    fraKolonne = 1
    tilKolonne = fraKolonne + antalKolVogn - 1
    vognNr = 0
   
Rem Opsæt sideskift med 1. række pr.side
    For h = 1 To antalSideskiftH + 1
            For v = 1 To antalSideskiftV + 1
                område = konverter(fraKolonne) + CStr(fraRække) + ":" + konverter(tilKolonne) + CStr(tilRække)
               
                n = ActiveWorkbook.Sheets(arkNavn).Cells(fraRække, fraKolonne)
                If n = "Aftale" Then
                    vognNr = vognNr + 1
                   
                    ActiveWorkbook.Sheets(arkNavn).Range(område).Select
                    Selection.Copy
                   
                    Workbooks.Add
                                     
                    Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
                        xlNone, SkipBlanks:=False, Transpose:=False

                    Application.CutCopyMode = False
                    ActiveSheet.Range("A1").Select
                           
                    ActiveWorkbook.SaveAs xSti + MailData
                    ActiveWindow.Close
                   
                    sendMail ActiveWorkbook.Sheets("mailadresser").Cells(vognNr, 1), emneTekst + " " + arkNavn
                   
                    Kill xSti + MailData
                    fraKolonne = tilKolonne + 1
                    tilKolonne = fraKolonne + antalKolVogn - 1
                Else
'                    Stop          'test formål
                End If
            Next v
           
            fraRække = tilRække + 1
            tilRække = fraRække + antalRækVogn - 1
            fraKolonne = 1
            tilKolonne = fraKolonne + antalKolVogn - 1
    Next h
   
    MsgBox ("Mail sendt til " + CStr(vognNr) + " vogne")
    End Sub



mvh johnny
Avatar billede kim1a Ekspert
10. december 2015 - 08:18 #1
Her er den kommando jeg bruger for at skabe pdf filer som dog gemmes på drev:

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        stitilfil & Cells(1, 2) & " " & c.Value, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
        :=False, OpenAfterPublish:=False

Min begrænsede forståelse af VBA gør dog at jeg ikke kan hjælpe yderligere. Det ser ud som om Trold.xls er en midlertidig fil der sendes, men jeg kan ikke se at den bliver skabt.

Et andet eksempel, hvor den sender via brugerens egen mail i Outlook:

    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)
   
    strSignature = OutMail.body
   
    With ActiveWorkbook
        With OutMail
            .to = Sheets(1).Cells(4, 3)
            .CC = ""
            .BCC = ""
            .Subject = "Tilbud " & Sheets(1).Cells(10, 3)
            .body = "Vedhæftet er tilbud fra Renault Trucks Danmark på en " & Sheets(1).Cells(10, 3) & " i " & Sheets(1).Cells(14, 5) & vbNewLine & strSignature
            .Attachments.Add (strFilplacering & strFilnavn & ".pdf")
            .send ' .display hvis du ønsker brugeren manuelt skal trykke send.
        End With
        On Error GoTo 0
    End With
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
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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