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 » Di, 17.07.2018 19:00

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

RPP63

Re: Zeilen bestimmter Spalten sortieren

Beitrag von RPP63 » Mi, 18.07.2018 06:41

Moin!
Damit Tabellen unabhängig sind, muss das Programm sie als solche erkennen können.
Daher muss zwischen den Tabellen mindestens eine Leerspalte (und/oder -Zeile) vorhanden sein.

Gruß Ralf

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

Re: Zeilen bestimmter Spalten sortieren

Beitrag von Tabellenfeind » Do, 19.07.2018 13:03

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?

RPP63

Re: Zeilen bestimmter Spalten sortieren

Beitrag von RPP63 » Do, 19.07.2018 18:22

Nun ja!
Ich persönlich halte ja erst mal rein gar nichts davon, verschiedene Listen in ein Tabellenblatt zu quetschen!
Im Sinne korrekter Auswertung gehört alles in eine Liste.
Zusätzlich solltest Du eine Spalte "opfern", die ein weiteres Merkmal enthält.
Diese kannst Du dann nicht nur vernünftig nach allem möglichen sortieren, sondern auch eine sehr einfache Auswertung mittels Pivot-Table vornehmen.

Gruß Ralf

Benutzeravatar
lorbass
********
Beiträge: 4116
Registriert: Mo, 01.05.2006 21:29
Wohnort: Bonn

Re: Zeilen bestimmter Spalten sortieren

Beitrag von lorbass » Do, 19.07.2018 19:48

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

RPP63

Re: Zeilen bestimmter Spalten sortieren

Beitrag von RPP63 » Do, 19.07.2018 20:15

Sagenhaft, Lorbass!
Statt dem Programm die Auswahl vorzugeben, nimmt man besser die Maus und markiert manuell!
(Ja, ich weiß, geht auch mit Strg, Umschalt und Pfeiltasten unter Berücksichtigung der "Grenzen")
Das kann doch nicht wirklich Dein Ernst sein, oder?

Gruß Ralf

Stephan
********
Beiträge: 10705
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Zeilen bestimmter Spalten sortieren

Beitrag von Stephan » Do, 19.07.2018 22:06

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) 28-mal heruntergeladen

Antworten