Seite 1 von 1

Bereichsnamen ändern Global -> Sheet

Verfasst: Sa 19. Nov 2022, 09:56
von StefKe
Hallo in die Runde, der Code legt Bereichsnamen neu an, bzw. ändert den Bereich falls die Namen schon vorhanden sind.

Code: Alles auswählen

Sub BereichsNamen()
	Dim Range, Ranges, Sheet, Cell
	Dim sBer_Name$, sBer_Range$
	Dim i	'Zählvariable'
	Dim arrRang
	Dim lngCellEnd& : lngCellEnd = 1000
	arrRang = Array("Datum", "$Import.$B$1:$B$","Aussen", "$Import.$C$1:$C$", "Oben", "$Import.$D$1:$D$", "Unten", "$Import.$E$1:$E$", "Luefter", "$Import.$F$1:$F$")
	
	for i =  2 to 10 Step 2
		sBer_Name = arrRang(i - 2)
		sBer_Range = arrRang(i - 1) & lngCellEnd
		Ranges = ThisComponent.NamedRanges
		If Not Ranges.hasByName(sBer_Name) Then
			Dim CellAddress As New com.sun.star.table.CellAddress
			CellAddress.Sheet = 0     'Das erste Tabellenblatt
			CellAddress.Column = i /2 + 1    'Spalte C
			CellAddress.Row = 1       'Zeile 2
			Ranges.addNewByName(sBer_Name, sBer_Range, CellAddress, 0)
		Else
			Sheet = thisComponent.Sheets(0)
			'bNamedRanges = thisComponent.NamedRanges
			Range = Ranges.getbyName(sBer_Name)
			Range.Content = sBer_Range
		end if
	next i
End Sub
Der Bereich gilt für das gesamte Dokument(global).
Was muss geändert werden dass er nur für das Sheet "Import" gilt?

Danke
Stefan

Re: Bereichsnamen ändern Global -> Sheet

Verfasst: Sa 19. Nov 2022, 10:37
von karolus
Hallo

Du musst den Bereich aus »thisComponent.NamedRanges« rausnehmen und in »thisComponent.Sheets.getByName("Import").NamedRanges zufügen.

Re: Bereichsnamen ändern Global -> Sheet

Verfasst: Sa 19. Nov 2022, 12:14
von StefKe
Danke, läuft :-), ist ja auch logisch :) , nur warum kommt man nicht vorher drauf?

Ich versuche ein Diagramm über die Vergabe von Namen dynamisch zu gestalten. Das Diagramm nimmt die Namensbereiche auf Sheet-Ebene auch an. Aber nach speichern, schließen und wieder öffnen sind die Namen wieder in Zellbereiche umgewandelt. Gibt es dafür einen Lösung?

Vor dem Speichern:
Bild

und nach speichern, schließen und wieder öffnen:
Bild

oder ist es genau das Problem, welches in Foren als "Bug" von LO beschrieben wird?

Danke
Stefan

Re: Bereichsnamen ändern Global -> Sheet

Verfasst: Sa 19. Nov 2022, 12:33
von karolus
Hallo

Das hat aber erstmal nichts mit dem »anlegen von Bereichsnamen« zu tun, … du solltest das als neue Frage stellen, und dabei freundlicherweise den Link zum angesprochenen Bug mitteilen.