[Gelöst] filterspalte "A" mit mehreren Kriter

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

Deko
**
Beiträge: 23
Registriert: Fr, 23.11.2018 17:56

[Gelöst] filterspalte "A" mit mehreren Kriter

Beitrag von Deko » Di, 18.12.2018 03:40

Grüße ,

                    Ich möchte das Makro Sub_SimpleSheetFilter verwenden, um dieselbe Makrooperation der angefügten Datei auszuführen, dh die Zellen "B1" zu filtern und "C1" in spalte "A" .


Hinweis: Ich muss das Sub_SimpleSheetFilter-Makro verwenden .


umarmt Freunde .
mehrere kriterien.ods
(14.28 KiB) 28-mal heruntergeladen
Zuletzt geändert von Deko am Mi, 19.12.2018 12:43, insgesamt 5-mal geändert.

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

Re: filterspalte "A" mit mehreren Kriterien

Beitrag von Stephan » Di, 18.12.2018 16:46

Hinweis: Ich muss das Sub_SimpleSheetFilter-Makro verwenden .
Und welches Problem tritt dabei auf? Das verlinkte Makro funktioniert bei mir wunderbar, außer das Du eine Zeile ergänzen musst (oFilterDesc.ContainsHeader = True) damit die Spaltenbeschriftungen nicht weggefiltert werden:

Code: Alles auswählen

Sub SimpleSheetFilter()
  Dim oSheet  ' Sheet that will contain the filter.
  Dim oFilterDesc  ' Filter descriptor.
  Dim oFields(0) As New com.sun.star.sheet.TableFilterField
  oSheet = ThisComponent.getSheets().getByIndex(0)
  oFilterDesc = oSheet.createFilterDescriptor(True)
  With oFields(0)
    .Field = 0  ' Column A
    .IsNumeric = True
    .NumericValue = 1
    .Operator = com.sun.star.sheet.FilterOperator.EQUAL
  End With
  oFilterDesc.setFilterFields(oFields())
  oFilterDesc.ContainsHeader = True
  oSheet.filter(oFilterDesc)
End Sub

Wie hingegen Deine konkrete Filterbedingungen sein sollen (ich mutmaße dort ist das Problem) kann ich anhand von :

"dieselbe Makrooperation der angefügten Datei auszuführen, dh die Zellen "B1" zu filtern und "C1" in spalte "A" ."

nicht erkennen.
Ich nehme an weil Dir die Übersetzung ins Deutsche schwerfällt, aber dann schreibe es bitte nochmals etwas anders, momentan kann ich das nicht deuten.


Gruß
Stephan

Deko
**
Beiträge: 23
Registriert: Fr, 23.11.2018 17:56

Re: filterspalte "A" mit mehreren Kriterien

Beitrag von Deko » Di, 18.12.2018 17:22

Grüße Stephan,

                                   Zunächst möchte ich mich für die geringen Kenntnisse in der deutschen Sprache entschuldigen .

                                   Details : müssen das Makro Sub SimpleSheetFilter verwenden, um mehrere Kriterien gleichzeitig in Spalte "A" zu filtern .

                                   Ich habe ein Projekt mit dem Makro im Format gestartet :

Code: Alles auswählen

 Dim searchString As String
	Dim sheet As Object
	sheet = thisComponent.sheets(0) 
	
	Dim range As Object
	range = sheet.GetCellRangeByName("A1:M1000")
	
	Dim filterDescriptor As Object
	filterDescriptor = range.CreateFilterDescriptor(true)
	
	Dim filterFields(0) As New com.sun.star.sheet.TableFilterField2
	
	With filterFields(0)
		.field = 0 
		.operator = com.sun.star.sheet.FilterOperator2.NOT_EQUAL
Ich möchte das Projekt also in derselben logischen Begründung fortsetzen .

aber ich muss 3 Kriterien für Spalte "A" hinzufügen .


freund umarmungen .

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

Re: filterspalte "A" mit mehreren Kriterien

Beitrag von Stephan » Mi, 19.12.2018 08:50

Du must Dich nicht für das schlechte Deutsch entschuldigen. Ich verstehe nur inhaltlich nicht, was Du genau willst.

Hier ist ein Beispiel für:

Spalte A ist gleich 1 ODER 2 ODER 3:

Code: Alles auswählen

Sub SimpleSheetFilter()
  Dim oSheet  ' Sheet that will contain the filter.
  Dim oFilterDesc  ' Filter descriptor.
  Dim oFields(2) As New com.sun.star.sheet.TableFilterField
  oSheet = ThisComponent.getSheets().getByIndex(0)
  oFilterDesc = oSheet.createFilterDescriptor(True)
  With oFields(0)
    .Field = 0  ' Column A
    .IsNumeric = True
    .NumericValue = 1
    .Operator = com.sun.star.sheet.FilterOperator.EQUAL
  End With
  With oFields(1)
    .Field = 0  ' Column A
    .IsNumeric = True
    .NumericValue = 2
    .Operator = com.sun.star.sheet.FilterOperator.EQUAL
    .Connection = com.sun.star.sheet.FilterConnection.OR
  End With
  With oFields(2)
    .Field = 0  ' Column A
    .IsNumeric = True
    .NumericValue = 3
    .Operator = com.sun.star.sheet.FilterOperator.EQUAL
    .Connection = com.sun.star.sheet.FilterConnection.OR
  End With
  oFilterDesc.setFilterFields(oFields())
  oFilterDesc.ContainsHeader = True
  oSheet.filter(oFilterDesc)
End Sub


Gruß
Stephan

Deko
**
Beiträge: 23
Registriert: Fr, 23.11.2018 17:56

Re: filterspalte "A" mit mehreren Kriterien

Beitrag von Deko » Mi, 19.12.2018 12:25

[Gelöst]

                Vielen Dank , sr. Stephan .

                das war es wirklich, wonach ich gesucht habe .

                Herzlichen Glückwunsch zu Ihrem Wissen . :shock:


Freund Umarmungen .

Antworten