CALC: Liste mit Formeln per Standardfilter filtern
Verfasst: Do, 14.02.2013 12:32
Hallo liebe Gemeinde,
ich hab da in Calc eine Liste die per Formeln erstellt wird. Nun möchte ich diese Liste von Leerzellen befreit gefiltert an anderer Stelle ausgeben.
Eigentlich habe ich da ja schon ein funktionierendes Makro dafür erstellt, jedoch gefällt mir meine Lösung noch nicht so richtig. Denn ich gehe dabei folgenden Weg.
Als erstes kopiere ich die Liste hiermit
in einen anderen Zellbereich. Dadurch verschwinden schon mal die Formeln.
Und im nächstem Schritt filtere ich die Daten.
Beide zitierte Codes sind auf das wesentliche reduziert, und wie schon erwähnt funktioniert das auch alles.
Ich frage mich jetzt nur ob sich das nicht vielleicht doch ein wenig vereinfachen lässt, also ohne den zwischenschritt die Daten zu kopieren?
Ich denke mir das vielleicht noch irgendwo im eigentlichem Filter-Abschnitt noch etwas eingetragen werden kann, dass die Formeln irgendwie nicht berücksichtigt werden. Aber in der deutschen Übersetzung von Andrew Pitonyak find ich momentan keinen Weg dazu, oder übersehe ich da was?
Oder kann ich meine Methode durchaus so lassen, da ein Ausbau des Filter-Abschnitt zu Umfangreich werden kann?
Ach ja!
Natürlich habe ich auch hier die SuFu benutzt, aber noch nicht das passende gefunden. Falls ich nicht wieder zu Blind war.
Ich freu mich auf eure Antworten
.
Gruß
balu
ich hab da in Calc eine Liste die per Formeln erstellt wird. Nun möchte ich diese Liste von Leerzellen befreit gefiltert an anderer Stelle ausgeben.
Eigentlich habe ich da ja schon ein funktionierendes Makro dafür erstellt, jedoch gefällt mir meine Lösung noch nicht so richtig. Denn ich gehe dabei folgenden Weg.
Als erstes kopiere ich die Liste hiermit
Code: Alles auswählen
dim aDatArray()
aDatArray = oQuelle.getCellRangeByName("A1:A1000").getDataArray
oQuelle.getCellRangeByName("B1:B1000").setDataArray(aDatArray)
Und im nächstem Schritt filtere ich die Daten.
Code: Alles auswählen
oBereichAlleDaten = oQuelle.getCellRangeByName("B1:B1000")
oFilterBeschreib = oBereichAlleDaten.createFilterDescriptor (True)
oFilterFeld = createUnoStruct("com.sun.star.sheet.TableFilterField")
With oFilterFeld
.Operator = com.sun.star.sheet.FilterOperator.NOT_EMPTY
End With
oFilterBeschreib.setFilterFields(Array(oFilterFeld))
oFilterBeschreib.CopyOutputData = True
oZielCelle = oCSV.getCellByPosition(20, iLetzteZelle + iCellIDX)
oFilterBeschreib.OutputPosition = oZielCelle.CellAddress
oBereichAlleDaten.filter(oFilterBeschreib)
Ich frage mich jetzt nur ob sich das nicht vielleicht doch ein wenig vereinfachen lässt, also ohne den zwischenschritt die Daten zu kopieren?
Ich denke mir das vielleicht noch irgendwo im eigentlichem Filter-Abschnitt noch etwas eingetragen werden kann, dass die Formeln irgendwie nicht berücksichtigt werden. Aber in der deutschen Übersetzung von Andrew Pitonyak find ich momentan keinen Weg dazu, oder übersehe ich da was?
Oder kann ich meine Methode durchaus so lassen, da ein Ausbau des Filter-Abschnitt zu Umfangreich werden kann?
Ach ja!
Natürlich habe ich auch hier die SuFu benutzt, aber noch nicht das passende gefunden. Falls ich nicht wieder zu Blind war.
Ich freu mich auf eure Antworten

Gruß
balu