Bereiche ein- oder ausblenden

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

gigabert
*****
Beiträge: 203
Registriert: Di, 11.08.2009 16:06

Bereiche ein- oder ausblenden

Beitrag von gigabert »

Hallo,

ich hab nun ein Problem, welches ich schon im Calc-Forum gepostet hatte, aber eigentlich eher Basic betrifft. Ich schreib das jetzt einfach nochmal hier rein.

Und zwar möchte ich, dass ein Bereich in meinem Sheet aus- oder eingeblendet wird, je nachdem welcher Wert sich aus einer Berechnung von drei Zellen ergibt. Konkret: Ich hab das jetzt bisher für die einzelnen Zellen in diesem Bereich so gemacht: =WENN(I32+K32>O32;"Text...";""). Also einfach einen Text in eine Zelle geschrieben, wenn die Bedingung erfüllt ist, ansonsten leer.

Das Problem ist nun, dass in diesem Bereich aber nicht nur Text ein- oder ausgeblendet werden soll, sondern auch Rahmen um eine Zelle und sogar ein Formular-Kontrollelement (eine Checkbox). Kann ich (z.B. mit einem Makro) diesen gesamten Bereich ein- und ausblenden? Wie geht das mit der Checkbox? Bisher hatte ich nur den Fall, dass ich Zellen ein- oder ausblenden konnte, wenn eine andere Checkbox angeklickt wurde. Da konnte ich ja problemlos ein Makro an die Checkbox hängen. Aber wie kann ich Zustandsveränderungen von Zellen in Makros erkennen und darauf reagieren?

Ich hoffe, meine Beschreibung des Problems war jetzt einigermassen verständlich...

Gruss
Bert
OpenOffice 3.1.1 unter Debian 5.0 und mit PostgreSQL 8.3
openthinking
Beiträge: 2
Registriert: Mi, 25.11.2009 11:31

Re: Bereiche ein- oder ausblenden

Beitrag von openthinking »

Hallo,

bin seit gestern mit der selben Fragestellung konfrontiert und konnt bisher leider nur in MS Excel eine Lösung finden.
Bin gespannt ob es Lösungsansätze gibt!
gigabert
*****
Beiträge: 203
Registriert: Di, 11.08.2009 16:06

Re: Bereiche ein- oder ausblenden

Beitrag von gigabert »

Hallo, ich hab gerade in einem anderen Forum die Antwort erhalten, das würde anstatt mit Makros besser mit Style Functions funktionieren. Hab davon noch keine Ahnung, werde ich mir aber mal genauer anschauen. OK, auf deutsch heisst das wohl "bedingte Formatierung". Da kann man wohl die Formatierung von einzelnen Zellen abhängig von anderen Zellen setzen. Ich bin aber immer noch auf der Suche, wie ich einen ganzen Bereich mehrerer Zellen ein- oder ausblenden kann, je nachdem, ob in einer bestimmten Zelle was drinsteht oder nicht.

Gruss
Bert
OpenOffice 3.1.1 unter Debian 5.0 und mit PostgreSQL 8.3
gigabert
*****
Beiträge: 203
Registriert: Di, 11.08.2009 16:06

Re: Bereiche ein- oder ausblenden

Beitrag von gigabert »

Hallo,

bin gerade etwas weitergekommen mit meinem Problem. Und zwar habe ich mir Formatvorlagen erstellt. Eine mit Rahmen und eine ohne Rahmen. Die kann ich dann mit einem Makro den gewünschten Zellen zuweisen, wenn in einer bestimmten Zelle was drinsteht oder nicht. Dazu hab ich aber einen Listener auf diese eine bestimmte Zelle setzen müssen.

Und zwar hab ich das so gemacht:

Code: Alles auswählen

...
oListener1 = CreateUnoListener( "Change1_", "com.sun.star.util.XModifyListener" )
oRange1 = oSheet.getCellRangeByName("$AB$3")
oRange1.addModifyListener( oListener1 )
...

Sub Change1_modified( aEvent )

	If oSheet.getCellRangeByName("$AB$3").string = "" Then
		Spalte1Ausblenden
	Else
		Spalte1Einblenden
	End If
	
End Sub
In den Subs Spalte1Ausblenden bzw. Spalte1Einblenden setze ich dann die Formatvorlagen auf die gewünschten Zellen oder schreibe in manche Zellen was rein oder nicht. So kann ich einen Bereich ein- oder ausblenden, abhängig, ob in der Zelle (hier A3) was drin steht oder nicht.

Mir ist nur ein kleines Problem aufgefallen: wenn ich die Calc-Datei öffne und das erste Mal etwas in die Zelle A3 reinschreiben möchte, dann verliert die Zelle A3 nach dem ersten eingetippten Buchstaben den Fokus und ich muss erst nochmal mit der Maus in die Zelle A3 reinklicken, damit ich dort weiterschreiben kann. Das passiert aber nur beim ersten Versuch, danach klappt es ohne den Fokusverlust. Ich vermute mal, dass es etwas mit dem Listener zu tun haben könnte. Vielleicht kann mir ja jemand weiterhelfen...

Gruss
Bert
OpenOffice 3.1.1 unter Debian 5.0 und mit PostgreSQL 8.3
gigabert
*****
Beiträge: 203
Registriert: Di, 11.08.2009 16:06

Re: Bereiche ein- oder ausblenden

Beitrag von gigabert »

gigabert hat geschrieben:Mir ist nur ein kleines Problem aufgefallen: wenn ich die Calc-Datei öffne und das erste Mal etwas in die Zelle A3 reinschreiben möchte, dann verliert die Zelle A3 nach dem ersten eingetippten Buchstaben den Fokus und ich muss erst nochmal mit der Maus in die Zelle A3 reinklicken, damit ich dort weiterschreiben kann. Das passiert aber nur beim ersten Versuch, danach klappt es ohne den Fokusverlust. Ich vermute mal, dass es etwas mit dem Listener zu tun haben könnte. Vielleicht kann mir ja jemand weiterhelfen...
Hmm, irgendwie taucht dieses Problem nur dann auf, wenn ich noch die Symbolleiste für die Formular-Kontrollelemente geöffnet habe. Wenn diese Symbolleiste weg ist, dann klappt es auch mit der Eingabe in die Zelle problemlos.

Na ja, jetzt hab ich es jedenfalls über Makros hingekriegt, bestimmte Bereiche ein- oder auszublenden. Muss aber jede Zelle einzeln füllen oder leeren, bzw. mit einem Rahmen versehen.

Gruss
Bert
OpenOffice 3.1.1 unter Debian 5.0 und mit PostgreSQL 8.3
Antworten