❤️ Helfen Sie noch heute, unser LibreOffice Forum zu erhalten! ❤️
Unterstützen Sie das LibreOffice-Forum und helfen Sie uns, unser Ziel für 2025 zu erreichen!
🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱
>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗
Alles zur Programmierung im LibreOffice.
-
cynep8
- Beiträge: 26
- Registriert: Mi 15. Mär 2017, 21:06
Beitrag
von cynep8 » Do 5. Apr 2018, 18:33
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())
-
F3K Total
- * LO-Experte *
- Beiträge: 2501
- Registriert: So 10. Apr 2011, 10:10
Beitrag
von F3K Total » Do 5. Apr 2018, 21:07
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
Windows 11: AOO, LO Linux Mint: AOO, LO
-
cynep8
- Beiträge: 26
- Registriert: Mi 15. Mär 2017, 21:06
Beitrag
von cynep8 » Mi 11. Apr 2018, 20:46
Vielen Dank!!!
Ich werde es morgen gleich mal testen.
-
cynep8
- Beiträge: 26
- Registriert: Mi 15. Mär 2017, 21:06
Beitrag
von cynep8 » Fr 13. Apr 2018, 16:44
Hat alles funktioniert.
Danke nochmal!
An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:
Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.