Seite 1 von 1

Druckbereich aus Zelle lesen

Verfasst: Do 5. Apr 2018, 18:33
von cynep8
Hallo,
ich habe mal wieder ein kleines Problem und ich hoffe mir kann jemand helfen.
Im folgenden Code habe ich eine Speicher Prozedur für ein PDF. Da sich nun mein Druckbereich des öfteren ändert,
möchte ich ihn aus einer Zelle auslesen, statt einen festen Wert zu haben. Mir fehlen leider die Kenntnisse um den Code so zu ändern das er die const aus eine Zelle liest.

Vielen Dank schon mal im voraus!

Code: Alles auswählen

const SFolderURL = "file:///C:/Users/" '<--- Speicherordner für PDF-Datein
const sNameCell = "G5"' <------------------------------- Zelle in der der Dateiname steht
const sPrintArea ="A1"'<--------------------------- auszudruckender Bereich



sub Store_to_PDF
    Dim myProps(0) as New com.sun.star.beans.PropertyValue
    myProps(0).Name="FilterName"
    myProps(0).Value = "calc_pdf_Export"
    aTab = array("Rechnungsformular")'<--------------- Namen der auszugebenden Tabellenblätter kommasepariert
    Dim aPrintAreas(0)
    oCalc = thisComponent
    osheets = oCalc.Sheets
    'vorhandene Druckbereiche löschen
    for i = 0 to osheets.count - 1
        osheet = oSheets(i)
        osheet.setPrintAreas(Array())
    next i
    for i = 0 to ubound(aTab)
        oSheet = oCalc.sheets().getByName(aTab(i))  'Blatt wählen
        sFilename = oSheet.getCellRangeByName(sNameCell).string   'Dateiname auslesen 
        oCellRange = oSheet.getCellRangeByName(sPrintArea)'zu druckender Zellbereich 
        oAddress = oCellRange.RangeAddress'Zelladressen des zu druckenden Zellbereiches
        'neuen Druckbereich setzen
        aPrintAreas(0) = oAddress
        oSheet.setPrintAreas(aPrintAreas)
        sUrl = SFolderURL & sFilename & ".pdf"    'Speicherpfad zusammensetzen
        oCalc.storetoUrl(sUrl,myProps()) 'Speichern
        oSheet.setPrintAreas(Array())

Re: Druckbereich aus Zelle lesen

Verfasst: Do 5. Apr 2018, 21:07
von F3K Total
Bitteschön!

Code: Alles auswählen

const SFolderURL = "file:///C:/Users/<USER>/Desktop/" '<--- Speicherordner für PDF-Datein
const sNameCell = "B1"' <------------------------------- Zelle in der der Dateiname steht
const sPrintAreaCell ="A1"'<--------------------------- Zelle, in der der auszudruckende Bereich steht, z.B.  A2:F29

sub Store_to_PDF
    Dim myProps(0) as New com.sun.star.beans.PropertyValue
    myProps(0).Name="FilterName"
    myProps(0).Value = "calc_pdf_Export"
    aTab = array("Tabelle1")'<--------------- Namen der auszugebenden Tabellenblätter kommasepariert
    Dim aPrintAreas(0)
    oCalc = thisComponent
    osheets = oCalc.Sheets
    'vorhandene Druckbereiche löschen
    for i = 0 to osheets.count - 1
        osheet = oSheets(i)
        osheet.setPrintAreas(Array())
    next i
    for i = 0 to ubound(aTab)
        oSheet = oCalc.sheets().getByName(aTab(i))  'Blatt wählen
        sFilename = oSheet.getCellRangeByName(sNameCell).string   'Dateiname auslesen
        oPrintAreaCell = oSheet.getCellRangeByName(sPrintAreaCell)
        sPrintArea = oPrintAreaCell.String
        oCellRange = oSheet.getCellRangeByName(sPrintArea)'zu druckender Zellbereich 
        oAddress = oCellRange.RangeAddress'Zelladressen des zu druckenden Zellbereiches
        'neuen Druckbereich setzen
        aPrintAreas(0) = oAddress
        oSheet.setPrintAreas(aPrintAreas)
        sUrl = SFolderURL & sFilename & ".pdf"    'Speicherpfad zusammensetzen
        oCalc.storetoUrl(sUrl,myProps()) 'Speichern
        oSheet.setPrintAreas(Array())
     next i
end Sub
Gruß R

Re: Druckbereich aus Zelle lesen

Verfasst: Mi 11. Apr 2018, 20:46
von cynep8
Vielen Dank!!!

Ich werde es morgen gleich mal testen.

Re: Druckbereich aus Zelle lesen

Verfasst: Fr 13. Apr 2018, 16:44
von cynep8
Hat alles funktioniert.

Danke nochmal!