❤️ Helfen Sie noch heute, unser LibreOffice Forum zu erhalten! ❤️
Unterstützen Sie das LibreOffice-Forum und helfen Sie uns, unser Ziel für 2025 zu erreichen!

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱


❤️ 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. 🤗

[gelöst ✔] Zugriff auf und Manipulation von Diagrammen (charts) (in Calc)

Alles zur Programmierung im LibreOffice.
nitja
Beiträge: 190
Registriert: Di 20. Okt 2020, 15:55

[gelöst ✔] Zugriff auf und Manipulation von Diagrammen (charts) (in Calc)

Beitrag von nitja » Sa 6. Apr 2024, 14:23

Dies ist mein (ab heute, 6.2.'24) auf Fragen zur IDE und Ergänzungen zur Behandlung von Doppelklick … folgendes Thema.
Bei Unklarheiten, was mit Formulierungen hier drin gemeint ist (was ich freilich zu vermeiden suche), mag ein Blick in das Vorgänger-Thema helfen.

Aktuell versuche ich das Diagramm für den vorigen Monat ("Diagramm24·03") (quasi als Vorlage) zu kopieren und auf die (Druck-)Seite der "Grafik"-Tabelle für den aktuellen Monat ("Grafikseite24_04") einzufügen.
Dabei gelingt mir noch nicht einmal der Zugriff auf das schon vorhandene Diagramm.
·
24·04·06 12∶15 Bildschirmfoto.png
24·04·06 12∶15 Bildschirmfoto.png (27.47 KiB) 4943 mal betrachtet
·
Der Code, der dem einzigen Beispiel zu dem Thema (Zugriff auf ein schon vorhandenes Diagramm …),
das ich bei Pitonyak et al.¹⁾ 16.13 Listing 497 Seite 576 gefunden habe,
nachempfunden ist, …

Code: Alles auswählen

REM  *****  BASIC  *****

option explicit

'   library:    Beispiel    module:    Graph    by:    nitja    last update:    24·04·06    status:    very start of design
'   called by:    so far(?) only onActivate is "called" (triggered by manual activation) from "outside"
'   calls (outside of this module):    nothing

const sMonthTmplt="99·99"
dim isInitd as boolean,oDoc as object,oNmdRngs as object,oCharts as object,oCtrlr as object,oGkSht as object
dim sMonth(1) as string,sGfkPg(1) as string,oGfkPg(1) as object,oGPgRa(1) as object
dim oChart(1) as object,sChart(1) as string
dim vTest '                                                                                                     ⚒🌩💢⚠❓🤔🪳

sub test
'   dim <local variables>
'   processing:
    vTest="dummy"
    print vTest
    stop
end sub 'test

sub onActivate
    if not isInitd then doInit
end sub 'onActivate

sub doInit
    if isInitd then exit sub
    oDoc=thisComponent
    oNmdRngs=oDoc.NamedRanges
    oGkSht=oDoc.Sheets.getByIndex(0)
    oCharts=oGkSht.getCharts
    sMonth=Array(Format(DateAdd("m",-1,Date),"yy·mm"),Format(Date,"yy·mm"))
    sGfkPg=Array("Grafikseite" & Replace(sMonth(0),"·","_"),"Grafikseite" & Replace(sMonth(1),"·","_"))
    sChart=Array("Diagramm" & sMonth(0),"Diagramm" & sMonth(1))
    if not oNmdRngs.hasByName(sGfkPg(1)) then NewPage
    if not oCharts.hasByName(sChart(1)) then NewChart
    isInitd=true
end sub 'doInit

sub NewPage
    dim oRng as object, oRfCellAddr as object
'   check presence of previous month's region/page to be used as a template
    if not oNmdRngs.hasByName(sGfkPg(0)) then
'       MsgBox("You'll have to define it manually!" & chr(10) & _
'       "('" & oGkSht.Name & "'is in the leftmost sheet-tab of Calc's main window )", _
'       MB_ICONSTOP,"named range '" & sGfkPg(0) & "'is missing")
        MsgBox("Der muss manuell markiert & festgelegt werden!" & chr(10) & _
        "('" & oGkSht.Name & "'ist im 1. Register links unter den Tabellen in Calcs Hauptfenster)", _
        MB_ICONSTOP,"Benannter Bereich '" & sGfkPg(0) & "'fehlt")
        stop
    end if 'graphic page for previous month missing
    oRfCellAddr=oGkSht.getCellByPosition(0,0).getCellAddress()
    oGfkPg(0)=oNmdRngs.getByName(sGfkPg(0)).getReferredCells
    oGPgRa(0)=oGfkPg(0).RangeAddress
    with oGPgRa(0)                                                                                             'create new region/page for the new month
        oRng=oGkSht.getCellRangeByPosition(.StartColumn,.StartRow+33,.EndColumn,.EndRow+33)
        oNmdRngs.addNewByName(sGfkPg(1),oRng.AbsoluteName,oRfCellAddr,0)                                       'cf. Pitonyak et al. 16.6.1 pgs.531-534
        oGfkPg(1)=oNmdRngs.getByName(sGfkPg(1)).getReferredCells
'       copy & paste will have to be specified here
'       formulae will already be adjusted for the third and later months, when copying them from the previous month in the sheet (done manually for the second one)
'       data will have to be reviewed and automatic adjustment will have to be specified here
    end with
end sub 'NewPage

sub NewChart
'   check presence of previous month's chart to be used as a template
    if not oCharts.hasByName(sChart(0)) then
'       MsgBox("You'll have to create it manually!", _
'       MB_ICONSTOP,"chart '" & sChart(0) & "'is missing")
        MsgBox("Das muss manuell erstellt werden!", _
        MB_ICONSTOP,"'" & sChart(0) & "'fehlt")
        stop
    end if 'chart for previous month missing
    oChart(0)=oCharts.getByName(sChart(0))
    with oChart(0)
        print "check " & sChart(0)
    end with    
end sub 'NewChart
… scheitert schon in Zeile 68 (… .hasByName) obwohl ich das ("Diagramm24·03") im Bildschirmfoto hier drüber ja sehe.

¹) "Pitonyak et al." bezieht im ganzen Thema auf den hier velinkten url.
Zuletzt geändert von nitja am Mo 20. Mai 2024, 22:46, insgesamt 3-mal geändert.
LO 24.2.0.3 (X86_64) auf Linux 6.6.26-1-MANJARO, gnome 45.4, (gtk 4) gtk3 für LO

nitja
Beiträge: 190
Registriert: Di 20. Okt 2020, 15:55

Re: Zugriff auf und Manipulation von Diagrammen (charts) (in Calc)

Beitrag von nitja » Sa 6. Apr 2024, 17:17

:o : Die Zeile

Code: Alles auswählen

vTest=oCharts.getByName("Object 1")
gibt mir Zugriff auf genau das Objekt, das im Bildschirmfoto des Eröffnungs'post's als "Diagramm24·03" erscheint. Irgendwie hat sich die Benennung (via UI) nicht in tiefere Schichten der Datei durchgesetzt. … hm, wie krieg' ich das gebacken? 🤔

Die versuchsweise Benennung des Objekts per

Code: Alles auswählen

vTest.setName(sChart(0))
(in der Hoffnung, dass das neu (per programmiertem copy&paste) zu erstellende Diagramm anschließend auch als "Object 1" angesprochen werden kann (und somit der Code bei den nächsten Monatswechseln wieder funktioniert)) ergibt:
24·04·06 17∶48 Bildschirmfoto.png
24·04·06 17∶48 Bildschirmfoto.png (8.76 KiB) 4925 mal betrachtet
LO 24.2.0.3 (X86_64) auf Linux 6.6.26-1-MANJARO, gnome 45.4, (gtk 4) gtk3 für LO

F3K Total
* LO-Experte *
Beiträge: 2501
Registriert: So 10. Apr 2011, 10:10

Re: Zugriff auf und Manipulation von Diagrammen (charts) (in Calc)

Beitrag von F3K Total » So 7. Apr 2024, 09:34

Moin,
vielleicht hilft dir dieser Link
Gruß R
Windows 11: AOO, LO Linux Mint: AOO, LO

nitja
Beiträge: 190
Registriert: Di 20. Okt 2020, 15:55

Re: Zugriff auf und Manipulation von Diagrammen (charts) (in Calc)

Beitrag von nitja » So 7. Apr 2024, 10:37

Dir auch 'n super-sonnigen Sonntag & herzlichen Dank!
Auf den ersten Blick scheint da aber nichts drin zu sein, was in der genannten Quelle bei Pitonyak et al. nicht ausführlicher behandelt wäre. Was mir fehlt ist der Zugriff auf das bereits vorhandene Diagramm - im Unterschied dazu, ein neues zu erstellen.

Ich bin gerade dabei, das Beispiel fürs Forum um die "Grafik"-Tabelle mit de(m|n) Diagramm(|en) zu erweitern. Damit wird sich das vielleicht besser nachvollziehen/ausprobieren lassen. ← Das wird aber noch bis heute Abend dauern.
Zuletzt geändert von nitja am Mo 8. Apr 2024, 00:14, insgesamt 1-mal geändert.
LO 24.2.0.3 (X86_64) auf Linux 6.6.26-1-MANJARO, gnome 45.4, (gtk 4) gtk3 für LO

mikele
* LO-Experte *
Beiträge: 1947
Registriert: Mo 1. Aug 2011, 20:51

Re: Zugriff auf und Manipulation von Diagrammen (charts) (in Calc)

Beitrag von mikele » So 7. Apr 2024, 14:05

Hallo,
um die Verwirrung aufzulösen, muss man tiefer in die Objekte eintauchen.
Ein Diagramm ist ein komplexes Objekt. Zunächst ist es ein so genanntes "Shape", das ist der rechteckige Rahmen um das Diagramm (aber nicht das Diagramm selbst!). Das Teil konntest du mit "Diagramm24·03" benennen.
In diesem Shape befindet sich in deinem Fall das eigentliche Diagramm. Dieses bekommt einen programminternen Namen (z. b. "Object 1"), der (soweit ich es ausprobieren konnte) nach der Erstellung nicht mehr geändert werden kann (und auch nicht muss).
Gruß,
mikele

nitja
Beiträge: 190
Registriert: Di 20. Okt 2020, 15:55

Re: Zugriff auf und Manipulation von Diagrammen (charts) (in Calc)

Beitrag von nitja » Mo 8. Apr 2024, 00:40

'n Abend mikele! ·oops· ist ja schon wieder "morgen"
… und herzlichen Dank für Deinen Einsatz!
mikele hat geschrieben:
So 7. Apr 2024, 14:05
… Zunächst … "Shape"… .
Das Teil konntest du mit "Diagramm24·03" benennen.
In diesem Shape befindet sich in deinem Fall (ist das nicht immer so?) das eigentliche Diagramm. Dieses bekommt einen programminternen Namen (z. b. "Object 1"), der (soweit ich es ausprobieren konnte) nach der Erstellung nicht mehr geändert werden kann … ¹⁾
(und auch nicht muss ²⁾).
¹) Entspricht genau meiner Beobachtung: Das "shape" wird durch Einfachklick aktiv und bietet neben Einstellungen zur Geometrie eben auch die Benennung.
Das Diagramm wird durch Doppelklick oder "Bearbeiten" im Kontextmenü des shapes angewählt und kann (erst dann) bearbeitet werden.
²) Wie kann ich dann das richtige "Object ?" finden, das ich als "Object <neue #>" an die neue Position (auf die nächste (Druck-)Seite) einfügen will. ich müsste dann darin nur die (Daten-)Tabellennamen vom Vormonat auf den aktuellen ändern.
… im aktuellen, ersten Monatswechsel also von 24·03 auf 24·04 setzen.

Bzw., würde ein programmiertes copy&paste für das shape auch das beinhaltete Diagramm einschließen? … und dann müsste ich immer noch herausfinden, wie das nun heißt um die Tabellenbezüge zu editieren.

Übrigens wurde das 1. (eigentliche) Diagramm im angehängten (um die "Grafik"-Tabelle erweiterten) Beispiel intern als "Object 2" angelegt. Welche Nummern werden dann wohl die in den nächsten Monaten folgenden bekommen: und "wer" ist dann "wer"?
Dateianhänge
Beispiel für LO-Forum v.60'.ods
(1.86 MiB) 185-mal heruntergeladen
LO 24.2.0.3 (X86_64) auf Linux 6.6.26-1-MANJARO, gnome 45.4, (gtk 4) gtk3 für LO

mikele
* LO-Experte *
Beiträge: 1947
Registriert: Mo 1. Aug 2011, 20:51

Re: Zugriff auf und Manipulation von Diagrammen (charts) (in Calc)

Beitrag von mikele » Mo 8. Apr 2024, 20:00

Hallo,
am sinnvollsten wird es, das shape via Dispatcher zu kopieren, siehe
https://ask.libreoffice.org/t/how-to-ma ... acro/38820
und ihm dann den entsprechenden Monatsnamen zu verpassen.
Nach dem kopieren sollte das neue Shape das letzte in der Sammlung sein:

Code: Alles auswählen

oDrawpage=ThisComponent.Sheets(0).DrawPage
oShape=oDrawpage.getByIndex(oDrawpage.Count-1)
Den internen Namen des darin enthaltenen Diagramms erhältst du per

Code: Alles auswählen

oShape.EmbeddedObject.EntryName
Gruß,
mikele

nitja
Beiträge: 190
Registriert: Di 20. Okt 2020, 15:55

Re: Zugriff auf und Manipulation von Diagrammen (charts) (in Calc)

Beitrag von nitja » Di 9. Apr 2024, 03:11

hi mikele, und Dank Dir!
mikele hat geschrieben:
Mo 8. Apr 2024, 20:00
… das shape via Dispatcher … kopieren, siehe
https://ask.libreoffice.org/t/how-to-ma ... acro/38820
und ihm dann den entsprechenden Monatsnamen zu verpassen.
Nach dem kopieren sollte das neue Shape das letzte in der Sammlung sein:

Code: Alles auswählen

oDrawpage=ThisComponent.Sheets(0).DrawPage
oShape=oDrawpage.getByIndex(oDrawpage.Count-1)
Das ist in etwa, wohin ich inzwischen auch gekommen bin.

Aber das:
mikele hat geschrieben:
Mo 8. Apr 2024, 20:00
Den internen Namen des darin enthaltenen Diagramms erhältst du per

Code: Alles auswählen

oShape.EmbeddedObject.EntryName
… hat mir gefehlt, da stand ich "vor der Wand".

Mir ist übrigens aufgefallen, dass in meinem Beispiel mindestens der an sich funktionierende Code des "data"-Moduls durcheinander gekommen ist. Da hat sich eine ältere, inkonsistente Zwischenversion oder sogar eine Sammelsurium aus mehreren solcher Bruchstücken eingeschlichen. Die angehängte .bas-Datei sollte dem aktuellen Stand entsprechen.
öha! .bas oder .txt lässt sich nicht anhängen! Dann eben hier:

Code: Alles auswählen

REM  *****  BASIC  *****

option explicit

'	by:		nitja		last update:	24·04·08		status:		in progress, 1 ⚒complement⚒, 1 ⚠oddness⚠ resolved? ¹
'	called by:							s̶y̶s̶t̶e̶m sheet events, living only @ sheets, for which they've explicitly been set
'	calls (outside of this module):		nothing, s̶o̶ ̶f̶a̶r (adjust graph for new month lives in 'Graph' module)
'	¹) sort of loose ends… 

const sMonthTmplt="99·99"
dim isInitd as boolean,oDoc as object,oCtrlr as object,oDtSht as object,oCrsr as object
dim lRow as integer,nRecs as integer,hasNewRec as boolean,hasGaps as boolean
dim aSel,iSht as integer,iCol as integer,iRow as integer
dim vTest '																										⚒🌩💢⚠❓🤔🪳

sub test
'	dim <local variables>
'	processing:
	if not isInitd then doInit
	vTest=oDoc.getEvents
	vTest=oDtSht.getEvents
	stop
end sub 'test

sub onActivate
'	called by:	s̶y̶s̶t̶e̶m sheet event, living only @ sheets, for which it's been explicitly set	triggered:	manually or by doInit»NewMonth
	if not isInitd then doInit
	with oDoc.CurrentSelection.RangeAddress : aSel=Array(.Sheet,.EndColumn,.EndRow) : end with
	if 1=aSel(0) then
		oDtSht.getCellByPosition(1,lRow).setValue(day(now)+timevalue(now))
		aSel=Array(1,2,lRow)
	else aSel=Array(aSel(0),0,0)
	end if
	doSlct(aSel) : stop '																						stop for manual input
end sub 'onActivate

sub doInit
	if isInitd then exit sub
	oDoc=thisComponent
	oCtrlr=oDoc.getCurrentController
	oDtSht=oDoc.Sheets.getByIndex(1)
	with oDoc.CurrentSelection.RangeAddress : aSel=Array(.Sheet,.EndColumn,.EndRow) : end with
	if 1=aSel(0) then
		oCrsr=oDtSht.createCursorByRange(oDtSht.getCellRangeByPosition(0,0,0,0))
		oCrsr.collapseToCurrentRegion
		lRow=oCrsr.RangeAddress.EndRow
		hasNewRec=(oDtSht.getCellByPosition(0,lRow).string=" 🖎") '												hasNewRec: .string=" 🖎""  - otherwise "✔""
		nRecs=oDtSht.getCellByPosition(0,1).value '																# of complete records (data rows)
		hasGaps=lRow-nRecs-1+hasNewRec
		isInitd=True
		if hasGaps then doFillGaps '																			incl. stop for manual input
		if Format(Date,"yy·mm")<>oDtSht.Name then NewMonth
		if not(hasNewRec) then doMakeNewRec
	end if
	isInitd=true
end sub 'doInit '																								⚠sort of a loose end?⚠ resolved?

sub doSlct(aRng,optional vActiv)
'	called by:	onActivate, doFillGaps, doMakeNewRec, onDblClk
	dim oRng as object
	if not isInitd then doInit
	if ubound(aRng)=2 then oCtrlr.select(oDoc.Sheets(aRng(0)).getCellByPosition(aRng(1),aRng(2)))
	oRng=oDoc.createInstance("com.sun.star.sheet.SheetCellRanges")
	if isMissing(vActiv) then oCtrlr.Select(oRng)
	stop
end sub 'doSlct

sub doFillGaps
	with oDtSht
		for iRow=2 to lRow
			if .getCellByPosition(0,iRow).string=" 🖎" then exit for
		next 'iRow
		for iCol=2 to 5
			if 0=.getCellByPosition(iCol,iRow).type then exit for
		next 'iCol
		doSlct(array(iCol,iRow)) : stop '																		stop for manual input
	end with 'oDtSht
end sub 'doFillGaps

sub doMakeNewRec
	lRow=lRow+1 : iRow=lRow
	with oDtSht
		.getCellByPosition(0,iRow).setFormula("=COUNTBLANK(C" & iRow+1 & ":F" & iRow+1 & ")=0") '				=COUNTBLANK(C25:F25)=0
		 with .getCellByPosition(5,iRow)
			.setFormula("=IF(ISBLANK(E" & iRow+1 & ");CHAR(24);" & 1-.value & ")") ' 							=IF(ISBLANK(E3);CHAR(24);…1⇌0…) 
		 end with '.getCellByPosition(5,iRow)
		.getCellByPosition(7,iRow).setFormula("=IF(E"& iRow+1 &";IF(F"& iRow+1 &";-99;E"& iRow+1 &");-99)") '	=IF(E25;IF(F25;-99;E25);-99)
		.getCellByPosition(8,iRow).setFormula("=IF(E"& iRow+1 &";IF(F"& iRow+1 &";E"& iRow+1 &";-99);-99)") '	=IF(E25;IF(F25;E25;-99);-99)
	end with
	hasNewRec=true : doSlct(array(2,lRow))
end sub 'doMakeNewRec '																							⚠sort of a loose end?⚠ resolved?

function onDblClk(oCell as object) as boolean
'	called by:	s̶y̶s̶t̶e̶m sheet event, living only @ sheets, for which it's been explicitly set
	dim oRng as object
	if not isInitd then doInit 
	onDblClk=true'																								intercept s̶y̶s̶t̶e̶m sheet event (Pitonyak 11.10, last ⁋)
	oRng=oCell.RangeAddress
	iCol=oRng.EndColumn : iRow=oRng.EndRow
	select case iCol
	case 0
		oDtSht.getCellByPosition(1,iRow).setValue(day(now)+timevalue(now)) : iCol=2
	case 5
		with oDoc.Sheets.getByIndex(aSel(0)).getCellByPosition(5,iRow)
			.setFormula("=IF(ISBLANK(E" & iRow+1 & ");CHAR(24);" & 1-.value & ")") ' 							=IF(ISBLANK(E3);CHAR(24);…1⇌0…) 
		end with 'oDoc.Sheets.getByIndex(aSel(0)).getCellByPosition(5,iRow)
	end select 'case iCol
	doSlct(array(aSel(0),iCol,iRow)) : stop '																	stop for manual input
end function 'onDblClk

sub NewMonth
	dim args(1) As New com.sun.star.beans.PropertyValue
	args(0).Name = "EventType" : args(0).Value = "Script" : args(1).Name = "Script"
	if not isInitd then doInit
	oDtSht=oDoc.Sheets.getByIndex(1)
	with oDtSht
		 args(1).Value = "vnd.sun.star.script:Beispiel.Data.onActivate?language=Basic&location=document"
		.Events.replaceByName("OnFocus",args())
		 args(1).Value = "vnd.sun.star.script:Beispiel.Data.onDblClk?language=Basic&location=document"
		.Events.replaceByName("OnDoubleClick",args())
		.getCellByPosition(0,0).setString(Format(Date,"yyyy"))
		.getCellByPosition(1,0).setString(Format(Date,"mmm"))
	end with 'oDtSht
	lRow=2
	oCtrlr.setActiveSheet(oDtSht)
end sub 'NewMonth
LO 24.2.0.3 (X86_64) auf Linux 6.6.26-1-MANJARO, gnome 45.4, (gtk 4) gtk3 für LO

nitja
Beiträge: 190
Registriert: Di 20. Okt 2020, 15:55

Re: Zugriff auf und Manipulation von Diagrammen (charts) (in Calc)

Beitrag von nitja » Di 9. Apr 2024, 21:49

nitja hat geschrieben:
Di 9. Apr 2024, 03:11
mikele hat geschrieben:
Mo 8. Apr 2024, 20:00
… das shape via Dispatcher … kopieren, siehe
https://ask.libreoffice.org/t/how-to-ma ... acro/38820
und ihm dann den entsprechenden Monatsnamen zu verpassen.
Nach dem kopieren sollte das neue Shape das letzte in der Sammlung sein:

Code: Alles auswählen

oDrawpage=ThisComponent.Sheets(0).DrawPage
oShape=oDrawpage.getByIndex(oDrawpage.Count-1)
Das ist in etwa, wohin ich inzwischen auch gekommen bin. …
… also, dass ich irgendeinen Zugriff auf die "shapes"-collection des "Dokuments" oder der Tabelle brauche.
Allein, das verlinkte Makro von "Lupp" ist dabei nutzlos und auch alle anderen Links, die ich davon und über die Suche nach den jeweils verwendeten "services" erreichen konnte.
Manches davon funktioniert - vielleicht - für Bilder, eventuell sogar für Text-Boxen, aber hier eben nicht.
Der Makrorekorder zeichnet den copy-Vorgang (insbesondere die Auswahl der Quelle) auch nicht auf, nur der paste-Vorgang wird protokolliert. Folgerichtig macht das bei der (manuell) erfolgreichen copy&paste-Aktion "aufgezeichnete Makro" bei seinem Aufruf: … gar nichts, außer die Ziel-Zelle auszuwählen und darin nichts einzufügen.
LO 24.2.0.3 (X86_64) auf Linux 6.6.26-1-MANJARO, gnome 45.4, (gtk 4) gtk3 für LO

nitja
Beiträge: 190
Registriert: Di 20. Okt 2020, 15:55

Re: Zugriff auf und Manipulation von Diagrammen (charts) (in Calc)

Beitrag von nitja » Mi 10. Apr 2024, 00:06

Nach längerem nutzlosen Kampf bin ich jetzt bei einem anderen, mehr-versprechenden Ansatz:
Die "shapes", also das was man benennen kann¹⁾, sind nur für Elemente nützlich, die im Navigator unter "Zeichnungsobjekte" erscheinen.
Für OLE-Objekte wie Diagramme (charts) sind sie der "denkbar schlechteste Holzweg".
Nachdem ich die bei "OLE-Ojekte" vergebenen Namen gelöscht habe, erscheinen hier die Namen der Diagramme, so wie sie im Makro verwendet werden können. Dass vorher nicht wirklich klar ist, welchen Namen ("Object :?:") das jüngste Diagramm hat, …
… kann per UBound(<Tabellen-Name>.getCharts.ElementNames) umgangen werden. Dann entsteht keine Verwirrung durch möglicherweise höhere Indizes in anderen Tabellen.
⇒ alles viel einfacher als auf dem "Holzweg" - aber so was von!

¹) Prinzipiell kann man auch charts benennen, aber eben nur vor ihrer Existenz im "Dokument", also während der Erstellung per Makro o.Ä.
LO 24.2.0.3 (X86_64) auf Linux 6.6.26-1-MANJARO, gnome 45.4, (gtk 4) gtk3 für LO


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