FIlter programmieren

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: FIlter programmieren

Re: FIlter programmieren

von famo » Di, 22.12.2009 21:35

Es gibt noch folgende Alternative ohne Formel und extra Spalte:
1. Schreibe in (irgend-) eine Zelle 100
2. Kopiere diese Zelle
3. Markiere die Zellen die durch 100 geteilt werden sollen
4. Wähle Bearbeiten -> Inhalte Einfügen (Strg+Shit+V)
4.1 wähle hier bei Rechenoperation: Dividieren aus
5. OK und fertig.

Das Ganze dann nochmal Analog für die + 4000000, evtl. lässt sich dass auch mit dem Makro Rekorder aufzeichnen.

Ansonsten kann ich mich nur Karolus anschließen...

vg
famo

Re: FIlter programmieren

von hylli » Di, 22.12.2009 14:42

Ich glaube, dass der Sinn und Zweck einer Tabellenkalkulation hier bald ausgehebelt wird, wenn's nur ums "Programmieren" geht?!?

Hylli ;)

Re: FIlter programmieren

von Karolus » Di, 22.12.2009 14:21

Hallo
p.s die Spalten a bis g sind voll
Sag mal, sind wir hier im Kindergarten, du wirst doch noch in der Lage sein entweder eine Spalte einzufügen oder die Formel in die nächste freie Spalte reinzuschreiben - und was muss bitteschön bei dieser simplen Routine programmiert werden ?

Evtl. möchtest du bei weiteren Fragen dieser Art zunächst mal ins http://www.ooowiki.de/ schauen!

Re: FIlter programmieren

von damuschong » Di, 22.12.2009 13:59

okay, schonmal gut, jetzt müsst ich das nur noch programmieren, mit dem Makrorecorder klappt das leider nicht ;(

gruß

p.s die Spalten a bis g sind voll

Re: FIlter programmieren

von Karolus » Di, 22.12.2009 13:48

Hallo
Schreib in E1 die Formel:
=D1/100+4000000
und doppelklicke die rechte untere Rahmenecke von E1.

Gruß Karo

Re: FIlter programmieren

von damuschong » Di, 22.12.2009 13:27

jetzt hätt ich doch noch ne frage ;) (bald schmeißt ihr mich bestimmt raus)

mit welchem code kann ich zb. die Zahl 12345 durch hundert teilen und dann 4000000 addieren ?

Gibt es die Möglichkeit, dass dann mit allen zellen eine Spalte ( spalte4) durchzuführen ?

schon mal vielen dank im Vorraus

mfg programmier-dummie ;)

Re: FIlter programmieren

von damuschong » Di, 22.12.2009 12:32

Vielen Dank, läuft alles suuper, ;)

Re: FIlter programmieren

von Karolus » Di, 22.12.2009 12:16

Hallo


args1(10).Value = "^[0-9]{2,}|[^1-3]|-$"

Gruß Karo

Re: FIlter programmieren

von damuschong » Di, 22.12.2009 12:02

Vielen dank ;)!!!! funktioniert super,
eine(hoffentlich) letzte frage hätt ich noch , wie bekomme ich zeilen mit negativen werten in der Spalte raus ?, danke

Re: FIlter programmieren

von Karolus » Di, 22.12.2009 11:38

Hallo
es gibt keinen funktionierenden Suchausdruck für leere Zellen, aber ich hab etwas anders dafür gefunden - probiere mal den Code unten.

Code: Alles auswählen

sub suchen_ausblenden

dim ocontroller   as object

ocontroller   = ThisComponent.CurrentController
with createUnoService("com.sun.star.frame.DispatchHelper")

dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "ToPoint"
args2(0).Value = "C1:C2000"

	.executeDispatch(ocontroller, ".uno:GoToCell", "", 0, args2())

oController.select(oController.Selection.queryEmptyCells)
	.executeDispatch(oController, ".uno:HideRow", "", 0, Array())

	.executeDispatch(oController, ".uno:GoToCell", "", 0, args2())

