Hallo,
ich habe ein Makro geschrieben, welches mir ein Datenblatt per Makro in eine PDF exportiert.
Ablauf:
- Druckbereich wird festgelegt
- Export des Datenblattes in PDF
- der festgelegte Druckbereich wird gelöscht
Nun, habe ich das Problem, wenn ich per hand den Druckbereich abändere (Format - Druckbereiche - Festlegen / Hinzufügen), wird dieser dann zusätzlich zum Druckbereich des Makros addiert.
Jetzt müßte ich sicherstellen, daß im Makro alle Druckbereiche vor dem Punkt "Druckbereich wird festgelegt" gelöscht werden, doch ich schaffe es einfach nicht. ( Bitte bedenken daß ich den Druckbereich nicht kenne, also er ist variabel ! ):oops:
Kann mir einer bitte auf die Sprünge helfen ?
Danke im Vorraus
Gruß
Marius
unbekannten Druckbereich per Makro löschen
Moderator: Moderatoren
Ablauf:
- Druckbereich wird festgelegt
- Export des Datenblattes in PDF
- der festgelegte Druckbereich wird gelöscht
ja
ich verstehe nicht worum es konkret geht. Zunächst ist das was der erste Absatz beschreibt etwas Anderes als das Makro tut, auch soweit kein Problem, nur nach zweitem Absatz findet das vor dem Makro statt, also:Nun, habe ich das Problem, wenn ich per hand den Druckbereich abändere (Format - Druckbereiche - Festlegen / Hinzufügen), wird dieser dann zusätzlich zum Druckbereich des Makros addiert.
Jetzt müßte ich sicherstellen, daß im Makro alle Druckbereiche vor dem Punkt "Druckbereich wird festgelegt" gelöscht werden, doch ich schaffe es einfach nicht. ( Bitte bedenken daß ich den Druckbereich nicht kenne, also er ist variabel ! )
-da ist ein Druckbereich
-dann wird per Hand ein Weiterer hinzugefügt
-dann läuft das Makro
was mir bei dieser Reihenfolge unklar ist ist wieso vor dem Makro Deiner Ansicht nach bestehende Druckbereiche gelöscht werden müßten, weil ich garkeine Möglichkeit sehe per Makro Druckbereiche festzulegen (und festlegen ist nicht hinzufügen) ohne bestehende automatisch zu löschen.
Folgendes tut das beispielsweise:
Code: Alles auswählen
Sub Main
oDoc = StarDesktop.CurrentComponent
oSheet = oDoc.CurrentController.getActiveSheet()
Dim oRanges(0) As New com.sun.star.table.CellRangeAddress
Dim oRanges2() As New com.sun.star.table.CellRangeAddress
oRanges(0).Sheet = oSheet.Rangeaddress.sheet
oRanges(0).StartColumn = 0 : oRanges(0).StartRow = 0
oRanges(0).EndColumn = 9 : oRanges(0).EndRow = 9
oSheet.setPrintAreas(oRanges())
End Sub
somit müßtest Du zunächst erklären was Du meinst.
Gruß
Stephan