BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das LibreOffice 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 LibreOffice Forums verwendet.
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

[gelöst] Calc: Zeilen gruppieren und Gruppierung aufheben

Alles zur Programmierung im LibreOffice.
Antworten
bma
Beiträge: 2
Registriert: Do 22. Jun 2017, 06:38

[gelöst] Calc: Zeilen gruppieren und Gruppierung aufheben

Beitrag von bma » Mi 5. Jul 2017, 07:18

Guten Morgen!

Ich will in Calc per Makro Zeilen gruppieren (F12-Taste), die Gruppierung schließen und ggfs. per Makro alle Gruppierunen wieder aufheben.

Ein aufgezeichnetes Makro bringt mir hier mit ".uno:Group" bzw. ".uno:Ungroup" schon die wichtigen Befehle, ich schaffe es aber nicht, diese in mein Makro zu übernehmen.

Leider finde ich zu dem Thema kein passendes Beispiel im Internet und wäre daher für eine kleine Hilfestellung dankbar.

Gruß
Bernhard
Zuletzt geändert von bma am Do 6. Jul 2017, 12:57, insgesamt 1-mal geändert.

F3K Total
Beiträge: 2409
Registriert: So 10. Apr 2011, 10:10

Re: Calc: Zeilen gruppieren und Gruppierung aufheben

Beitrag von F3K Total » Do 6. Jul 2017, 12:36

Jo,
das geht zum Beispiel so:

Code: Alles auswählen

Sub Gruppierungen_setzen
    oSheet = thisComponent.sheets.getbyName("Tabelle1")
    for i = 0 to 10
        nStart = i*10 + 1
        nEnd = nStart + 6
        oRangeaddress = oSheet.GetCellRangeByPosition(0,nStart,0,nEnd).RangeAddress
        'com.sun.star.table.TableOrientation.COLUMNS
        'com.sun.star.table.TableOrientation.ROWS
        oSheet.group(oRangeaddress,com.sun.star.table.TableOrientation.ROWS)
        oSheet.HideDetail(oRangeaddress)
    next i
End Sub

Sub Gruppierungen_aufheben
    oSheet = thisComponent.sheets.getbyName("Tabelle1")
    for i = 0 to 10
        nStart = i*10 + 1
        nEnd = nStart + 6
        oRangeaddress = oSheet.GetCellRangeByPosition(0,nStart,0,nEnd).RangeAddress
        oSheet.ShowDetail(oRangeaddress)
        oSheet.ungroup(oRangeaddress,com.sun.star.table.TableOrientation.ROWS)
    next i
End Sub
Beispiel anbei
Gruß R
Dateianhänge
Group_ungroup_ROWS.ods
(15.28 KiB) 205-mal heruntergeladen
Windows 10: AOO, LO Linux Mint: AOO, LO

bma
Beiträge: 2
Registriert: Do 22. Jun 2017, 06:38

Re: Calc: Zeilen gruppieren und Gruppierung aufheben

Beitrag von bma » Do 6. Jul 2017, 12:57

Perfekt! Vielen Dank!
Bernhard

Tschubi
Beiträge: 138
Registriert: Fr 13. Nov 2015, 12:09

Re: Calc: Zeilen gruppieren und Gruppierung aufheben

Beitrag von Tschubi » Mi 14. Feb 2024, 13:31

F3K Total hat geschrieben:
Do 6. Jul 2017, 12:36
Jo,
das geht zum Beispiel so:

Code: Alles auswählen

Sub Gruppierungen_setzen
    oSheet = thisComponent.sheets.getbyName("Tabelle1")
    for i = 0 to 10
        nStart = i*10 + 1
        nEnd = nStart + 6
        oRangeaddress = oSheet.GetCellRangeByPosition(0,nStart,0,nEnd).RangeAddress
        'com.sun.star.table.TableOrientation.COLUMNS
        'com.sun.star.table.TableOrientation.ROWS
        oSheet.group(oRangeaddress,com.sun.star.table.TableOrientation.ROWS)
        oSheet.HideDetail(oRangeaddress)
    next i
