ich bräuchte Tipps, wie ich denn nun weitermache (Calc).
Ich führe eine Filterung einer Tabelle durch, deren Ergebnis dann ab Zeile 5 abliegt (In FilterZOinit setze ich den Datenbereich, FilterZOsetzen erstellt dann die Ausgabe, im Test wird hier die Spalte 44 fürs Filterkriterium verwendet).
Danach möchte ich die nun gefilterten Zeilen weiter bearbeiten . Aber wie gehe ich da vor (Cursor setzen? Bereich ermitteln??)?
Kann mir da jemand einen Tipp geben?
Hier zur Info mein bisheriger Filtercode:
Code: Alles auswählen
sub FilterZOinit
'Datenbereich für die Filterung definieren
dim iLZ as long 'Letzte Zeile als Index
dim oCur as object 'Cursor
dim oTab as object
dim oDatArea as object
dim oBereich as new com.sun.star.table.CellRangeAddress
'Letzte Zeile ermitteln
oTab = thisComponent.sheets.getByName("TN")
oCur = oTab.createCursor()
oCur.gotoEndofUsedArea(false)
iLZ = oCur.rangeAddress.EndRow
'Datenbereich setzen bzw. überprüfen
if not thisComponent.databaseRanges.hasByName(sZOfilterName) then
'Datenbereich anlegen
with oBereich
.sheet = oTab.RangeAddress.sheet
.StartColumn = 0
.StartRow = 4
.EndColumn = 72
.EndRow = iLZ
end with
thisComponent.databaseRanges.addNewByName(sZOfilterName,oBereich)
else 'Bereich schon vorhanden
oDatBereichZO = thisComponent.databaseRanges.getByName(sZOfilterName)
oDatArea = oDatBereichZO.dataArea
oDatArea.EndRow = iLZ
oDatBereichZO.dataArea = oDatArea
end if
end sub
sub FilterZOsetzen
'Übergeben des Suchwertes aus Maske und filtern mit Ereignis Text modifizieren
Dim oFFeld(0) As New com.sun.star.sheet.TableFilterField
'Suchfeld initialisieren
with oFFeld(0)
.Field = 44 '40+(iVNr-1)*2
.IsNumeric = true
.Operator = com.sun.star.sheet.FilterOperator.GREATER_EQUAL
.NumericValue = 1
end with
'Datenbankbereich prüfen und entsprechend filtern
oDatBereichZO = thisComponent.databaseRanges.getByName(sZOfilterName)
with oDatBereichZO.FilterDescriptor
.containsHeader = true
.IsCaseSensitive = false
.UseRegularExpressions = true
.FilterFields = oFFeld()
end with
oDatBereichZO.refresh()
'??? Danach sollten prinzipiell die gefilterten Zeilen(!) bearbeitet werden ???
end sub