VBA/Macro voor Opslaan als PDF
-
- Berichten: 6
- Lid geworden op: do nov 03, 2016 11:29 am
VBA/Macro voor Opslaan als PDF
Hallo allemaal,
Ik zou een macro willen waarmee ik een bepaalde sheet genaamd "Afdrukpagina Draaien" op wil slaan als PDF. Hierbij wil ik alleen hetgeen in het afdrukbereik opslaan.
Ook wil ik het pad(de locatie) waar het bestand opgeslagen moet worden in kunnen voeren. Dit pad (bijvoorbeeld in dit geval: H:\Mijn documenten\EXCEL MODEL\Testcalculaties\Opgeslagen als PDF) is te vinden op sheet "Beginblad" in cel "P3". Dus in de macro moet hierna verwezen worden, zodat het pad altijd gewijzigd kan worden.
Verder staat in een bepaalde cel ook de naam die het PDF bestand zou moeten krijgen. Deze cel staat op de sheet "Beginblad" in cel "P4"
Ik hoop dat iemand mij hiermee verder zou kunnen helpen.
De macro die ik nu heb is:
Sub OpslaanPDF_AfdrukpaginaDraaien()
'
' OpslaanPDF_AfdrukpaginaDraaien Macro
' De sheet "Afdrukpagina Draaien" Opslaan in bestandslocatie genoteerd in Beginblad.
'
'
ActiveWorkbook.SaveAs "Range(Beginblad!P3)" & Range(Beginblad!P4).Value & ".pdf"
End Sub
Ik zou een macro willen waarmee ik een bepaalde sheet genaamd "Afdrukpagina Draaien" op wil slaan als PDF. Hierbij wil ik alleen hetgeen in het afdrukbereik opslaan.
Ook wil ik het pad(de locatie) waar het bestand opgeslagen moet worden in kunnen voeren. Dit pad (bijvoorbeeld in dit geval: H:\Mijn documenten\EXCEL MODEL\Testcalculaties\Opgeslagen als PDF) is te vinden op sheet "Beginblad" in cel "P3". Dus in de macro moet hierna verwezen worden, zodat het pad altijd gewijzigd kan worden.
Verder staat in een bepaalde cel ook de naam die het PDF bestand zou moeten krijgen. Deze cel staat op de sheet "Beginblad" in cel "P4"
Ik hoop dat iemand mij hiermee verder zou kunnen helpen.
De macro die ik nu heb is:
Sub OpslaanPDF_AfdrukpaginaDraaien()
'
' OpslaanPDF_AfdrukpaginaDraaien Macro
' De sheet "Afdrukpagina Draaien" Opslaan in bestandslocatie genoteerd in Beginblad.
'
'
ActiveWorkbook.SaveAs "Range(Beginblad!P3)" & Range(Beginblad!P4).Value & ".pdf"
End Sub
Re: VBA/Macro voor Opslaan als PDF
Hallo
Ik heb voor jou een zoek actie gedaan op het Engelse forum. Misschien kun je daar enige zaken uit halen.
https://www.google.nl/search?q=site%3Af ... GCaN7HpeAC
Mijn eerste gedachte is:
Print het gewenste naar een pdf printer zodat daar het werk gedaan wordt
Neem een macro op en probeer die aan te passen.
Romke
Ik heb voor jou een zoek actie gedaan op het Engelse forum. Misschien kun je daar enige zaken uit halen.
https://www.google.nl/search?q=site%3Af ... GCaN7HpeAC
Mijn eerste gedachte is:
Print het gewenste naar een pdf printer zodat daar het werk gedaan wordt
Neem een macro op en probeer die aan te passen.
Romke
LibreOffice 7.4.3.2 op openSUSE Leap 15.4
-
- Berichten: 6
- Lid geworden op: do nov 03, 2016 11:29 am
Re: VBA/Macro voor Opslaan als PDF
Bedankt voor je reactie,RPG schreef:Print het gewenste naar een pdf printer zodat daar het werk gedaan wordt
Neem een macro op en probeer die aan te passen.
Ik ben zelf niet zo bekend met VBA/Macro's schrijven, dus de meeste macro's/ VBA programmacodes die ik vind kan ik niet zodanig aanpassen en werkend krijgen in mijn eigen bestand.
Mijn vraag was dus eigenlijk of iemand mij hiermee kon helpen.
-
- Berichten: 6
- Lid geworden op: do nov 03, 2016 11:29 am
Re: VBA/Macro voor Opslaan als PDF
Code: Selecteer alles
Sub OpslaanAls_AfdrukpaginaDraaien()
'
' OpslaanAls_AfdrukpaginaDraaien Macro
'
'
Sheets("Afdrukpagina Draaien").Select
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"H:\Mijn documenten\EXCEL MODEL\Testcalculaties\Opgeslagen als PDF\Opzet parameters Excel Model_18.pdf" _
, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=True
End Sub
Hierin zou ik graag de locatie willen wijzigen waar het bestand opgeslagen wordt, en de naam.
De locatie moet uit de cel "P3" op sheet "Beginblad" gehaald worden.
De naam van het bestand moet uit cel "P4" op sheet "Beginblad" gehaald worden.
Ik hoop u genoeg te hebben geïnformeerd
Laatst gewijzigd door TimvMechelen op do nov 03, 2016 3:32 pm, 1 keer totaal gewijzigd.
MS Office 2010 op Windows 8/8.1
Re: VBA/Macro voor Opslaan als PDF
Hallo
Ik heb nog een Nederlandse macro gevonden op dit forum.
CALC: Macro automatisch opslaan met waarde uit cel (Toon onderwerp) • OpenOffice.org
Ik denk dat het goed is om macro's te vermijden. Wanneer je je goed verdiept in het gebruik van OOo dan kunnen de macro's ook simpeler. In dit geval definieer een print bereik voor het PDF deel en een naam voor de twee cellen.
Romke
Ik heb nog een Nederlandse macro gevonden op dit forum.
CALC: Macro automatisch opslaan met waarde uit cel (Toon onderwerp) • OpenOffice.org
Ik denk dat het goed is om macro's te vermijden. Wanneer je je goed verdiept in het gebruik van OOo dan kunnen de macro's ook simpeler. In dit geval definieer een print bereik voor het PDF deel en een naam voor de twee cellen.
Code: Selecteer alles
sub ExporttoPDF_voorbeeld
' Voor deze macro moeten twee cellen onder elkaar gebruikt worden
' De eerste cel bevat de directory of te wel mapnaam eindigen op een map scheidings teken
' De tweede cel bevat de bestands naam.
De twee cellen moeten een naam krijgen en wel : NaamBestand
dim oNamedranges
dim oNaamVoorBestand
const sNaamVoorBestand="NaamBestand" ' Je mag deze naam veranderen
dim oReferredCells
oNamedranges= thiscomponent.NamedRanges
if oNamedranges.hasbyname(sNaamVoorBestand) then
oNaamVoorBestand=oNamedranges.getbyname(sNaamVoorBestand)
oReferredCells=oNaamVoorBestand.getReferredCells
else
msgbox "de Naam is verkeerd. Je moet een naam voor een cel gebruiken" & chr(13) & "Macro wordt gestopt"
end if
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
dim args1(3) as new com.sun.star.beans.PropertyValue
'Stel eerst de namen in
args1(0).name="SuggestedSaveAsDir"
args1(0).value=oReferredCells.dataarray(0)(0)
args1(1).name="SuggestedSaveAsName"
args1(1).value=oReferredCells.dataarray(1)(0)
args1(2).Name = "FilterName"
args1(2).Value = "calc_pdf_Export"
args1(3).Name = "FilterData"
args1(3).Value = Array(Array("UseLosslessCompression",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("Quality",0,90,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ReduceImageResolution",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("MaxImageResolution",0,300,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("UseTaggedPDF",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("SelectPdfVersion",0,0,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ExportNotes",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ViewPDFAfterExport",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ExportBookmarks",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("OpenBookmarkLevels",0,-1,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("UseTransitionEffects",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("IsSkipEmptyPages",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("IsAddStream",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("FormsType",0,0,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ExportFormFields",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("AllowDuplicateFieldNames",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("HideViewerToolbar",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("HideViewerMenubar",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("HideViewerWindowControls",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ResizeWindowToInitialPage",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("CenterWindow",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("OpenInFullScreenMode",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("DisplayPDFDocumentTitle",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("InitialView",0,0,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("Magnification",0,0,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("Zoom",0,100,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("PageLayout",0,0,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("FirstPageOnLeft",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("InitialPage",0,1,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("Printing",0,2,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("Changes",0,4,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("EnableCopyingOfContent",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("EnableTextAccessForAccessibilityTools",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ExportLinksRelativeFsys",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("PDFViewSelection",0,0,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ConvertOOoTargetToPDFTarget",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ExportBookmarksToPDFDestination",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("SignPDF",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("_OkButtonString",0,"",com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("Watermark",0,"",com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("EncryptFile",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("PreparedPasswords",0,,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("RestrictPermissions",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("PreparedPermissionPassword",0,Array(),com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("SignatureLocation",0,"",com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("SignatureReason",0,"",com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("SignatureContactInfo",0,"",com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("SignaturePassword",0,"",com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("SignatureCertificate",0,,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("",0,,com.sun.star.beans.PropertyState.DIRECT_VALUE))
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:ExportToPDF", "", 0, args1())
end sub
LibreOffice 7.4.3.2 op openSUSE Leap 15.4
-
- Berichten: 6
- Lid geworden op: do nov 03, 2016 11:29 am
Re: VBA/Macro voor Opslaan als PDF
Code: Selecteer alles
sub ExporttoPDF_voorbeeld
' Voor deze macro moeten twee cellen onder elkaar gebruikt worden
' De eerste cel bevat de directory of te wel mapnaam eindigen op een map scheidings teken
' De tweede cel bevat de bestands naam.
De twee cellen moeten een naam krijgen en wel : NaamBestand
dim oNamedranges
dim oNaamVoorBestand
const sNaamVoorBestand="NaamBestand" ' Je mag deze naam veranderen
dim oReferredCells
oNamedranges= thiscomponent.NamedRanges
if oNamedranges.hasbyname(sNaamVoorBestand) then
oNaamVoorBestand=oNamedranges.getbyname(sNaamVoorBestand)
oReferredCells=oNaamVoorBestand.getReferredCells
else
msgbox "de Naam is verkeerd. Je moet een naam voor een cel gebruiken" & chr(13) & "Macro wordt gestopt"
end if
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
dim args1(3) as new com.sun.star.beans.PropertyValue
'Stel eerst de namen in
args1(0).name="SuggestedSaveAsDir"
args1(0).value=oReferredCells.dataarray(0)(0)
args1(1).name="SuggestedSaveAsName"
args1(1).value=oReferredCells.dataarray(1)(0)
args1(2).Name = "FilterName"
args1(2).Value = "calc_pdf_Export"
args1(3).Name = "FilterData"
args1(3).Value = Array(Array("UseLosslessCompression",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("Quality",0,90,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ReduceImageResolution",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("MaxImageResolution",0,300,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("UseTaggedPDF",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("SelectPdfVersion",0,0,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ExportNotes",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ViewPDFAfterExport",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ExportBookmarks",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("OpenBookmarkLevels",0,-1,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("UseTransitionEffects",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("IsSkipEmptyPages",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("IsAddStream",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("FormsType",0,0,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ExportFormFields",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("AllowDuplicateFieldNames",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("HideViewerToolbar",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("HideViewerMenubar",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("HideViewerWindowControls",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ResizeWindowToInitialPage",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("CenterWindow",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("OpenInFullScreenMode",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("DisplayPDFDocumentTitle",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("InitialView",0,0,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("Magnification",0,0,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("Zoom",0,100,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("PageLayout",0,0,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("FirstPageOnLeft",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("InitialPage",0,1,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("Printing",0,2,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("Changes",0,4,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("EnableCopyingOfContent",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("EnableTextAccessForAccessibilityTools",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ExportLinksRelativeFsys",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("PDFViewSelection",0,0,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ConvertOOoTargetToPDFTarget",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ExportBookmarksToPDFDestination",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("SignPDF",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("_OkButtonString",0,"",com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("Watermark",0,"",com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("EncryptFile",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("PreparedPasswords",0,,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("RestrictPermissions",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("PreparedPermissionPassword",0,Array(),com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("SignatureLocation",0,"",com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("SignatureReason",0,"",com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("SignatureContactInfo",0,"",com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("SignaturePassword",0,"",com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("SignatureCertificate",0,,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("",0,,com.sun.star.beans.PropertyState.DIRECT_VALUE))
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:ExportToPDF", "", 0, args1())
end sub
MS Office 2010 op Windows 8/8.1
Re: VBA/Macro voor Opslaan als PDF
Hallo
Ik denk dat het verstandig is om OOo te leren gebruiken zonder macro's. Ik heb het idee dat het omwerken van macro's die voor Excel zijn geschreven niet of zeer moeilijk om te werken zijn voor OOo. De door mij gemaakte macro hoeft ook niet aangepast te worden. Je kunt de aanpassingen doen in een werkblad. Mogelijk moet je het werkblad wel wat aanpassen.
Romke
Ik denk dat het verstandig is om OOo te leren gebruiken zonder macro's. Ik heb het idee dat het omwerken van macro's die voor Excel zijn geschreven niet of zeer moeilijk om te werken zijn voor OOo. De door mij gemaakte macro hoeft ook niet aangepast te worden. Je kunt de aanpassingen doen in een werkblad. Mogelijk moet je het werkblad wel wat aanpassen.
Romke
LibreOffice 7.4.3.2 op openSUSE Leap 15.4
-
- Berichten: 6
- Lid geworden op: do nov 03, 2016 11:29 am
Re: VBA/Macro voor Opslaan als PDF
Het is ook de bedoeling om deze macro in Excel te gebruiken en niet in OOo.RPG schreef:Hallo
Ik denk dat het verstandig is om OOo te leren gebruiken zonder macro's. Ik heb het idee dat het omwerken van macro's die voor Excel zijn geschreven niet of zeer moeilijk om te werken zijn voor OOo. De door mij gemaakte macro hoeft ook niet aangepast te worden. Je kunt de aanpassingen doen in een werkblad. Mogelijk moet je het werkblad wel wat aanpassen.
Romke
MS Office 2010 op Windows 8/8.1
Re: VBA/Macro voor Opslaan als PDF
Dan kun je de macro beter direct in Excel ontwikkelen. Er zijn echt wel verschillen tussen de BASICs voor Excel en AOO. Kleine verschillen in werkwijze tussen die twee kunnen leiden tot geniepige en moeilijk te traceren bugs.TimvMechelen schreef:Het is ook de bedoeling om deze macro in Excel te gebruiken en niet in OOo.
* AOO 4.1.11 en LibreOffice 7.6.1.2 op Ubuntu 20.x
* Heb je de survival guide voor het forum al gelezen?
* Heb je de survival guide voor het forum al gelezen?
Re: VBA/Macro voor Opslaan als PDF
Hallo
Ik vraag me af of TimvMechelen wel door heeft dat dit een forum is voor OpenOffice en afgeleiden?
Hoe dan ook blijft mijn advies leer eerst welk programma dan ook, goed te gebruiken zonder macro's. Ik geloof ook niet dat het eenvoudig is een toepassing te ontwikkelen die zowel wil werken in Excel en OOo.
Romke
Ik vraag me af of TimvMechelen wel door heeft dat dit een forum is voor OpenOffice en afgeleiden?
Hoe dan ook blijft mijn advies leer eerst welk programma dan ook, goed te gebruiken zonder macro's. Ik geloof ook niet dat het eenvoudig is een toepassing te ontwikkelen die zowel wil werken in Excel en OOo.
Romke
LibreOffice 7.4.3.2 op openSUSE Leap 15.4