Zeilen bestimmter Spalten sortieren

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

Tabellenfeind
Beiträge: 5
Registriert: Mo, 16.07.2018 18:35

Zeilen bestimmter Spalten sortieren

Beitrag von Tabellenfeind »

Hi,
Ich verstehe leider die Funktionsweise der integrierten sortierfunktion nicht so richtig.
Ich habe in meinem sheet 4 Tabellen nebeneinander, jede mit 5 Spalten. Jede der Tabellen beginnt mit einer Spalte in die ein Datum eingetragen wird und endet mit einer Spalte in die ein Geldbetrag eingetragen wird.

Ich würde gerne jede der Tabellen Standard mäßig nach Datum sortiert haben, mit der Möglichkeit sie gelegentlich nach der Höhe des Geldbetrags sortieren zu lassen. Wie mache ich das am besten, so dass alle Tabellen unabhängig von einander bleiben?
Vielen Dank im Voraus
Tabellenfeind
Beiträge: 5
Registriert: Mo, 16.07.2018 18:35

Re: Zeilen bestimmter Spalten sortieren

Beitrag von Tabellenfeind »

Danke für die Info, damit sind meine Tabellen schon mal unabhängig. Ich würde es aber gerne so haben, dass ich die Tabellen nach Datum und nach Geldbetrag auf Knopfdruck sortieren kann. Wie mache ich das denn am besten?
Benutzeravatar
lorbass
********
Beiträge: 4116
Registriert: Mo, 01.05.2006 21:29
Wohnort: Bonn

Re: Zeilen bestimmter Spalten sortieren

Beitrag von lorbass »

Tabellenfeind hat geschrieben: Do, 19.07.2018 13:03 Ich würde es aber gerne so haben, dass ich die Tabellen nach Datum und nach Geldbetrag auf Knopfdruck sortieren kann. Wie mache ich das denn am besten?
Um eine bestimmte von mehreren Tabellen auf einem Arbeitsblatt zu sortieren, markiere zunächst den zu sortierenden Bereich, also den Zellbereich, den die gewünschte Tabelle auf dem Arbeitsplatz einnimmt. Öffne dann durch Wahl des Menüpunktes Daten → Sortieren… den Dialog Sortieren auf. Dort kannst du die Sortierkriterien festlegen und die Sortierung anstoßen.

So geht's mit einer bestimmten Tabelle „zu Fuß“. Um das Ganze „auf Knopfdruck“ ausführen zu lassen, musst du ein Makro programmieren und es mit dem „Knopf“ verbinden.

Hilfestellung bei der Progammierung erhältst du im Bereich Makros und allgemeine Programmierung.

Gruß
lorbass
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Zeilen bestimmter Spalten sortieren

Beitrag von Stephan »

ich habe mal schnell mit dem Makrorekorder und ein paar händischen Codezeilen etwas zusammengeklickt was prinzipiell funktioniert, allein ist die Bedienung nicht so ganz optimal und es wird nicht auf die richtige Markierung geprüft.
Das Ganze soll lediglich eine erste Anregung sein, mir ist es momentan zu aufwändig das alles zu perfektionieren.

-In anhängender Datei zunächst eine Zelle in der Spalte markieren , nach welcher sortiert werden soll (die Markierung muss innerhalb der jeweiligen gefüllten Teiltabelle sein)
-dann im Menü (ganz rechts) Sortieren-aufwärts sortieren oder abwärts sortieren klicken und es wird sortiert

der Code ist lediglich Folgender:

Code: Alles auswählen

sub aufwaerts()
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(6) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ByRows"
args1(0).Value = true
args1(1).Name = "HasHeader"
args1(1).Value = true
args1(2).Name = "CaseSensitive"
args1(2).Value = false
args1(3).Name = "IncludeAttribs"
args1(3).Value = true
args1(4).Name = "UserDefIndex"
args1(4).Value = 0
args1(5).Name = "Col1"
args1(5).Value = ThisComponent.getCurrentSelection.RangeAddress.Startcolumn + 1
args1(6).Name = "Ascending1"
args1(6).Value = false

dispatcher.executeDispatch(document, ".uno:DataSort", "", 0, args1())
end sub

sub abwaerts()
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(6) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ByRows"
args1(0).Value = true
args1(1).Name = "HasHeader"
args1(1).Value = true
args1(2).Name = "CaseSensitive"
args1(2).Value = false
args1(3).Name = "IncludeAttribs"
args1(3).Value = true
args1(4).Name = "UserDefIndex"
args1(4).Value = 0
args1(5).Name = "Col1"
args1(5).Value = ThisComponent.getCurrentSelection.RangeAddress.Startcolumn + 1
args1(6).Name = "Ascending1"
args1(6).Value = true

dispatcher.executeDispatch(document, ".uno:DataSort", "", 0, args1())
end sub
Gruß
Stephan
Dateianhänge
Sortieren.ods
(14.09 KiB) 150-mal heruntergeladen
Antworten