Filtern, Macro aufgezeichnet, beim ausführen keine Aktion

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Filtern, Macro aufgezeichnet, beim ausführen keine Aktion

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

von Charly » Mo, 02.02.2009 20:29

Hallo Clag!
Clag hat geschrieben: wo bzw wie wird für den Kriterienbereich die Spaltenanzahl festgelegt/ermittelt falls noch Spalten dazu kommen ?
Das Makro ermittelt die letzte Spalte und die letzte Zeile des benutzten Bereiches selbst. Kommen rechts also Spalten dazu geht das automatisch. Bedingung ist nur, dass in diesem Bereich nichtsgeschrieben wird, was nicht zum Datenbereich und Kriterienbereich gehört. Die Codezeilen für den Datenbereich sind:

Code: Alles auswählen

'Hinweis: Rechts und unterhalb der Tabelle darf kein weiterer nicht dazugehöriger Wert stehen, sonst muss der Bereich festvergeben werden zB. für Spalte K der Wert 10
EndSpalte = Cursor.getRangeAddress().EndColumn
EndZeile = Cursor.getRangeAddress().Endrow
Bereich = Blatt.getCellRangeByPosition(0,10,Endspalte,Endzeile)
und für den Kriterienbereich:

Code: Alles auswählen

For I = 0 To Endspalte
Gruß
Charly

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

von clag » Mo, 02.02.2009 19:16

Hi,

ja so geht es erheblich flüssiger und neue/andere Kriterien werden auch übernommen und richtig angezeigt,
dann kann man wohl auf das rücksetzen verzichten und unter dem Thema "Ballast" ablegen :wink:
was könnte man dann noch alles aus dem Code entfernen?

Eine Frage noch,
wo bzw wie wird für den Kriterienbereich die Spaltenanzahl festgelegt/ermittelt falls noch Spalten dazu kommen ?


ein schönn relaxten Abend noch

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

von Charly » Mo, 02.02.2009 18:32

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

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

von clag » Mo, 02.02.2009 16:01

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

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

von Charly » Mo, 02.02.2009 15:18

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

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

von clag » Mo, 02.02.2009 14:25

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 !?

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

von Charly » Mo, 02.02.2009 12:49

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

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

von clag » Mo, 02.02.2009 11:44

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) 4513 mal betrachtet

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

von Charly » Mo, 02.02.2009 11:09

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

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

von Charly » Mo, 02.02.2009 09:45

Hallo Clag!

Hier kommt noch eine fehlerbereinigte Version.

Gruß
Charly
Dateianhänge
Filter_setzen_V2.ods
(12.26 KiB) 186-mal heruntergeladen

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

von clag » So, 01.02.2009 13:55

Hallo Charly,

Danke !

und guck du nochmal PM

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

von Charly » So, 01.02.2009 10:39

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

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

von clag » Sa, 31.01.2009 20:02

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

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

von Charly » Sa, 31.01.2009 17:06

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

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

von clag » Sa, 31.01.2009 10:24

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

Nach oben