Hallo,

Bernd Obermayr schrieb:

ich suche nach einem Weg wie ich in Calc per Makro
einem Zellbereich einen Namen geben kann.
Meine Suche im Netz war bisher erfolglos, ich weiss
auch nicht genau, wonach ich suchen soll... Range,
Rangename oder was? ;)

Am Dokument (Service com.sun.star.sheet.SpreadsheetDocument)
http://api.openoffice.org/docs/common/ref/com/sun/star/sheet/SpreadsheetDocument.html
gibt es die Eigenschaft NamedRanges, die ein csss.XNamedRanges-Interface zur�ckliefert:
http://api.openoffice.org/docs/common/ref/com/sun/star/sheet/XNamedRanges.html
Die bietet eine Methode addNewByName. In BASIC sieht das dann ungef�hr so aus:


  Dim aBase As New com.sun.star.table.CellAddress
  ThisComponent.NamedRanges.addNewByName _
    "Name", "$Tabelle1.$A$1", aBase, 0

Die Basisadresse ist nur wichtig f�r relative Referenzen. Willst Du z.B. einen benannten Bereich haben, der auf die Zelle unter der aktuellen Formelzelle zeigt, kannst Du sowas machen:

  Dim aBase As New com.sun.star.table.CellAddress
  aBase.Column = 0
  aBase.Row = 0
  aBase.Sheet = 0
  ThisComponent.NamedRanges.addNewByName _
    "MeinName2", "Tabelle1.A2", aBase, 0

Das bedeutet, der Name soll auf Tabelle1.A2 zeigen, wenn die Formel in Tabelle1.A1 steht (das ist die Position in aBase). Wenn Du dann z.B. in B4 die Formel =MeinName2 eingibst, erh�lst Du den Wert aus Zelle B5.


Wenn ich das geschafft habe, m�chte ich gerne alle
so benannten Bereiche summieren.

Du meinst in Basic? Das w�rde nur gehen, wenn alle Bereiche absolute Adressen enthalten. Ein Bereich kann aber auch beliebige andere Formelteile enthalten, z.B. der Name "Mehrwertst" enth�lt die "Formel" 16%. Das ist der Grund, dass es keinen direkten Weg gibt, um aus einem benannten Bereich einen Zellbereich zu machen.


Was ist eigentlich Dein Ziel? Vielleicht gibt es ja einen anderen Weg.


Viele Gr��e Daniel

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Antwort per Email an