[Gelöst] automatischen filter "Beginne mit"

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

Moderator: Moderatoren

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

[Gelöst] automatischen filter "Beginne mit"

Beitrag von Deko »

Grüße ,

Wie können Sie einen automatischen Filter zum Filtern erstellen: Beginne mit "AM" .

Beispiel: filtern Sie in der Spalte "A" die Wörter, die mit den Buchstaben "AM" zeichen Beginne mit .

Wenn Sie auch ein Beispiel zeigen können: Endet mit "AM" .

Beobachtung : Ich brauche wenden diesen Effekt im Makro von sr. Stephan Sub SimpleSheetFilter

< folgt einer angehängten Datei >

Umarmungen .
Dateianhänge
enthält [AM].ods
(11.76 KiB) 109-mal heruntergeladen
Zuletzt geändert von Deko am So, 23.12.2018 20:59, insgesamt 1-mal geändert.
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: automatischen filter "Beginne mit"

Beitrag von Stephan »

Code: Alles auswählen

Sub Filter_beginnt_mit_am()
  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 = False
    .StringValue = "^am.*"
    .Operator = com.sun.star.sheet.FilterOperator.EQUAL
  End With
  oFilterDesc.setFilterFields(oFields())
  oFilterDesc.ContainsHeader = True
  oFilterDesc.UseRegularExpressions = True
  oSheet.filter(oFilterDesc)
End Sub

Code: Alles auswählen

Sub Filter_endet_mit_am()
  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 = False
    .StringValue = ".*am$"
    .Operator = com.sun.star.sheet.FilterOperator.EQUAL
  End With
  oFilterDesc.setFilterFields(oFields())
  oFilterDesc.ContainsHeader = True
  oFilterDesc.UseRegularExpressions = True
  oSheet.filter(oFilterDesc)
End Sub
Deko
**
Beiträge: 28
Registriert: Fr, 23.11.2018 17:56

Re: automatischen filter "Beginne mit"

Beitrag von Deko »

grüße sr. Stephan ,

         Die Makros: Sub Filter_beginnt_mit_am () und Sub Filter_endet_mit_am () funktionieren bereits einwandfrei , Vielen Dank für Ihre Hilfe .

                     Ich habe jetzt einen alphanumerischen Mix gemacht, dh in der Spalte "A" filtern Sie die Zahlen und in der Spalte "B" die Buchstaben, so dass ich einen Mix zum Filtern von Zahlen und Buchstaben gemacht habe .

                     Aber wenn ich das Makro Sub filter_endet_mit_am () zusammen mit Zahlen mische, funktioniert es nicht .

                    In angehängter Datei funktioniert die Taste 2 des gemischten Makros NICHT richtig .

                  Beachten Sie die Ausführung von Taste 2, da diese nicht korrekt funktioniert .


Freund Umarmungen .
Dateianhänge
Alphanumerisch.ods
(16.55 KiB) 117-mal heruntergeladen
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: automatischen filter "Beginne mit"

Beitrag von Stephan »

ich habe es mir angesehen, finde aber keine LÖsung.

falsch ist in jedem Fall:

Code: Alles auswählen

With oFields(1)
    .Connection = com.sun.star.sheet.FilterConnection.AND
    .Field = 0  
    .IsNumeric = True
    .NumericValue = 2
    .Operator = com.sun.star.sheet.FilterOperator.EQUAL
    .Connection = com.sun.star.sheet.FilterConnection.OR
  End With
denn die zweite Zuweisung .Connection hebt die Erste auf, so das das nichts anderes ist als gleich zu schreiben:

Code: Alles auswählen

With oFields(1)
    .Field = 0  
    .IsNumeric = True
    .NumericValue = 2
    .Operator = com.sun.star.sheet.FilterOperator.EQUAL
    .Connection = com.sun.star.sheet.FilterConnection.OR
  End With

Gruß
Stephan
Deko
**
Beiträge: 28
Registriert: Fr, 23.11.2018 17:56

Re: automatischen filter "Beginne mit"

Beitrag von Deko »

sr. Stephan ,

Ich glaube, ich konnte mich nicht ausdrücken, ich meine die im schaltfläche 2 auf arbeitsblatt 1 der angehängten datei im makro sub alphanumerisch_endet_mit () führt die Operation nicht korrekt aus .

dieses makro sub alphanumerisch_endet_mit () sollten die Zahlen "1" und "2" in Spalte "A" gefiltert werden. Dann werden die endet mit "am" in Spalte "B" gefiltert .

Mir ist aufgefallen, dass das taste 2 beide operationen nicht ordnungsgemäß ausführen kann .

dann muss das makro sub alphanumerisch_endet_mit () angepasst werden .


Umarmungen .
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: automatischen filter "Beginne mit"

Beitrag von Stephan »

Ich glaube, ich konnte mich nicht ausdrücken, ich meine die im schaltfläche 2 auf arbeitsblatt 1 der angehängten datei im makro sub alphanumerisch_endet_mit () führt die Operation nicht korrekt aus .

dieses makro sub alphanumerisch_endet_mit () sollten die Zahlen "1" und "2" in Spalte "A" gefiltert werden. Dann werden die endet mit "am" in Spalte "B" gefiltert .

Mir ist aufgefallen, dass das taste 2 beide operationen nicht ordnungsgemäß ausführen kann .
genauso habe ich Dich verstanden und genau dafür habe ich keine Lösung.


Gruß
Stephan
Deko
**
Beiträge: 28
Registriert: Fr, 23.11.2018 17:56

Re: automatischen filter "Beginne mit"

Beitrag von Deko »

[Gelöst]

Ich habe durch eine Lösung gefunden makro sub FiltrerPlage

Vielen Dank für Ihre Hilfe , sr. Stephan . 8)


Freund Umarmungen .
Antworten