End Sub

Sub Gruppierungen_aufheben
    oSheet = thisComponent.sheets.getbyName("Tabelle1")
    for i = 0 to 10
        nStart = i*10 + 1
        nEnd = nStart + 6
        oRangeaddress = oSheet.GetCellRangeByPosition(0,nStart,0,nEnd).RangeAddress
        oSheet.ShowDetail(oRangeaddress)
        oSheet.ungroup(oRangeaddress,com.sun.star.table.TableOrientation.ROWS)
    next i
End Sub
Beispiel anbei
Gruß R
Hallo F3K Total,

ich suche eine Möglichkeit bereits vorhandene Gruppierungen / Gliederungen in einem definierten Bereich mittels Makro aufzuklappen und wieder zuzuklappen. Habe es auch bereits hier gepostet, aber scheint schwierig zu sein, denn bisher habe ich keine Rückmeldung erhalten.

viewtopic.php?f=12&t=39470

Dein Makro hier im Post hingegen erstellt und entfernt Gruppierungen / Gliederungen. Hast du vielleicht einen Lösungsansatz, Vorschlag für meine Problemstellung?

Vielen Dank und Grüße
Ubuntu 22.04.2 LTS / Windows 11 / LO 7.3.7.2

F3K Total
Beiträge: 2409
Registriert: So 10. Apr 2011, 10:10

Re: [gelöst] Calc: Zeilen gruppieren und Gruppierung aufheben

Beitrag von F3K Total » Mi 14. Feb 2024, 16:47

Moin,
alle Gruppierungen im benutzen Bereich ein/ausblenden:

Code: Alles auswählen

sub Gruppierungen_einblenden
    oSheet = ThisComponent.Sheets.getbyName("Tabelle1")
    oCursor = oSheet.createCursor
    oCursor.gotoStart
    oCursor.GotoEndofUsedArea(true)
    oRangeaddress = oCursor.RangeAddress
    oSheet.ShowDetail(oRangeaddress)
end sub

sub Gruppierungen_ausblenden
    oSheet = ThisComponent.Sheets.getbyName("Tabelle1")
    oCursor = oSheet.createCursor
    oCursor.gotoStart
    oCursor.GotoEndofUsedArea(true)
    oRangeaddress = oCursor.RangeAddress
    oSheet.HideDetail(oRangeaddress)
end sub
Und wenn du dieses Makro an einen Button bindest, der folgenden Titel hat: Gruppierungen auf Tabelle 1 ausblenden
erzeugst du eine Umschalter:

Code: Alles auswählen

sub Gruppierungen_ausblenden_Einblenden(oEvent)
    oButton = oEvent.Source.model
    oSheet = ThisComponent.Sheets.getbyName("Tabelle1")
    oCursor = oSheet.createCursor
    oCursor.gotoStart
    oCursor.GotoEndofUsedArea(true)
    oRangeaddress = oCursor.RangeAddress
    if oButton.label = "Gruppierungen auf Tabelle 1 ausblenden" then
        oButton.label = "Gruppierungen auf Tabelle 1 einblenden"
        oSheet.HideDetail(oRangeaddress)
    else 
        oButton.label = "Gruppierungen auf Tabelle 1 ausblenden" 
        oSheet.ShowDetail(oRangeaddress)
    endif
end sub
Beispieldatei anbei.
Gruß R
Dateianhänge
Gruppierte_Zellen_ein_ausblenden.ods
(39.29 KiB) 10-mal heruntergeladen
Windows 10: AOO, LO Linux Mint: AOO, LO

Tschubi
Beiträge: 138
Registriert: Fr 13. Nov 2015, 12:09

Re: [gelöst] Calc: Zeilen gruppieren und Gruppierung aufheben

Beitrag von Tschubi » Mi 14. Feb 2024, 18:52

Hallo F3k Total,

danke schon mal für deine schnelle Hilfe.

Ich würde das gern auf einen Begrenzten Zeilen-Bereich anwenden wollen, denn nur diese Gruppierungen und nicht alle sollen ein- und wieder ausgeblendet werden.

