🙏 Bitte helfen Sie uns das LibreOffice Forum zu erhalten. 🙏
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.

🍀 Wir hoffen auf Ihre Unterstützung - vielen Dank!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

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

Alles zur Programmierung im LibreOffice.
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
* LO-Experte *
Beiträge: 2501
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) 360-mal heruntergeladen
Windows 11: 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: 159
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
* LO-Experte *
Beiträge: 2501
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) 143-mal heruntergeladen
Windows 11: AOO, LO Linux Mint: AOO, LO

Tschubi
Beiträge: 159
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
* LO-Experte *
Beiträge: 2501
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) 176-mal heruntergeladen
Windows 11: AOO, LO Linux Mint: AOO, LO

Tschubi
Beiträge: 159
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
* LO-Experte *
Beiträge: 2501
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) 3422 mal betrachtet
Nun sollte es mal reichen, bissel Eigeninitiative könntest du auch an den Tag legen.
R
Windows 11: AOO, LO Linux Mint: AOO, LO

Tschubi
Beiträge: 159
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 gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten