MAKRO Zeilen ein- und ausblenden

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

Moderator: Moderatoren

Benutzeravatar
jaMar
**
Beiträge: 31
Registriert: Mo, 14.04.2008 15:56
Wohnort: Berlin

MAKRO Zeilen ein- und ausblenden

Beitrag von jaMar »

Hallo!

Ich habe heute schon einmal unter "Calc" mein Problem geschildert - bin aber hier wohl besser damit aufgehoben;
also, es geht um Folgendes:

Ich bin auf der Suche nach einem geeigneten Makro, das mir Zeilen aus- bzw. einblendet.
Habe auch schon folgendes in Benutzung:

Code: Alles auswählen

    Sub ZeilenEin_Ausblenden

    vorgabe = 0

    max_zeile = 1378
    For x = 0 to max_zeile
       If ThisComponent.Sheets.GetByName("TOUREN").getCellByPosition(vorgabe, x).String = "" Then
          If ThisComponent.Sheets.GetByName("TOUREN").Rows(x).isVisible = False Then
                ThisComponent.Sheets.GetByName("TOUREN").Rows(x).isVisible = True
             Else
                ThisComponent.Sheets.GetByName("TOUREN").Rows(x).isVisible = False
          End if
       End if
    Next x

    End Sub

Das heißt, alle Zeilen, die in der Spalte A eine "1" haben, bleiben eingeblendet,
alle leeren werden ausgeblendet.

Nun mein eigentliches Problem:
Sind erst einmal alle - sagen wir mal - "1-er Zeilen" eingeblendet und die anderen verschwunden,
kann das Makro als nächsten Schritt nur wieder ALLE EINBLENDEN.
Ich möchte nun aber, dass in Spalte A "1" und "" ständig wechseln,
und parallel dazu entsprechend ein- und ausgeblendet wird.
Klingt kompliziert.... Ich möchte einfach nur den Schritt weglassen,
in dem alle Zeilen wieder eingeblendet werden
.

Hat das jemand verstanden...?! Wenn ja, dann macht mich doch bitte auf den Fehler im Makro
aufmerksam - im Schreiben von Makros bin ich nicht sehr gut... :(

Danke schonmal.

Ich hänge mal eine Test-Datei mit an, dann wird mein Problem vielleicht etwas deutlicher.
Dateianhänge
TEST_Makro_ausblenden.ods
(13.13 KiB) 75-mal heruntergeladen
+ + + + + + + + + + + + + + + + + + + + + + +
Eine Idee zu klauen, ist eine Kunst für sich. =)
Karolus
********
Beiträge: 7519
Registriert: Mo, 02.01.2006 19:48

Re: MAKRO Zeilen ein- und ausblenden

Beitrag von Karolus »

Hallo Jana
Meine Glaskugel ist trübe - möchtest du einfach Bereiche abhängig von der Auswahl im Listenfeld ein- oder ausblenden ?
Siehe Anhang
Das Makro ist verknüpft mit dem Ereignis:'modifiziert' des Listenfelds und blendet nur die Auswahl ein
ausblenden_per_Listenfeld.ods
(10.32 KiB) 114-mal heruntergeladen
Gruß Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
Benutzeravatar
jaMar
**
Beiträge: 31
Registriert: Mo, 14.04.2008 15:56
Wohnort: Berlin

Re: MAKRO Zeilen ein- und ausblenden

Beitrag von jaMar »

P E R F E K T. :)

Genau SO wollte ich das, ja.

Vielen Dank!!
+ + + + + + + + + + + + + + + + + + + + + + +
Eine Idee zu klauen, ist eine Kunst für sich. =)
keksi1970
*****
Beiträge: 464
Registriert: So, 27.01.2008 11:47
Wohnort: DU

Re: MAKRO Zeilen ein- und ausblenden

Beitrag von keksi1970 »

wenn ich mir schon die Mühe mache, poste ich das auch :P

Code: Alles auswählen

Sub ZeilenEin_Ausblenden
oDoc = thiscomponent
oSheet = oDoc.Sheets(0)
dim wert as string
vorgabe = 0
max_zeile = 30
zaehler = 0

do while zaehler < max_zeile
	If oSheet.rows(zaehler).isvisible = false then
		Exit Do
	End If
zaehler = zaehler + 1
loop
If zaehler = max_zeile then
	zaehler = 0
	do while zaehler < max_zeile
		If oSheet.getcellbyposition(vorgabe,zaehler).string = "" then
			oSheet.rows(zaehler).isvisible = false
		End If
		zaehler = zaehler +1
	loop
End If
For x = 0 to max_zeile
   If oSheet.getCellByPosition(vorgabe, x).String = "" Then
      If oSheet.Rows(x).isVisible = False Then
         oSheet.Rows(x).isVisible = True
      Else
         oSheet.Rows(x).isVisible = False
      End if
   Elseif oSheet.getCellByPosition(vorgabe, x).String <> "" Then
      If oSheet.Rows(x).isVisible = False Then
         oSheet.Rows(x).isVisible = True
      Else
         oSheet.Rows(x).isVisible = False
      End if
   End if
Next x
End Sub
Zur Erklärung : Es müssen alle Zeilen eingeblendet sein beim 1.Aufruf des Makros. dann wird geprüft, ob KEINE Zeile ausgeblendet ist und alle nicht_leeren Zeilen werden ausgeblendet. Beim 2. aktivieren des Makros sind Zeilen ausgeblendet die den Wert <>"" haben und werden so wieder eingeblendet. Alle anderen dann halt aus.

lg Andreas
Antworten