• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Excel werkblad als landscape in PDF formaat verzenden lukt niet...

Status
Niet open voor verdere reacties.

CygneVoler

Gebruiker
Lid geworden
15 mei 2015
Berichten
234
Onderstaande code heb ik gebruikt voor het verzenden van een werkblad (tabblad) vanuit excel via outlook in PDF formaat.

Code:
bestandsnaam = "C:\Users\Coos\Desktop\OntvangenGoederen" & Format(Now, "dd-mm-yyyy hh.mm") & ".pdf"

Sheets("Overzicht").ExportAsFixedFormat Type:=xlTypePDF, Filename:=bestandsnaam, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
Application.DisplayAlerts = True

With CreateObject("Outlook.Application").createitem(0)
.To = "e-mail1"
.CC = "e-mail2"
.Subject = "OntvangenGoederen"
.Body = "Hoi," & vbCrLf & vbCrLf & "Blablabla." & vbCrLf & vbCrLf & "Met vriendelijke groet," & vbCrLf & vbCrLf & "Coos"
.Attachments.Add bestandsnaam
.Send
End With

End Sub

Wanneer ik deze nu test, ontvang ik een A4 Staand als PDF met delen van de pagina (in stroken) en ik wil graag dat het een liggende A4 pagina is (Landscape)
En dan natuurlijk geen stroken tekst maar de hele pagina ;-)
Het Excel bestand is ook liggend opgemaakt.

Alvast bedankt voor jullie hulp.

CooS
 
Test het zo eens.

