[GELÖST]Spezialfilter ohne Duplikate in Basic nutzen?

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: [GELÖST]Spezialfilter ohne Duplikate in Basic nutzen?

Re: [GELÖST]Spezialfilter ohne Duplikate in Basic nutzen?

von bst » Di, 20.12.2011 09:03

Morgen,

nimm mal getCellRangeByPosition und bestimme die Anzahl der Zeilen aus der Tabelle:

Code: Alles auswählen

	oSheet = ThisComponent.currentController.ActiveSheet
	iCount = oSheet.Rows.Count
Und, der Spezialfilter erwartet (wie auch der in Excel) in der 1. Zeile eine Überschrift. Versuche mal:

Code: Alles auswählen

oFilterDesc.ContainsHeader = false
cu, Bernd

Re: Spezialfilter ohne Duplikate in Basic nutzen?

von Entchen19 » Mo, 19.12.2011 15:04

Hallo Bernd,

vielen Dank für deine Hilfe, das scheint schon einmal nicht schlecht zu sein :)
So habe ich es hinbekommen, es wäre spannend zu wissen, wie ich wirklich komplette Spalten ansprechen könnte.

Und ich habe noch das Problem, dass er mir den ersten Wert doppelt ausgibt, ich habe keine Ahnung, warum, er macht es auch, wenn der garnicht doppelt existiert :shock:

Code: Alles auswählen

oFilter = oSheet.getcellrangebyname("V1:X60000")   ' getcellrangebyposition(0,0,3,9)
	oFilterDesc = oFilter.createFilterDescriptor(true)
	
	oZielBereich = oSheet.getCellRangeByName("A1").getCellAddress()
	oFilterDesc.ContainsHeader = true
	oFilterDesc.SkipDuplicates = true
	oFilterDesc.CopyOutputData = true
	oFilterDesc.OutputPosition = oZielBereich
	
	oFilter.filter(oFilterDesc)
LG
Entchen

Re: Spezialfilter ohne Duplikate in Basic nutzen?

von bst » Mo, 19.12.2011 13:10

Hi,

versuche das mal so. Siehe: http://www.oooforum.org/forum/viewtopic.phtml?t=5096

HTH, Bernd
--

Code: Alles auswählen

Sub Main
	oSheet = thiscomponent.sheets(0)
	xfilter = oSheet.getcellrangebyname("A1:D10")	' getcellrangebyposition(0,0,3,9)
	xfilterDesc=xFilter.createFilterDescriptor(true)

	oDst = oSheet.getCellRangeByName("F1").getCellAddress()
	xfilterDesc.ContainsHeader=true
	xfilterDesc.SkipDuplicates=true
	xfilterDesc.CopyOutputData=true
	xfilterDesc.OutputPosition=oDst

	xFilter.filter(xFilterDesc)
End Sub 

[GELÖST]Spezialfilter ohne Duplikate in Basic nutzen?

von Entchen19 » So, 18.12.2011 23:48

Hallo zusammen,

wenn ich in Spalte A 1.000 Einträge habe und hiervon 300 Duplikate sind, konnte ich Excel mit dem Spezialfilter und der Option "Keine Duplikate" relativ schnell eine um die Duplikate bereinigte Liste in eine neue Spalte kopieren und zwar hiermit:

Code: Alles auswählen

Columns("V:X").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Columns("A:C"), Unique:=True
Ich hätte gerne das Pendant in Basic hierzu gewusst, der Makrorekorder scheint da nicht wirklich ein gutes Ergebnis zu liefern.

Irgendwer eine Idee hierzu, einen Anhaltspunkt, wie die Funktion hier in Basic heißt?
Die Suche hat nur recht unperformante Alternativen aufgezeigt :(

LG
Entchen

Nach oben