Im Idealfall würde ich das gern über einen ToggleButton ein- und wieder ausblenden wollen und die Beschriftung und Farbe des Button entsprechend anpassen. Aber das funktioniert so irgendwie nicht.

Problemstellung zus. ist noch das der ToggleButton in Tabelle2 ist und die Gruppierungen in Tabelle1 im Bereich A200:A500.

Code: Alles auswählen

Sub ToggleGruppenDepots()
    Dim sheet As Object
    Dim groups As Object
    Dim button As Object

    sheet = ThisComponent.Sheets.getByName("Tabelle1")
    groups = sheet.Rows
    button = sheet.DrawPage.Forms.getByName("ToggleButton")

    If Not button Is Nothing Then
        ' Ändere die Beschriftung und Farbe des Buttons im Wechsel
        If button.Label = "Gruppen öffnen" Then
            button.Label = "Gruppen schließen"
            button.BackgroundColor = RGB(255, 0, 0) ' Ändere die Farbe nach Bedarf
            Gruppierungen_einblenden  'F3K Total Makro
        Else
            button.Label = "Gruppen öffnen"
            button.BackgroundColor = RGB(0, 255, 0) ' Ändere die Farbe nach Bedarf
            Gruppierungen_ausblenden  'F3K Total Makro
        End If
    End If
End Sub
Kannst du mir auch hier weiterhelfen?

Danke!
Ubuntu 22.04.2 LTS / Windows 11 / LO 7.3.7.2

F3K Total
Beiträge: 2409
Registriert: So 10. Apr 2011, 10:10

Re: [gelöst] Calc: Zeilen gruppieren und Gruppierung aufheben

Beitrag von F3K Total » Do 15. Feb 2024, 06:50

Bitteschön
Dateianhänge
Gruppierte_Zellen_ein_ausblenden.ods
(36.78 KiB) 12-mal heruntergeladen
Windows 10: AOO, LO Linux Mint: AOO, LO

Tschubi
Beiträge: 138
Registriert: Fr 13. Nov 2015, 12:09

Re: [gelöst] Calc: Zeilen gruppieren und Gruppierung aufheben

Beitrag von Tschubi » Do 15. Feb 2024, 07:10

Hallo F3k Total,

sieht schon echt super aus, vielen Dank.

Ich würde das gerne aber noch nur auf einen definierten Zeilenbereich einschränken wollen und damit eben nur gezielt dort die Aktion ausführen wollen und alle anderen Gruppierungen in Tabelle 1 unberührt lassen.

Vielen Dank und Gruß
Ubuntu 22.04.2 LTS / Windows 11 / LO 7.3.7.2

F3K Total
Beiträge: 2409
Registriert: So 10. Apr 2011, 10:10

Re: [gelöst] Calc: Zeilen gruppieren und Gruppierung aufheben

Beitrag von F3K Total » Do 15. Feb 2024, 11:26

Wenn du dir das Makro mal ansehen würdest, müsstest du feststellen, dass es genau so ist:
AAA.png
AAA.png (26.04 KiB) 229 mal betrachtet
Nun sollte es mal reichen, bissel Eigeninitiative könntest du auch an den Tag legen.
R
Windows 10: AOO, LO Linux Mint: AOO, LO

Tschubi
Beiträge: 138
Registriert: Fr 13. Nov 2015, 12:09

Re: [gelöst] Calc: Zeilen gruppieren und Gruppierung aufheben

Beitrag von Tschubi » Do 15. Feb 2024, 14:03

Hallo F3K Total,

hm, vermutlich hatte ich die alte Datei geöffnet, sorry.

Vielen Dank für deine Mühe und Geduld!
Ubuntu 22.04.2 LTS / Windows 11 / LO 7.3.7.2

An alle, die das LibreOffice-Forum nutzen:


Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das Jahr 2024.
Einfach per Kreditkarte oder PayPal.
Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.

❤️ Vielen lieben Dank für Ihre Unterstützung ❤️

Antworten