Code:
[COLOR=#0000ff]with Sheets("Overzicht")

With .PageSetup[/COLOR]
[COLOR=#0000ff]        .Orientation = xlLandscape[/COLOR]
[COLOR=#0000ff]        .PaperSize = xlPaperA4[/COLOR]
[COLOR=#0000ff]        .Zoom = False[/COLOR]
[COLOR=#0000ff]        .FitToPagesWide = 1[/COLOR]
[COLOR=#0000ff]        .FitToPagesTall = 1[/COLOR]
[COLOR=#0000ff]    End With[/COLOR]

 .ExportAsFixedFormat Type:=xlTypePDF, Filename:=bestandsnaam, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
Application.DisplayAlerts = True
[COLOR=#0000ff]end with[/COLOR]

With CreateObject("Outlook.Application").createitem(0)
.To = "e-mail1"
.CC = "e-mail2"
.Subject = "OntvangenGoederen"
.Body = "Hoi," & vbCrLf & vbCrLf & "Blablabla." & vbCrLf & vbCrLf & "Met vriendelijke groet," & vbCrLf & vbCrLf & "Coos"
.Attachments.Add bestandsnaam
.Send
End With
End Sub
 
Hoi Harry, op het eerste gezicht werkt het wel. Maar het resultaat is wat "vreemd". Maar misschien komt dat wel door mijn uitleg. Het is idd wel opgemaakt als een A4 liggend maar het kan "aangroeien" tot 1.000 regels.:( Daardoor denk ik dat de PDF die ik ontvang heel klein wordt weergegeven en wel tot 900% moet vergroten. Ik heb PaperSize al weggehaald maar dat werkt niet. En...het lijkt wel (nee het is zo) dat de regels in elkaar worden gedrukt.
 
Laatst bewerkt:
Ginger, resultaat is hetzelfde als hiervoor is beschreven. Heb overigens de 0 veranderd in 1 want daar kreeg ik een foutmelding op. Zal ook even kijken of ik de PDF kan verkleinen qua MBs zodat ik deze kan toevoegen...
 
O, w8 even, kan het komen omdat de pagina (Overzicht) is voorzien van een wachtwoord?
 
Moet inderdaad wel een onbeveiligde sheet zijn. Anders mag er niets worden aangepast...
 
En deze?
Code:
Application.PrintCommunication = False
With .PageSetup
        .Orientation = xlLandscape
        .PaperSize = xlPaperA4
        .Zoom = False
        .FitToPagesWide = 1
    End With
 .ExportAsFixedFormat Type:=xlTypePDF, Filename:=bestandsnaam, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
Application.DisplayAlerts = True
end with
Application.PrintCommunication = True
 
Die eerste coderegel van @dotchie is vanaf Excel 2013 beschikbaar.

Plaats het Excel bestand een Coos.
 
Als je in het Page Setup venster op de Tab "Page" staat, heb je halverwege de "fit to" optie-pickel. Selecteer deze. Zet dan in eerste invulvakje een 1 en laat de tweede leeg. Sluit af met OK.
Nu wordt er voor gezorgd dat je wél meerdere pagina's onder elkaar mag hebben, maar niet naast elkaar. Het is dan natuurlijk wel van belang dat je pagina niet ergens t/m kolom AC loopt ofzo. Want dan zal je alsnog héle kleine lettertjes in je afdruk zien.
Op deze manier hoef je niets in VBA code af te handelen en mag nadien zelfs je sheet beveiligd zijn.
 
Toch maar ff een bestand voor de duidelijkheid. Via de button LogIn wordt een LogInvenster getoond, kan je zonder wachtwoord in, en daar kies je PDFverzenden >"test".
Er staan ook fictieve email adressen in.
 

Bijlagen

Laatst bewerkt:
Zoals ik in post 11 al aangaf... Zet het tweede vakje in het Page Setup scherm op nul (of laat leeg). Druk dan een keer op Print Preview in dat venster en je zal zien dat je bestelformulier netjes wordt afgedrukt.
Moet je wel je procedure even aanpassen voordat je de code gaat laten lopen. Daar staat de .FitToPagesTall nog op de waarde 1. Die moet False of 0 worden.
 
Laatst bewerkt:
@dotchie: zelfde resultaat :(
@Ginger: "Page Setup venster op de Tab "Page" staat...":confused:
 
Sorry, de nul blijkt niet te werken in de VBA code. Je MOET daar dan echt False inzetten als je het via de procedure wilt blijven afhandelen.
 
nou @Ginger, ik moet je eerlijk toegeven dat ik me suf zit te piekeren wat je nu precies bedoelt.
Dit heb ik zo aangepast:
Code:
.FitToPagesTall = False
maar het resultaat blijft ongewijzigd.
 
Hmmm... WAT gaat er nou precies mis? Je wilt je sheet "BestelOverzicht" als een PDF opslaan? Toch? Maar dat lukt je nu niet goed omdat...?
Bij mij werkt dat met False feilloos.
 
Laatst bewerkt:
@Ginger, het opslaan en het verzenden gaat op zich wel (zie #8!) alleen moet het PDF bestand vergroot worden tot zeker 900% en dan zijn de regels tekst niet (goed) zichtbaar/leesbaar.
Misschien dat ik me niet goed uitdruk, maar de "lege"regels daar gaat het op zich niet om. Wel om de regels die gevuld zijn met tekst. En dan met name de onderste regels. Het overzicht wordt nl van onder af aangevuld vanuit het eerste tabblad "Bestelformulier" met nieuwe artikelen die in de overzichtslijst worden geplaatst. Deze worden "gecodeerd" met de de tekst: "Besteld, Niet meer leverbaar, Deellevering, Ontvangen, of welke status er van toepassing is. Mijn idee hierbij is dat wanneer de status dus op ontvangen staat, er een berichtje (de PDF verzending) naar de aanvrager wordt verzonden dat de spullen zijn ontvangen en dat die kunnen worden opgehaald.
Dus ja, wat gaat er niet goed: dat het aangeboden formaat erg klein is en feitelijk onleesbaar. Het zou bijna wenselijk zijn als je een overzicht ontvang op "beeldscherm" formaat of liggend A4 van de regels, van onderaf berekend! Misschien zijn de 1000 regels die ik nu "gereserveerd" heb wel veel te veel! Maar ik sta open voor adviezen!
 
Laatst bewerkt:
Ik snap het werkelijk niet dat mijn oplossing voor jou niet werkt (want je vraag begrijp ik dus duidelijk tóch wel!!!).... Plak dit nou 'ns in je workbook...
Code:
with Sheets("Overzicht")

With .PageSetup
        .Orientation = xlLandscape
        .PaperSize = xlPaperA4
        .Zoom = False
        .FitToPagesWide = 1
        .FitToPagesTall = [B][COLOR="#FF0000"]False[/COLOR][/B]
    End With

 .ExportAsFixedFormat Type:=xlTypePDF, Filename:=bestandsnaam, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
Application.DisplayAlerts = True
end with

With CreateObject("Outlook.Application").createitem(0)
.To = "e-mail1"
.CC = "e-mail2"
.Subject = "OntvangenGoederen"
.Body = "Hoi," & vbCrLf & vbCrLf & "Blablabla." & vbCrLf & vbCrLf & "Met vriendelijke groet," & vbCrLf & vbCrLf & "Coos"
.Attachments.Add bestandsnaam
.Send
End With
End Sub
Dan krijg ik in jouw versie écht waar een héél mooie PDF te zien van een heleboel leesbare pagina's onder elkaar.
Als DIT niet werkt, is er bij jou iets anders aan de hand.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan