Tabellen automatisch ausblenden

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

Biblio
***
Beiträge: 59
Registriert: Di, 26.07.2005 15:01
Wohnort: Bielefeld

Tabellen automatisch ausblenden

Beitrag von Biblio »

Hallo,
könnte es irgendwie möglich sein, die Funktion: Format|Tabelle|Ausblenden mit Hilfe eines Makros zu automatisieren ???
Also, ich habe auf Tabelle1 ein Formel. Das Feld hat einen Namen. Abhängig von dem Ergebnnis der Formel möchte ich Tabelle2 ein- bzw. ausblenden. Wenn das möglich wäre, wie könnte solch ein Makro etwa aussehen ?
Karolus
********
Beiträge: 7532
Registriert: Mo, 02.01.2006 19:48

Beitrag von Karolus »

Hallo

In etwa könnte das/die Makros so aussehen:

Sub Tabeinaus
oSheet = ThisComponent.CurrentController.getActiveSheet()
'in der nächsten Zeile deine "Ausblendbedingung" hinter Value schreiben
if oSheet.GetCellByPosition(0, 0).Value = 5 Then 'Zelle A1entspr.(0, 0)
tabelleAusblenden
end if
'in der nächsten Zeile die "Einblendbedingung"
if oSheet.GetCellByPosition(0, 0).Value > 5 Then
tabelleEinblenden
end if
End Sub

Das obere ist das auszuführende Makro, dort musst die richtige Position deiner Formelzelle eintragen (0, 0) entspricht A1, und die jeweilige Bedingung anpassen.
Die beiden folgenden Makros brauchst du ebenfalls, da sie im oberen aufgerufen werden

sub tabelleAusblenden
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "aTableName"
args1(0).Value = "Tabelle2"
dispatcher.executeDispatch(document, ".uno:Hide", "", 0, args1())
end sub

sub tabelleEinblenden
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "aTableName"
args1(0).Value = "Tabelle2"
dispatcher.executeDispatch(document, ".uno:Show", "", 0, args1())
end sub

Allerdings funktioniert das ganze nicht automatisch bei einer Änderung der Formelzelle , du hast aber die Möglichkeit die Ausführung des Makros an ein Tastaturkürzel und/oder ein "Ereignis" zu binden. (->Extras ->Anpassen 'Tastatur' bzw. ->->'Ereignis')

Gruß Karo
Antworten