[Gelöst] Nein Filtert drei Kriterien in derselben Spalte

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

Moderator: Moderatoren

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

[Gelöst] Nein Filtert drei Kriterien in derselben Spalte

Beitrag von Deko »

Grüße ,

          Ich habe das Makro unten für mehrere Filter .

          Wenn Sie drei Kriterien in die "C" -Spalte von Filter 2 eingeben, funktioniert es nicht richtig .

          wenn Sie aber nur zwei Kriterien in die "C" -Spalte von Filter 2 eintragen, dann funktioniert es ja richtig .

          Der letzte Filter 12 funktioniert nicht mit dem Nummernkriterium in Spalte "M" .

Code: Alles auswählen

Option Explicit
Sub Erweiterter_Filter()

const ZONE1 = "A3:CA5000"	   
const CELL2 = "A1"		        

dim oDoc as object, oFeuille1 as object, oFeuille2 as object
dim oRange as object, oDataRange as object
dim oCelDest as object 	' cellule de destination
dim i as integer, feuille2 as string
dim oFiltreDsc as object
dim operateur as long, nValue as currency

dim tArgs(5) As New com.sun.star.sheet.TableFilterField   

	oDoc = thisComponent
	oFeuille1 = oDoc.Sheets.getByName("2.1Pedidos para Fat")
	oFeuille2 = oDoc.Sheets.getByName("Pedidos_Pendentes")
	
	oRange = oFeuille1.getCellRangeByName(ZONE1)
	oFiltreDsc = oRange.createFilterDescriptor(true)

     
       'spalte A
	tArgs(0).Field = 0						
	tArgs(0).IsNumeric = false	
	tArgs(0).Operator = com.sun.star.sheet.FilterOperator.NOT_EQUAL
	tArgs(0).StringValue =   ".*vazio.*"  


       'spalte C
	tArgs(1).Field = 2	
	tArgs(1).Connection = com.sun.star.sheet.FilterConnection.AND		
	tArgs(1).IsNumeric = false
	tArgs(1).Operator = com.sun.star.sheet.FilterOperator.NOT_EQUAL
	tArgs(1).StringValue =   ".*" & "A5" & ".*"  
	
	
	tArgs(2).Field = 2			
	tArgs(2).IsNumeric = false
	tArgs(2).Operator = com.sun.star.sheet.FilterOperator.NOT_EQUAL
	tArgs(2).StringValue =   ".*" & "A9" & ".*"  
	tArgs(2).Connection = com.sun.star.sheet.FilterConnection.AND
	
	
	tArgs(3).Field = 2			
	tArgs(3).IsNumeric = false
	tArgs(3).Operator = com.sun.star.sheet.FilterOperator.NOT_EQUAL
	tArgs(3).StringValue =   ".*" & "A0035" & ".*"  
	tArgs(3).Connection = com.sun.star.sheet.FilterConnection.AND
	
		
       'spalte D
	tArgs(4).Field = 3
	tArgs(4).Connection = com.sun.star.sheet.FilterConnection.AND			
	tArgs(4).IsNumeric = false
	tArgs(4).Operator = com.sun.star.sheet.FilterOperator.NOT_EQUAL
        tArgs(4).StringValue =   ".*" & "ELASTICO" & ".*" 
    
    
       'spalte M
	tArgs(5).Field = 12
	tArgs(5).Connection = com.sun.star.sheet.FilterConnection.AND		
	tArgs(5).IsNumeric = true
	tArgs(5).Operator = com.sun.star.sheet.FilterOperator.NOT_EQUAL
	tArgs(5).NumericValue =  1 
    
    		  		
	'Destination du résultat
	oCelDest = oFeuille2.getCellRangeByName(CELL2)
	
	with oFiltreDsc									
		.ContainsHeader = true	
		.CopyOutputData = true	
		.OutputPosition = oCelDest.CellAddress
		.UseRegularExpressions = true 
		.setFilterFields(tArgs())		
	end with

	oRange.filter(oFiltreDsc)	
	oDoc.currentController.setActiveSheet(oFeuille2)
	
End Sub
Zuletzt geändert von Deko am Sa, 19.01.2019 15:00, insgesamt 1-mal geändert.
Deko
**
Beiträge: 28
Registriert: Fr, 23.11.2018 17:56

Re: Nein Filtert drei Kriterien in derselben Spalte

Beitrag von Deko »

[Gelöst]

Ich konnte mit dem mit hilfe makro Sub PysFilter lösen .



Umarmung
Antworten