Meer dan 1 sheet naar 1 PDF bestand

Status
Niet open voor verdere reacties.

Martijn85

Gebruiker
Lid geworden
28 jun 2007
Berichten
7
Ik heb een userform gemaakt, waarop ik kan aanvinken welke sheets ik wil e-mailen.

Nu is het zo dat dat als ik op de Knop E-mailen op het userform klik dan zet Excel de aangeklikte sheets in PDF en vervolgens als attachments aan mijn email.

Alleen ik wil dat alleen de aangevinkte sheets in 1 PDF bestand komen om zo vervolgens als attachment te verzenden als email.

Wie weet er hoe ik dus een selectie van sheets in 1 PDF bestand kan plaatsen?
Ik gebruik office 2007.
 
Ik zou het niet weten van buiten, maar ik wil wel een poging wagen als je een bestandje plaatst met huidige userform en vba-code.

Wigi
 
Dag Martijn85 !

Omdat ik nog met Excel 2002 werk, beschik ik niet over de mogelijkheid om vanuit Excel rechtstreeks een pdf te maken en die te e-mailen.

Maar ik heb er wel iets op gevonden. Op het internet vind je namelijk allerlei gratis "printer drivers" die de output niet naar de printer sturen maar wel naar een pdf-bestand. Dat zijn bijvoorbeeld pdf995, CutePdf, PDFCreator. Deze laatste heb ik geïnstalleerd.

Als je zulke driver geïnstalleerd hebt op je computer, kan je als volgt te werk gaan:

1. Selecteer eerst de te printen sheets.

2. Roep een macro aan die de "PDF printer driver" als active printer instelt en de geselecteerde sheet print naar het pdf-bestand.

Code:
Sub PrintMoreSheetsToPDF()
Dim i

'Printer driver instellen voor output naar PDFCreator.
Application.ActivePrinter = "PDFCreator on Ne00:"

'//--De te printen sheets moet men eerst selecteren !!!
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True

'Hier moet men een bestandsnaam opgeven voor het PDF bestand. Dat gebeurt
'buiten Excel in een scherm van PDFCreator.
'Om de macro halt te laten houden introduceren we een message box.
MsgBox "Als het PDF-bestand beschikbaar is, klik je hier om te e-mailen"

'Als men het PDF-bestand gesaved heeft, kan men dat als attachment e-mailen.
'Het aanroepen van de e-mail-software is natuurlijk afhankelijk van die
'software zelf. Voor TeamWare Mail is dat zoiets als:
i = TOISendMail("Hierbij een Pdf met meer sheets.", "D:\DATA\MyPdf", "Martijn85@hotmail.com", 0)

End Sub

3. Nadat je de naam voor het pdf-bestand ingevoerd hebt, kan je het als attachment e-mailen. Dan kan vanuit de macro maar uiteraard ook manueel.

Een beetje omslachtig misschien, maar wel het voordeel dat het werkt met vroegere Excel-versies.

Grtz,
MDN111.
 

Bijlagen

Laatst bewerkt:
Bedankt voor je Tip,

Alleen dit is mijn situatie niet echt handig. Het document bestaat namelijk uit 20 sheets, en op die sheets staan ook weer verschillende formulieren die dus via een Range bepaald worden welke er uitgeprint moet worden.
Dus om handmatig een selectie te gaan maken is zeer veel werk.

Overigens gebruikt iedereen office 2007 die hiermee werkt.
 
Ik heb de volgende oplossing hiervoor gevonden.

Indien een hokje wordt aangevinkt wordt er in het betreffende sheets een 2 geplaatst.

vervolgens controleerd onderstaande code alle sheets die een 2 bevatten in de betreffende cel. die worden dan vervolgens in 1 PDF bestand geplaatst.

Indien er nog iemand een betere oplossing heeft, hoor ik het graag.


Dim myrange, shNames() As String, x As Integer, y As Integer

fosheet = (Sheets("Index").Index) 'first origin sheet starts after here
losheet = (Sheets("beheer").Index) 'last origin sheet ends before here

y = -1

For x = fosheet To losheet ' loop for all origin sheets that may be added
If Worksheets(x).Range("CD1").Value > 1 Then
y = y + 1
ReDim Preserve shNames(y)
shNames(y) = Worksheets(x).Name
End If
Next

Sheets(shNames).Select


With ActiveSheet
.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=FilenameSV, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False
End With
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan