Filtern, Macro aufgezeichnet, beim ausführen keine Aktion

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

Charly
*****
Beiträge: 450
Registriert: Di, 20.01.2004 13:14
Wohnort: München

Re: Filtern, Macro aufgezeichnet, beim ausführen keine Aktion

Beitrag von Charly »

Hallo Clag!

Freut mich, das es jetzt klappt.
Clag hat geschrieben: was muß ich im Macro ändern, damit die Filterkriterien nicht bei "Suche A1" sondern bei "Suche B1" beginnen, um noch eine Überschrift darüber platzieren zu können?
Du musst folgende Codezeile sowohl im Sub FilterSetzen als auch im Sub Filterausfuehren

Code: Alles auswählen

For I = 0 to Endspalte
ändern auf

Code: Alles auswählen

For I = 1 to Endspalte+1
Falls du auch den Ausgabebereich um eine Spalte verschieben willst. Der Code mit der Addressenzuweisung ist im SUB Filtersetzen

Code: Alles auswählen

Ziel = Zielblatt.getCellByPosition(0,Endzeile)
Die Null steht für Spalte A, Für Spalte B müsste eine 1 stehen: (1,Endzeile)

Gruß
Charly

Hallo Karolus!

Deine Ausführungen zu den regulären Ausdrücken waren auch für mich sehr interessant. Danke.

Gruß
Charly
Charly
*****
Beiträge: 450
Registriert: Di, 20.01.2004 13:14
Wohnort: München

Re: Filtern, Macro aufgezeichnet, beim ausführen keine Aktion

Beitrag von Charly »

Hallo Clag!
Charly hat geschrieben: ändern auf
Code:
For I = 1 to Endspalte+1
Bei der Variablen Endspalte brauchst du das "+1" nicht. Das Makro ermittelt die Endspalte ja selbst und durch das Verschieben der Spaltenbeschriftung hat die Variable ja bereits den richtigen Wert.
Ich habe auch übersehen, dass du die Spaltenzuweisung im Sub Filterausfuehren ändern musst.
statt

Code: Alles auswählen

Filterfeld.field = I
schreibe

Code: Alles auswählen

Filterfeld.field = I-1
Ich war gestern wohl nicht ganz bei der Sache.
Gruß
Charly
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: Filtern, Macro aufgezeichnet, beim ausführen keine Aktion

Beitrag von clag »

Hallo Charly,

werde ich gleich noch ändern,

habe aber noch einen Unterschied bemerkt in der jetzigen Macro Version werden im Ausgabebereich nur Daten ausgegeben,
davor wurden auch die Spaltenköpfe mit kopiert wie bei einer manuellen Spezialfilterung.

hier meine TestDB
test-db.ods
(13.99 KiB) 167-mal heruntergeladen
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Charly
*****
Beiträge: 450
Registriert: Di, 20.01.2004 13:14
Wohnort: München

Re: Filtern, Macro aufgezeichnet, beim ausführen keine Aktion

Beitrag von Charly »

Hallo Clag!
Clag hat geschrieben: habe aber noch einen Unterschied bemerkt in der jetzigen Macro Version werden im Ausgabebereich nur Daten ausgegeben,
davor wurden auch die Spaltenköpfe mit kopiert wie bei einer manuellen Spezialfilterung.
Ich habe die Spaltenköpfe ausgeschalten. Grund war, das Makro hat die Kopfzeile nicht nur beim ersten Mal geschrieben, sondern auch bei jeder Oder-Auswahl. Da hätte ich entweder abfragen müssen, ob ich in der folgenden Abfrage der Filterkriterien bin oder eben ganz abschalten.
Der Code dafür ist:

Code: Alles auswählen

oFilterBeschreib.ContainsHeader = false
Mit false ist er ausgeschalten mit true eingeschalten.

Ich dachte diese Zeile kann man sich ja bereits beim Einrichten kopieren. Damit sie aber nicht vom Makro gelöscht wird, muss sie entweder eine Zeile höher stehen oder die Löschroutine geändert werden. Der Code hierfür ist:

Code: Alles auswählen

Loeschbereich = ZielBlatt.getCellRangeByPosition(0,9,Endspalte,Endzeile)
Die Neun steht dabei für die zehnte Zeile. Schreibe hier eine zehn, dann werden die Daten erst ab der 11. Zeile gelöscht.

Gruß
Charly
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: Filtern, Macro aufgezeichnet, beim ausführen keine Aktion

Beitrag von clag »

Hallo Charly,
da gugst du mal in deine PM :)
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Charly
*****
Beiträge: 450
Registriert: Di, 20.01.2004 13:14
Wohnort: München

Re: Filtern, Macro aufgezeichnet, beim ausführen keine Aktion

Beitrag von Charly »

Hallo Claq!
clag hat geschrieben: da gugst du mal in deine PM :)
Ich habe in meine PN geschaut und unten ist das Ergebnis.

Gruß
Charly
Dateianhänge
test-db_V1.ods
(19.84 KiB) 185-mal heruntergeladen
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: Filtern, Macro aufgezeichnet, beim ausführen keine Aktion

Beitrag von clag »

Hallo Charly,

Danke !

und guck du nochmal PM
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Charly
*****
Beiträge: 450
Registriert: Di, 20.01.2004 13:14
Wohnort: München

Re: Filtern, Macro aufgezeichnet, beim ausführen keine Aktion

Beitrag von Charly »

Hallo Clag!

Hier kommt noch eine fehlerbereinigte Version.

Gruß
Charly
Dateianhänge
Filter_setzen_V2.ods
(12.26 KiB) 186-mal heruntergeladen
Charly
*****
Beiträge: 450
Registriert: Di, 20.01.2004 13:14
Wohnort: München

Re: Filtern, Macro aufgezeichnet, beim ausführen keine Aktion

Beitrag von Charly »

Hallo Clag!

Jetzt habe ich doch tatsächlich die falsche Datei angehängt. Anbei die richtige.


Gruß
Charly
Dateianhänge
test-db_V2.ods
(15.92 KiB) 196-mal heruntergeladen
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: Filtern, Macro aufgezeichnet, beim ausführen keine Aktion

Beitrag von clag »

Hi Charly,

klemmt hier noch etwas, guckst du mal auf den screenshot

kA was sein könnte / habe lediglich das Macro gestartet ohne eine Änderung an der Tabelle
Dateianhänge
test-db_V2-1-error.jpg
test-db_V2-1-error.jpg (73.57 KiB) 4522 mal betrachtet
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Charly
*****
Beiträge: 450
Registriert: Di, 20.01.2004 13:14
Wohnort: München

Re: Filtern, Macro aufgezeichnet, beim ausführen keine Aktion

Beitrag von Charly »

Hallo Clag!

Ich kann diese Meldung leider nicht reproduktzieren. Bei mir läuft es. Diese Stelle ist eigentlich unproblematisch.
Kommentiere mal die drei folgenden Zeilen mit einem Apostroph aus und schau, was dann passiert.

Code: Alles auswählen

'Zelle A10 sichtbar auswählen, um aus eventuellen Schreibmodus herauszukommen
Controller = Dok.getCurrentController
Zelle = Blatt.GetCellRangeByName("A10")
Controller.select(Zelle)
Für das eigentliche Programm sind sie unwichtig. Ich wollte damit nur erreichen, dass, wenn eine Zelle bei den Filterwerten noch im Schreibmodus ist, dass dieser abgeschalten wird. Das ist mir beim Testen dauernd passiert.

Gruß
Charly
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: Filtern, Macro aufgezeichnet, beim ausführen keine Aktion

Beitrag von clag »

Hallo Charly,

ok das auskommentieren der 3 Zeilen hat den Hänger beseitigt :D

ein Problemchen ist da aber noch,

wenn ich in einer Spalte mit Zahlen suche funktioniert zwar "<x kleiner x" aber ">x größer x" bringt zZ kein Ergebnis !?
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Charly
*****
Beiträge: 450
Registriert: Di, 20.01.2004 13:14
Wohnort: München

Re: Filtern, Macro aufgezeichnet, beim ausführen keine Aktion

Beitrag von Charly »

Hallo Clag!

Heute ist wohl nicht mein Tag. Da habe ich aus versehen beim rumprobieren eine wichtige Zeile gelöscht. Sorry.

Bitte schreibe nach

Code: Alles auswählen

Case ">"
Filterfeld.operator = com.sun.star.sheet.FilterOperator.GREATER
Wert = Right(Wert,Len(Wert)-1)
noch die Zeile

Code: Alles auswählen

Filterfeld.StringValue = Wert
Gruß
Charly
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: Filtern, Macro aufgezeichnet, beim ausführen keine Aktion

Beitrag von clag »

Hallo Charly,

tätääh ok, jetzt tut was es soll

jetzt ist mir noch eine kleinigkeit aufgefallen wo ich aber nicht weiß ob es für dich so einfach lösbar ist.

in Excel VBA hätte das in etwa "visible off" am Anfang und "visible on" am Ende eines Macro geheißen,
das bewirkt während der Laufzeit werden visuelle Ausgaben unterbunden und nur am Ende wird das Ergebniss angezeigt.
Das verhinderte flackern auf dem Schirm und beschleunigt die Ausführung erheblich.

Hier im konkreten Fall wird bei einer erneuten oder verfeinerten Abfrage erst wieder alles "sichtbar" eingeblendet
und dann wird erneut gefiltert und angezeigt, könnte man dieses sichtbare einblenden noch unterdrücken ?
so ähnlich wie in VBA
(weil in meiner echten Tabelle mit bald über 20.000 Zeilen und weiter wachsend läuft es etwas zäh, für ca 15-20 Sek wird bearbeiten angezeigt)

das wäre noch die Krönung deines Macro schaffens, :D

ansonsten jetzt schon ein SUPER FETTES DANKE
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Charly
*****
Beiträge: 450
Registriert: Di, 20.01.2004 13:14
Wohnort: München

Re: Filtern, Macro aufgezeichnet, beim ausführen keine Aktion

Beitrag von Charly »

Hallo Clag!
Clag hat geschrieben: tätääh ok, jetzt tut was es soll
Das freut mich zu hören.
Clag hat geschrieben: Hier im konkreten Fall wird bei einer erneuten oder verfeinerten Abfrage erst wieder alles "sichtbar" eingeblendet
und dann wird erneut gefiltert und angezeigt, könnte man dieses sichtbare einblenden noch unterdrücken ?
so ähnlich wie in VBA
Ich habe zwar schon mal einen Beitrag gelesen, bei dem man den Bildschirm einfrieren kann, aber ich habe mich damit noch nicht befasst und kann mich auch nicht mehr erinnern.

Kommentiere mal die Zeile aus

Code: Alles auswählen

'Alten Filter löschen
FilterZurueckSetzen
und teste deine Abfragen ohne das Zurücksetzen. Ich glaube nämlich das Löschen des alten Filters ist nicht nötig.

Gruß
Charly
Antworten