Seite 1 von 1
Zellnamen per Makro vergeben
Verfasst: Sa, 17.01.2009 18:54
von keksi1970
Hi,
ich möchte per Makro einem oder mehreren Bereichen oder Einzelzellen in einem Sheet Namen geben, auf die ich mit "getcellrangebyname" zugreifen kann
geht das überhaupt ?
lg
Andreas
Re: Zellnamen per Makro vergeben
Verfasst: Sa, 17.01.2009 20:45
von turtle47
Hallo Andreas,
Code: Alles auswählen
Sub Name_Zellbereich
Dim aRefPos As New com.sun.star.table.CellAddress
aRefPos.Sheet = 0
oRanges = ThisComponent.NamedRanges
oRanges.AddNewByName( "NeuerZellbereich21", "Tabelle1.B11:B15", aRefPos, 0 )
End Sub
sollte funktionieren.
Viel Erfolg.
Jürgen
Re: Zellnamen per Makro vergeben
Verfasst: So, 18.01.2009 15:31
von keksi1970
Danke Jürgen,
ich füge also den bereits benannten Bereichen ( oRanges = ThisComponent.NamedRanges)
einfach welche hinzu (oRanges.AddNewByName)
"NeuerZellbereich21" = Name des Zellbereiches
"Tabelle1.B11:B15" = der Bereich
und der Rest ?
aRefPos = ?
0 = ?
lg
Andreas
Re: Zellnamen per Makro vergeben
Verfasst: So, 18.01.2009 16:37
von turtle47
Hi Andreas,
keksi1970 hat geschrieben:
und der Rest ?
aRefPos = ?
0 = ?
wenn Du so fragst kannst Du mir sicher auch erklären wofür der Rest gut ist.
Hier in diesem
Code wird z.B. der Rest auch nicht angegeben.
' we set our named range name:
Dim oCellAddress As new com.sun.star.table.CellAddress
oCellAddress.Sheet = 0 ' The first sheet
oRanges.addNewByName(sName$,xcl$,oCellAddress,0)
Man kann es natürlich auch so machen:
Code: Alles auswählen
Sub Name_Zellbereich
Dim aRefPos As New com.sun.star.table.CellAddress
aRefPos.Sheet = 0
aRefPos.Column = 0
aRefPos.Row = 0
oRanges = ThisComponent.NamedRanges
oRanges.AddNewByName( "NeuerZellbereich21", "Tabelle1.B11:B15", aRefPos, 0 )
End Sub
Ich habe nur keinen Unterschied festgestellt ob mit oder ohne:
Code: Alles auswählen
aRefPos.Column = 0 ' oder 5 oder ? ..........
aRefPos.Row = 0 ' oder 3 oder ? ..........
Viele Grüsse.
Jürgen
Re: Zellnamen per Makro vergeben
Verfasst: So, 18.01.2009 17:47
von Stephan
und der Rest ?
http://api.openoffice.org/docs/common/r ... dNewByName
Ich habe nur keinen Unterschied festgestellt ob mit oder ohne:
Dann markiere verschiedene Zellen bevor Du den Dialog Einfügen-Namen festlegst. Der Zellbereich B11:B15 für den benannte Bereich gilt nämlich bei:
Code: Alles auswählen
Sub Name_Zellbereich
Dim aRefPos As New com.sun.star.table.CellAddress
aRefPos.Sheet = 0
aRefPos.Column = 5
aRefPos.Row = 3
oRanges = ThisComponent.NamedRanges
oRanges.AddNewByName( "NeuerZellbereich23", "Tabelle1.B11:B15", aRefPos, 0 )
End Sub
nur dann wenn die Zelle entsprechenden Offsets markiert ist, hier also F4. Bei allen anderen Zellen ergibt sich ein anderer sichtbarer Eintrag da ja der grundlegende Eintrag relativ ist, also Tabelle1.B11:B15 und nicht etwa, wie es bei manueller Einfügung eines bereiches üblich wäre, $Tabelle1.$B$11:$B$15.
Die Angaben für den Spalten- und Zeilenoffet legen also lediglich die Refrenzadresse fest, es gilt also (hier im Beispiel) das die Verwendung von NeuerZellbereich23 in einer Formel nur dann Tabelle1.B11:B15 referenziert wenn die Formel in Zelle F4 steht, ansonsten verschiebt sich der Bereich entsprechend der Änderung des Bezugs.
Gruß
Stephan
Re: Zellnamen per Makro vergeben
Verfasst: So, 18.01.2009 18:44
von turtle47
Hallo Stephan,
danke für die ausführliche und professionelle Antwort.
Jürgen
Re: Zellnamen per Makro vergeben
Verfasst: Mo, 19.01.2009 10:20
von keksi1970
vielen dank ihr beiden,
also muss ich entweder als Bereich("$Tabelle1.$B$11:B$$15") angeben oder Zelle "A1" markiert haben ?
Und bei "A2" würde sich ohne "$" der Bereich auf "B12:B16" verschieben ?
lg andreas