Mit nachstehendem Makro speichere ich zum Monatsende meine Tabelle als PDF in einem Jahresordner.
Zum Abschluß wird die aktive Tabelle per Inputbox in den neuen Monat umbenannt.
Ist dann der neue Monat der Januar, möchte ich abschließend per inputbox den Zielordner ändern.
Konkret: Im vorliegenden Makro ist der Zielordner
Code: Alles auswählen
"file:///E:/openoffice/Monatsabrechnungen/2015/" & sTabName & ".pdf"
Code: Alles auswählen
if sNewName = "Januar" then
sNewUrl = inputbox ("Jahreswechsel?",0,"E:/openoffice/Monatsabrechnungen/2015/" & sTabName & ".pdf")'Bisheriger Ordner/Pfad, hab ich hier nur reinkopiert
in [code]"file:///E:/openoffice/Monatsabrechnungen/2016/" & sTabName & ".pdf"
Code: Alles auswählen
sub PDFspeichern
rem ----------------------------------------------------------------------
sTabName = Thiscomponent.currentcontroller.activesheet.name
msgbox (sTabName,_0, "Monatswechsel", 33)
rem----------------------------------------------------------------------
antwort = msgbox("Druckbereich kontrolliert?", 33,"Monatswechsel")
if antwort = 2 Then
exit sub
end if
rem define variables
dim document as object
dim dispatcher as object
myDoc = thisComponent
mySheet = myDoc.Sheets(3)
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args1(2) as new com.sun.star.beans.PropertyValue
args1(0).Name = "URL"
args1(0).Value = "file:///E:/openoffice/Monatsabrechnungen/2015/" & sTabName & ".pdf"
args1(1).Name = "FilterName"
args1(1).Value = "calc_pdf_Export"
args1(2).Name = "FilterData"
args1(2).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,false,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("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("EmbedStandardFonts",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("_OkButtonString",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("Selection",0,,com.sun.star.beans.PropertyState.DIRECT_VALUE))
dispatcher.executeDispatch(document, ".uno:ExportToPDF", "", 0, args1())
rem ----------------------------------------------------------------------
ocalc = thisComponent
osheet = ocalc.sheets(3)
oCellRange = osheet.getCellRangeByName("A3:P250")
ocellRange.clearContents(com.sun.star.sheet.CellFlags.VALUE)
oCellRange = osheet.getCellRangeByName("A3:P250")
ocellRange.clearContents(com.sun.star.sheet.CellFlags.STRING)
oCellRange = osheet.getCellRangeByName("A3:P250")
ocellRange.clearContents(com.sun.star.sheet.CellFlags.DATETIME)
rem-------------------------------------------------------------------------------------------
osheet = thiscomponent.currentcontroller.activeSheet
sNewName = inputbox("Bitte neuen Blattnamen eingeben !","Monatswechsel","Neuer Abrechnungsmonat")
osheet.name = sNewName
rem------------------------------------------------------------------------
if sNewName = "Januar" then
sNewUrl = inputbox ("Jahreswechsel?",0,"E:/openoffice/Monatsabrechnungen/2015/" & sTabName & ".pdf")' bisheriger Ordner
end if
rem---------------------------------------------------------------------------------------------
mycell = osheet.getCellRangebyName("A1")
mycell.formulalocal ="=R1&"" ""&TEXT(T1;""MMMM JJJJ"")"
End Sub
Gruß Jörg