Just nu i M3-nätverket
Gå till innehåll
ALSeger

Makro för PDF utskrift

Rekommendera Poster

ALSeger

Jag försöker skapa ett makro till en knapp där man ska skriva ut innehållet i kolumnerna A till E som PDF och sedan spara PDFen i samma mapp som Excelfilen ligger i och med samma namn som Excelfilen har. Men det går inte så bra.

 

 

Det är första gången jag använder VBA och undrar om någon kan ge mig lite tips.

 

Tack på förhand

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Monshi

Vilken version av Excel?

 

men i princip borde

	Blad1.Range("A:E").ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
   	ThisWorkbook.Path & "\Bok1.pdf", Quality:=xlQualityStandard, _
   	IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
   	False

fungera

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
ALSeger

Ok, tack för svaret. Ska testa det.

 

 

Jag har Excel 2010.

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
ALSeger

Hej,

 

Jag fick det inte att funka.

 

När jag spelar in det jag vill göra får jag följande kod:

 

 

Sub Makro1()

'

' Makro1 Makro

'

 

'

Columns("A:E").Select

Range("A4").Activate

Selection.PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False

End Sub

 

 

Jag har även försökt med följande:

 

Sub CreatePDF_Click()

 

Dim pdfName As String

 

pdfName = Range("A2")

 

Columns("A:E").Select

SelectedColums.ExportAsFixedFormat Type:=xlTypePDF

Filename = ThisWorkbook.Path & "\pdfName.pdf"

Quality:=xlQualityStandard, Selection.PrintOut Copies:=1, Collate:=True, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True,

 

End Sub

 

Men får kompileringsfel och syntaxfel samt rödmarkerad text för

 

Quality:=xlQualityStandard, Selection.PrintOut Copies:=1, Collate:=True, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True,

 

Någon som vet varför?

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Monshi

Sub CreatePDF_Click()

Dim pdfName As String

pdfName = Range("A2")

Columns("A:E").ExportAsFixedFormat Type:=xlTypePDF, Filename:=ThisWorkbook.Path & "\" & pdfName & ".pdf", _
Quality:=xlQualityStandard, Copies:=1, Collate:=True, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True

End Sub

borde fungera.

 

vette tusan vad du gjort men du ser skillnaderna mellan din kod och min hoppas jag.

Det ovan gör alltså samma som om du manuellt markerar A:E på ett blad, väljer spara som PDF, avancerade inställningar-> markerat område.

 

Det använder INTE eventuell PDF-skrivare du har installerat utan Excels inbyggda rutin för att skapa PDF.

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
ALSeger

Jag lyckades få det att funka genom att ta bort en del kod...

 

Sub CreatePDF_Click()

 

 

Dim pdfName As String

Dim fileName As String

 

 

pdfName = Range("A2").Text

fileName = ThisWorkbook.Path & "\" & pdfName & "_" & Format(Date, "yyyymmdd") & ".pdf"

 

Columns("A:E").ExportAsFixedFormat Type:=xlTypePDF, fileName:=fileName

 

 

End Sub

 

 

 

 

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Niklet
Postad (redigerade)

Hur skulle man ändra koden för att istället få pdf:en automatiskt bifogad i ett mejl, där e-postmottagaren/mottagarna anges i en/flera celler utanför det område som ska synas i pdf:en?

Redigerad av Niklet
Felaktig fråga från början

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Monshi

Gammal tråd du hittat.

Du måste NOG, jag tar detta ur huvudet.

  • Exportera som PDF och spara filnamn som variabel
  • Hitta de som du ska sända till
  • Bygga upp ett mail-objekt med CDO
    http://www.rondebruin.nl/win/s1/cdo.htm
  • Lägga till som ett attachment och skicka.

Lite gammal kod som visar konceptet:

Dim iMsg As Object
Set iMsg = CreateObject("CDO.Message")
With iMsg
        Set .Configuration = iConf
        .To = adr
        .CC = ""
        .BCC = ""
        .From = serverData.Email
        
        .ReplyTo = fromAdress
        .subject = subject
        .TextBody = body
        
        .AddAttachment fileName
        .Send
        
End With

Där jag tagit bort all config, du kan hitta hur på länken ovan.

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Skapa ett nytt konto på vårt forum. Det är lätt!

Registrera ett nytt konto

Logga in

Redan medlem? Logga in här.

Logga in nu



×
×
  • Skapa nytt...