Druckbereich durch Formel anpassen

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

DocSnyd3r
Beiträge: 2
Registriert: Do, 22.09.2011 11:27

Druckbereich durch Formel anpassen

Beitrag von DocSnyd3r »

Hallo,
wie kann ich den Druckbereich mittels einer Formel anpassen?
Ich habe 3 Bereich zwischen denen ich wechseln will, das wären zB A1:B10 oder A1:B10;C1:D10 oder A1:B10;C1:D10;E1:F10.
Will das dynamisch ändern je nachdem ob in der CD oder EF Spalte was steht.
Die spalten sind in Wirklichkeit breiter und haben jeweils noch einen Header deswegen muss ich das jeweils anpassen da die Header nicht gleich sind.
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Druckbereich durch Formel anpassen

Beitrag von Stephan »

Prinzipiell sollte das mit einer benutzerdefinierten Funktion möglich sein:

Code: Alles auswählen

Function Druckbereich(Blattname, StartSpalte, StartZeile, EndSpalte, EndZeile)
  Dim Druckbereich(0) as new com.sun.star.table.CellRangeAddress
  
  'Druckbereich(0).Sheet = blattindex
  Druckbereich(0).StartColumn = StartSpalte
  Druckbereich(0).StartRow = StartZeile
  Druckbereich(0).EndColumn = EndSpalte
  Druckbereich(0).EndRow = EndZeile
  
  With ThisComponent.Sheets().getByName(Blattname)
    .setPrintareas(Druckbereich())
  End With
End Function

Diese Funktion wäre im Tabellenblatt mittels beispielsweise:

=DRUCKBEREICH("Tabelle3";0;0;2;2)

Wobei die numerischen Angaben zu Zeilen und Spalten jeweils bei 0 beginnen, d.h. A1 entspricht (0;0) und der Bereich "A1:B10" entspricht (0;0;1;9)



Gruß
Stephan
DocSnyd3r
Beiträge: 2
Registriert: Do, 22.09.2011 11:27

Re: Druckbereich durch Formel anpassen

Beitrag von DocSnyd3r »

Danke!
Klappt super wo finde ich denn eine Übersicht der ganzen Funktionen?
Also ich suche jetzt noch die Funktion einen zweiten Druckbereich hinzuzufügen.
Habe 3 nicht zusammen hängende Bereiche und der Druckbereich soll erweitert werden sobald mir jemand was in einen der anderen Bereiche schreibt.

Also was in der Art von
With ThisComponent.Sheets().getByName(Blattname)
.addPrintarea(Druckbereich())
End With
Antworten