🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Zellbezüge in Formeln automatisch durch deren Namen (Benannte Ausdrücke) ersetzen

CALC ist die Tabellenkalkulation, die Sie immer wollten.
Antworten
EinsamerBaumWald
Beiträge: 31
Registriert: Fr 28. Nov 2014, 20:41

Zellbezüge in Formeln automatisch durch deren Namen (Benannte Ausdrücke) ersetzen

Beitrag von EinsamerBaumWald » Mi 24. Aug 2016, 11:25

Hallo,
gibt es eine Funktion, mit der es möglich ist, automatisch absolute und relative Zellbezüge durch deren Namen zu ersetzen?

Am Anfang eines Projektes arbeite ich oft ohne Namen, nur mit Zellbezügen. Später stelle ich dann fest, dass es für die Übersichtlichkeit und Nachvollziehbarkeit der Formeln günstig wäre, mit benannten Zellen (Namen) zu arbeiten. Nun würde ich gerne automatisch überall die vergebenen Namen einsetzen, wo noch absolute oder relative Adressierungen stehen.

Wie ist das möglich?

Falls es keine eingebaute Möglichkeit gibt, wäre eine Makrolösung denkbar, die alle Namen auflistet, die Namen auflöst und dann Suchen und Ersetzen durchführt?
Habe keine große Makro-Erfahrung, aber grundlegende Programmierkenntnisse.

Vielen Dank!

gerderich
Beiträge: 25
Registriert: Sa 17. Mai 2014, 16:59

Re: Zellbezüge in Formeln automatisch durch deren Namen (Benannte Ausdrücke) ersetzen

Beitrag von gerderich » Do 25. Aug 2016, 16:36

Moin,
EinsamerBaumWald hat geschrieben:Hallo,
gibt es eine Funktion, mit der es möglich ist, automatisch absolute und relative Zellbezüge durch deren Namen zu ersetzen?
Weiß ich nicht. Bereiche in Sheets benenne ich oft mit dem folgenden Makro um. Dabei vergebe ich allerdings grundsätzlich schon zu Projektstart Namen. Hat was mit meiner Organisation zu tun. Es ist immer schwierig, im nach hinein eine Ordnung zu schaffen. Im Laufe der Projektdauer ändern sich oft, meist in Datenbankbereichen die Ausdehnungen. Dann nutze ich den folgenden Code:

Code: Alles auswählen

' -------------------------------------------------------------
' @params : sRangeName		Name des Bereiches
'			sRange			der Bereich
' -------------------------------------------------------------
private sub setNamedRange(sRangeName, sRange)
	on Error goto ErrorHandler
	Dim oCellAddress as new com.sun.star.table.CellAddress
	Dim thisDocument as Object
	thisDocument = ThisComponent
	'MsgBox "Name ist : " & sRangeName & chr(13) & "Bereich ist : " & sRange	
	with thisDocument.NamedRanges
		if .hasByName(sRangeName) then
			.removeByName(sRangeName)
		end if
		.addNewByName(sRangeName, sRange, oCellAddress, 0)
	end with	' thisDocument.NamedRanges	
	
	exit sub

ErrorHandler:
	setErrorMsg ( "Error " & Err & ": " & chr(13) & _
		Error$ & " (line : " & Erl & ")" & " in setNamedRange")
	
end sub	' setNamedRange()
' --------------------------------------------------------
private sub setErrorMsg(sMessage)
	dim iStyle as integer
	iStyle = MSGBOX_ICON_EXCLAMATION
	MsgBox (sMessage,iStyle,TITLE_ERROR_BOX)
end sub
Diese Sub wird bei meinen Projekten verwendet, wenn per Maske Daten eingegeben oder gelöscht werden. Hernach werden dann benannte Bereiche neu konfiguriert. Ich könnte mir vorstellen, eine Tabelle, die die Namen und die Bereiche führt (Spalte A die Namen und Spalte B die Bereiche). der Inhalt wird dann per Makro dem o.A. Code übergeben. Ob das eine Vereinfachung gegenüber der gleich von Vorneherein vergebenen Namen ist, sei mal dahingestellt.
Vielleicht ist das ja ein Einstieg?
Gruß
Gerd Erich


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten