BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das OpenOffice Forum zu erhalten!

DANKE >><< DANKE

> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des OpenOffice Forums verwendet.
🤗 Als Dankeschön werden Sie im Forum als OO-SUPPORTER gekennzeichnet. 🤗

Diagramm per Makro ausblenden

Alles zur Programmierung im OpenOffice.org
Antworten
Dustin78
Beiträge: 10
Registriert: Sa 30. Mär 2019, 15:46

Diagramm per Makro ausblenden

Beitrag von Dustin78 » So 16. Jun 2019, 17:43

Hallo,

ich möchte ein Diagramm mit einem Kontrollfeld ein- und ausblenden lassen.
Es gibt in diversen Foren verschiedene Beispiele, jedoch funktionieren die alle nicht bei mir.
Ich hoffe mir kann da jemand helfen.

Vielen Dank
Dateianhänge
Diagramm ausblenden.ods
(17.87 KiB) 417-mal heruntergeladen

mikele
Beiträge: 771
Registriert: Sa 23. Jul 2011, 22:09

Re: Diagramm per Makro ausblenden

Beitrag von mikele » Mo 17. Jun 2019, 10:14

Hallo,
in diesem konkreten Fall:

Code: Alles auswählen

Sub Beispiel_Click()

mydocument = ThisComponent
mySheet =  ThisComponent.Sheets.getbyName("Tabelle1")
oChart=mySheet.Drawpage.getByIndex(1)

oChart.Visible = not(oChart.Visible)

End Sub
Da ein Zugriff über den Namen nicht möglich ist, müssten im Zweifelsfall alle Elemente der Drawpage durchlaufen werden, um das Element mit dem entsprechenden Namen zu finden.
Gruß,
mikele

Dustin78
Beiträge: 10
Registriert: Sa 30. Mär 2019, 15:46

Re: Diagramm per Makro ausblenden

Beitrag von Dustin78 » Mo 17. Jun 2019, 20:39

Hallo Mikele,

erstmal Danke.
In der Beispielsdatei funktioniert das wunderbar.
Wenn ich den Code in meine Originaldatei kopiere, funktioniert es nicht.
Den Tabellennamen habe ich natürlich angepasst. Mein Diagramm wird nicht ausgeblendet.
Die Datei kann ich leider nicht hochladen. Die Datei hat mehr als 18 Tabellen.
Bezieht sich der Index (1) immer auf das Layer wo das Diagramm liegt ?
Ausserdem habe ich mehrere Kontrollfelder, wo ich verschiedene Diagramme ein- und ausblenden will. Somit müsste man die Diagramme mit Namen ansprechen.

Danke im Voraus

mikele
Beiträge: 771
Registriert: Sa 23. Jul 2011, 22:09

Re: Diagramm per Makro ausblenden

Beitrag von mikele » Mo 17. Jun 2019, 21:56

Hallo,
das ist der Fall, wie gesagt, in dem du durch alle Objekte der Drawpage iterieren musst.
Anbei mal eine Idee. Den Namen des Diagramms habe ich der Schaltfläche im Feld "Zusatzinformation" übergeben, was ich dann im Makro auswerte. Es sollte dann mit jeder Schaltfläche funktionieren (auch auf verschiedenen Tabellen).

Code: Alles auswählen

Sub Beispiel_Click(oevent)
	sName=oevent.source.model.tag
	oSheet =  ThisComponent.currentcontroller.activesheet
	oDP=oSheet.Drawpage
	for i=0 to oDP.count-1
		if oDP.getByIndex(i).name=sName then
			oDP.getByIndex(i).visible=not(oDP.getByIndex(i).visible)
		end if
	next
End Sub
Dateianhänge
Diagramm ausblenden2.ods
(16.04 KiB) 401-mal heruntergeladen
Gruß,
mikele

azfcuoly
Beiträge: 1
Registriert: So 22. Aug 2021, 13:36
Kontaktdaten:

Re: Diagramm per Makro ausblenden

Beitrag von azfcuoly » So 22. Aug 2021, 13:51

s it possible to hide a specific chart?
I can not seem to hide a chart. The chart is only applicable to certain filtering.
What I want to do is hide the chart until a certain search word is entered into a cell.
I have tried:

Code
Charts.Chart1.Visible = False

or True but no joy.
Ant advice?

------------------------------
Shop the best liquid lipsticks now at Fashion Mentions. Here that offer amazing colors that look amazing.

mikele
Beiträge: 771
Registriert: Sa 23. Jul 2011, 22:09

Re: Diagramm per Makro ausblenden

Beitrag von mikele » So 22. Aug 2021, 17:02

Hi,
if the chart has the name "Chart 1" this code should work:

Code: Alles auswählen

Sub chart_visibility_switch
	oSheet =  ThisComponent.currentcontroller.activesheet
	oDP=oSheet.Drawpage
	for i=0 to oDP.count-1
		if oDP.getByIndex(i).name="Chart 1" then
			oDP.getByIndex(i).visible=not(oDP.getByIndex(i).visible)
		end if
	next
End Sub
Gruß,
mikele

Antworten