dim args1(17) as new com.sun.star.beans.PropertyValue
args1(0).Name = "SearchItem.StyleFamily"
args1(0).Value = 2
args1(1).Name = "SearchItem.CellType"
args1(1).Value = 0
args1(2).Name = "SearchItem.RowDirection"
args1(2).Value = true
args1(3).Name = "SearchItem.AllTables"
args1(3).Value = false
args1(4).Name = "SearchItem.Backward"
args1(4).Value = false
args1(5).Name = "SearchItem.Pattern"
args1(5).Value = false
args1(6).Name = "SearchItem.Content"
args1(6).Value = false
args1(7).Name = "SearchItem.AsianOptions"
args1(7).Value = false
args1(8).Name = "SearchItem.AlgorithmType"
args1(8).Value = 1
args1(9).Name = "SearchItem.SearchFlags"
args1(9).Value = 71680
args1(10).Name = "SearchItem.SearchString"
args1(10).Value = "^[0-9]{2,}|[4-9]" 'geändert
args1(11).Name = "SearchItem.ReplaceString"
args1(11).Value = ""
args1(12).Name = "SearchItem.Locale"
args1(12).Value = 255
args1(13).Name = "SearchItem.ChangedChars"
args1(13).Value = 2
args1(14).Name = "SearchItem.DeletedChars"
args1(14).Value = 2
args1(15).Name = "SearchItem.InsertedChars"
args1(15).Value = 2
args1(16).Name = "SearchItem.TransliterateFlags"
args1(16).Value = 1280
args1(17).Name = "SearchItem.Command"
args1(17).Value = 1

	.executeDispatch(oController, ".uno:ExecuteSearch", "", 0, args1())
	.executeDispatch(oController, ".uno:HideRow", "", 0, Array())
end with
end sub
Gruß Karo

Re: FIlter programmieren

von damuschong » Di, 22.12.2009 11:13

okay, jetzt musas ich nur noch die Leerzeichen ausblenden, wie könnte das klappen ?
Mein bisheriger coed sieht so aus

Code: Alles auswählen

sub suchen_und_ausblenden

dim document   as object
dim dispatcher as object

document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "ToPoint"
args2(0).Value = "F1:F10000"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args2())

dim args1(17) as new com.sun.star.beans.PropertyValue
args1(0).Name = "SearchItem.StyleFamily"
args1(0).Value = 2
args1(1).Name = "SearchItem.CellType"
args1(1).Value = 0
args1(2).Name = "SearchItem.RowDirection"
args1(2).Value = true
args1(3).Name = "SearchItem.AllTables"
args1(3).Value = false
args1(4).Name = "SearchItem.Backward"
args1(4).Value = false
args1(5).Name = "SearchItem.Pattern"
args1(5).Value = false
args1(6).Name = "SearchItem.Content"
args1(6).Value = false
args1(7).Name = "SearchItem.AsianOptions"
args1(7).Value = false
args1(8).Name = "SearchItem.AlgorithmType"
args1(8).Value = 1
args1(9).Name = "SearchItem.SearchFlags"
args1(9).Value = 71680

args1(10).Name = "SearchItem.SearchString"
args1(10).Value = "^[0-9]{2,}|[4-9]|^0|0$|"

args1(11).Name = "SearchItem.ReplaceString"
args1(11).Value = ""
args1(12).Name = "SearchItem.Locale"
args1(12).Value = 255
args1(13).Name = "SearchItem.ChangedChars"
args1(13).Value = 2
args1(14).Name = "SearchItem.DeletedChars"
args1(14).Value = 2
args1(15).Name = "SearchItem.InsertedChars"
args1(15).Value = 2
args1(16).Name = "SearchItem.TransliterateFlags"
args1(16).Value = 1280
args1(17).Name = "SearchItem.Command"
args1(17).Value = 1

dispatcher.executeDispatch(document, ".uno:ExecuteSearch", "", 0, args1())

dispatcher.executeDispatch(document, ".uno:HideRow", "", 0, Array())
End Sub

Irgendwie müsste ich jetzt in dieser Zeile hinzufügen, dass auch leerzeichen betroffen sind
args1(10).Name = "SearchItem.SearchString"
args1(10).Value = "^[0-9]{2,}|[4-9]|^0|0$|"

wie lautet dafür der code ?

Re: FIlter programmieren

von damuschong » Di, 22.12.2009 09:55

mein Problem mit dem bisherigen code ist, dass

1. nicht nach den Kriterien 1, 2, 3 in Splate 3 gefiltert wird
2. Zeilen die in Spalte 3 leer sind angezeigt werden

Kann mir jemand helfen ?

danke

Re: FIlter programmieren

von hylli » Di, 22.12.2009 09:43

Nein, denn grundsätzlich funktioniert die Vorgehensweise bei mir, auch wenn mir der Suchstring mal wieder wie ein böhmisches Dorf vorkommt.

Hylli ;)

Re: FIlter programmieren

von damuschong » Di, 22.12.2009 09:36

args1(10).Value = "^[0-9]{2,}|[4-9]$"

könnte es sein ,dass in dieser Zeile etwas nicht stimmt ?

Re: FIlter programmieren

von hylli » Di, 22.12.2009 09:35

Hm, ok stimmt.

Aber der Filter ist ja so einfach, dass man den recht schnell zusammengebastelt hat, gleich bei welcher Datei. Wenn's natürlich komplexer wäre, dann wäre wahrscheinlich die Makrolösung zu bevorzugen.

Hylli

Nach oben