Wörter aus Tabellenzelle aussortieren / herausfiltern.

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: Wörter aus Tabellenzelle aussortieren / herausfiltern.

Re: Wörter aus Tabellenzelle aussortieren / herausfiltern.

von Stephanie » Sa, 09.04.2011 22:15

Hallo,

danke für die weitere Illustration. Das macht das anschaulicher.

Also in
Meine Makros & Dialoge.Standard - OpenOffice.org Basic
(dem Fenster das aufgeht, nachdem man dort auf Bearbeiten klickt)
doch nur den aktuellen Makro reinschreiben - und benennen und verwalten auch optional in
OpenOffice.org Basic Makros

Danke nochmals allen für die Hilfe :D .

@karolus
Ich habe gerade deinen Beitrag im anderen Thread gesehen viewtopic.php?f=3&t=47873
Tut mir leid, das war ein Fehler von mir ich hatte dir eine 'sheetFunctions.py statt 'sheetFunction.py' in das zip-archiv eingepackt.
Benenne die Datei im Ordner '..../Scripts/python/' um.
Glücklicherweise ist das Problem ja schon gelöst, aber falls das jemals nochmal benutzt werden muss wissen wir dann, was zu tun ist.

Stephanie

Re: Wörter aus Tabellenzelle aussortieren / herausfiltern.

von F3K Total » Sa, 09.04.2011 19:15

Hallo Stephanie,
ich habe Dir mal ein Bildchen ein bisschen kommentiert, es ist das Fenster was kommt, wenn Du
1.) entweder Alt+F11 drückst
2.) oder über "Extras/Makros/Makros verwalten/OpenOffice.org Basic" gehst.
Beides ist das gleiche!
ALT_F11.png
Nun kannst Du dein Modul, und dann rechts dein Makro markieren. Und dann das Makro:
1.) Ausführen
2.) Schließen
3.) Zuordnen
4.) Bearbeiten
5.) Löschen

Wenn Du auf "Bearbeiten" gehst, siehst Du den Text des Makros und kannst es verändern/kopieren/in der Kopfzeile umbenennen.
Am unteren Rand des Fensters zeigt der Reiter den Namen des aktuellen Modules.

Wenn Du auf "Verwalten" klickst, kannst Du Module, Dialoge und Bibliotheken anlegen/löschen/bearbeiten.
Das mit den Dialogen haben wir später :)

Gruß R

Gruß R

Re: Wörter aus Tabellenzelle aussortieren / herausfiltern.

von Stephanie » Sa, 09.04.2011 17:36

Hallo,
F3K Total hat geschrieben:Der Name des Makros steht immer oben: "Find_String"
Oben in
Meine Makros & Dialoge.Standard - OpenOffice.org Basic
Ja?
F3K Total hat geschrieben:Hier kannst Du das Makro auch einfach umbenennen indem Du es z.B. "Sub Find_weiss_schwarz_gruen_hellgruen" nennst.
Das Makro endet immer mit "End Sub".
Willst Du also eine weitere Variante anfertigen, kopierst Du den Text, fügst ihn unterhalb von "End Sub" ein, gehst zum Kopf des eingefügten Textes und benennst ihn wie oben um. Dann änderst Du die Farben usw. Speichern und du hast ein zweites Makro.
Oh, oh. Man soll alle Makros da stehen lassen in Meine Makros & Dialoge.Standard - OpenOffice.org Basic und nur untereinander auflisten? Bisher war ich davon ausgegangen, dass man alles markieren und ersetzten sollte und habe das auch gemacht (hatte ich in diesem Topic auf Seite 2 geschrieben und keiner hat widersprochen).

Wenn man alle Makros stehen lässt, woher soll das Programm denn wissen welcher Makro ausgeführt werden soll?

Nachtrag:

Also ich bin jetzt erst mal bei meiner alten Methode geblieben und habe den bestehenden Makro bearbeitet bzw. durch die bearbeitete Version ersetzt. Wenn das der falsche Weg ist, erklärt mir noch mal wer, die das richtig gehen sollte?

Das hat aber keine unmittelbare Eile, das werde ich erst brauchen, wenn ich mal wieder einen anderen Makro benutzten muss.

Stephanie

Re: Wörter aus Tabellenzelle aussortieren / herausfiltern.

von F3K Total » Sa, 09.04.2011 17:27

Alles richtig (4 in 5 ändern usw.)
Der Name des Makros steht immer oben: "Find_String"
Hier kannst Du das Makro auch einfach umbenennen indem Du es z.B. "Sub Find_weiss_schwarz_gruen_hellgruen" nennst.
Das Makro endet immer mit "End Sub".
Willst Du also eine weitere Variante anfertigen, kopierst Du den Text, fügst ihn unterhalb von "End Sub" ein, gehst zum Kopf des eingefügten Textes und benennst ihn wie oben um. Dann änderst Du die Farben usw. Speichern und du hast ein zweites Makro.

Gruß R

Re: Wörter aus Tabellenzelle aussortieren / herausfiltern.

von Stephanie » Sa, 09.04.2011 17:20

Hallo,

Je länger ich das angucke, desto besser gefällt es mir, das ist wirklich ganz toll, vielen Dank :D .

Da, wo ich es versäumt hatte eine Farbe einzutragen, ist Spalte B leer geblieben und das springt gleich ins Auge, weil da der Text aus A weit nach rechts übersteht, während ansonsten der Text in Spalte A auf 1 cm Breite zusammengequetscht ist.

Ich sagte ja schon vorher, die Zeilen ohne Farbe muss ich manuell nachbearbeiten, die kriegen jetzt vermutlich eine fünfte Farbe ab oder werden den anderen Farben zugeordnet.

Für Farbe 5 muss ich das jetzt so ändern

dim suchstring(4) as String
suchstring(1)= "schwarz"
suchstring(2)= "weiß"
suchstring(3)= "grün"
suchstring(4)= "hell grün"


dim suchstring(5) as String
suchstring(1)= "schwarz"
suchstring(2)= "weiß"
suchstring(3)= "grün"
suchstring(4)= "hell grün"
suchstring(5)= "blau"


und vermutlich

for j=1 to 4

ändern in
for j=1 to 5

ja?
F3K Total hat geschrieben:Eine schwere Geburt! Aber das Baby hat das Licht der Welt erblickt :D
Na, dann hast Du es ja jetzt, kannst ja noch versuchen den Button anzulegen.
Nein, einen Button brauche und will ich eigentlich nicht, ich bin ja nur am Ergebnis interessiert :)

Sobald ich noch die farblosen Zeilen verarztet habe wird das Ergebnis in meine Gesamttabelle reinkopiert und dann kann ich mich an die nächste Aufgabe machen.

Ich muss nur noch rausfinden, wie und wo ich den Makro benenne, wenn ich jetzt verschiedene Versionen davon kriege.

Stephanie

Re: Wörter aus Tabellenzelle aussortieren / herausfiltern.

von F3K Total » Sa, 09.04.2011 17:11

Eine schwere Geburt! Aber das Baby hat das Licht der Welt erblickt :D
Na, dann hast Du es ja jetzt, kannst ja noch versuchen den Button anzulegen.

Gruß R

Re: Wörter aus Tabellenzelle aussortieren / herausfiltern.

von Stephanie » Sa, 09.04.2011 17:08

Hallo,

beim weiteren Umherklicken und probieren habe ich festgestellt, dass die Tabellennamen doch nur in OpenOffice.org Base Makros in der Spalte "Makros aus" waren und nicht in "vorhandene Makros in:"

Unter "vorhandene Makros in:" habe ich nur "find string" habe auf "ausführen" geklickt und jippie, ich habe Ergebnisse in Spalte B und C! :-D Alle Farben säuberlich gelistet! Super!

Stephanie

Re: Wörter aus Tabellenzelle aussortieren / herausfiltern.

von F3K Total » Sa, 09.04.2011 17:04

Wenn Du ALT+F11 drückst, gibt es neben dem Namen der Tabelle ein "+" Zeichen zum öffnen des Baumes ... da auf Standard/Module1/Find_String". "Find_String" einfach markieren und rechts oben auf "Ausführen". Oder im "Formular-Entwurftmodus" einen Button erzeugen, dann im Kontextmenue des Buttons unter "Kontrollfeld" den Reiter Ereignisse anklicken und mit den drei kleinen Punkten rechts dem Ereignis "Aktion bestätigen" eben dieses Makro "Find string" zuordnen. Kontrollfeldfenster schließen, Entwurfsmodus verlassen, Datei speichern, fertig. Jetzt läuft das Makro bei Knopfdruck.

Gruß R

Re: Wörter aus Tabellenzelle aussortieren / herausfiltern.

von Stephanie » Sa, 09.04.2011 16:57

Hallo,

das mit dem umbenennen der 1000 ist uns gerade beiden gleichzeitig eingefallen, das habe ich gemacht.

Und dann

Extras Makros Makros verwalten OO.o Basic - meine Makros - Standard - neu und Code da reinkopieren.

und auf speichern geklickt.

Ich glaube ich hätte vorher unter Makroname oder sonst irgendwo das Teil benennen sollen.

Nachdem ich auf speichern geklickt habe ist nichts passiert. Und ich muss jetzt mal suchen gehen, wo das unbenannte Teil wohl gelandet ist und ob es irgendwie automatisch benannt wurde?

Nachtrag:
Ach ja, Alt F11 gedrückt. Anscheinend hat der Makro automatisch den Namen der Tabelle abgekriegt. Da sitzt der Makro nun. Wie krieg ich ihn dazu etwas zu machen?

Sorry, wie schon gesagt sind dies meine ersten Ausflüge in die Makrowelt, ihr könnt bei mir hier keine Vorkenntnisse erwarten.

Stephanie

Re: Wörter aus Tabellenzelle aussortieren / herausfiltern.

von F3K Total » Sa, 09.04.2011 16:48

Hast Du den Code auch gelesen? Er geht unverändert nur bis Zeile 1000!
Da wo die "1000" steht, mußt Du dann eine größere Zahl eingeben. Speichern nicht vergesssen.

Gruß R
Nachtrag1:
Genau!
Nachtrag2:
Wenn Du möchtest, dass grün unter grün, weiß unter weiß usw. steht, nimm diesen Code:

Code: Alles auswählen

Sub Find_String

dim suchstring(4) as String
suchstring(1)= "schwarz"
suchstring(2)= "weiß"
suchstring(3)= "grün"
suchstring(4)= "hell grün"

osheet=thiscomponent.sheets.getbyname("Tabelle1")'hier den Namen der Tabelle einsetzen
for i = 1 to 1000 'hintere Zahl (1000) gibt maximale Zeilenzahl an innerhalb derer gesucht werden soll
ocell=osheet.getcellbyposition(0,i)
if ocell.Type = com.sun.star.table.CellContentType.EMPTY then exit for 
 for j=1 to 4
    if Instr(1,ocell.string,suchstring(j),0)>0 then
       onewcell=osheet.getcellbyposition(j,i)
       onewcell.string=suchstring(j)
    endif
 next j
next i

End Sub
Gruß R

Re: Wörter aus Tabellenzelle aussortieren / herausfiltern.

von Stephanie » Sa, 09.04.2011 16:23

Hallo,
F3K Total hat geschrieben:Wenn ich auf den Button "finde "schwarz..." drücke wird das Makro ausgeführt und ich habe folgendes Ergebnis:
find_String.png
d.h: in Zeile 2 ist der Text "grün" enthalten, in Zeile 9 "schwarz","grün" und "hell grün" u.s.w., war es nicht das was Du wolltest?
ach so, mir war nicht klar, dass das ein Button ist. Ich weiß jetzt gar nicht mehr ob ich da draufklicken konnte oder nicht? Ich glaube aber nicht. Ich hatte das Dokument nur geöffnet, nicht auf meinem PC gespeichert und einige Funktionen waren in dem "Lese"-Modus anscheinend nicht verfügbar.

Ich probiere es dann gleich noch mal.

Danke für die ausführliche Bebilderung.

Nachtrag:

ich habe es jetzt noch mal in der nur geöffnet versus der gespeichert und geöffneten Version probiert, in der nur geöffneten ungespeicherten Version funktioniert der Button nicht, in der gespeicherten Version schon.

Selbstverständliches Wissen könnt ihr bei mir leider nicht unbedingt voraussetzen, ich kenne nur die Funktionen die ich regelmäßig benötige und benutze :wink: .

Dann suche ich jetzt mal den Code.

Nachtrag2

Code gefunden und kopiert, dann lasse ich den jetzt mal auf alle 4000 Zellen meiner Testspalte los.

Ich hoffe das geht jetzt wieder über
Extras Makros Makros verwalten OO.o Basic neu und Code da reinkopieren.

Nachtrag 3

Also an diesem Code

Code: Alles auswählen

REM  *****  BASIC  *****

Sub Find_String

dim suchstring(4) as String
suchstring(1)= "schwarz"
suchstring(2)= "weiß"
suchstring(3)= "grün"
suchstring(4)= "hell grün"

osheet=thiscomponent.sheets.getbyname("Tabelle1")'hier den Namen der Tabelle einsetzen
for i = 1 to 1000 'hintere Zahl (1000) gibt maximale Zeilenzahl an innerhalb derer gesucht werden soll
ocell=osheet.getcellbyposition(0,i)
if ocell.Type = com.sun.star.table.CellContentType.EMPTY then exit for 
 for j=1 to 4
    if Instr(1,ocell.string,suchstring(j),0)>0 then
        k=1
       back:
       onewcell=osheet.getcellbyposition(k,i)
       if onewcell.Type = com.sun.star.table.CellContentType.EMPTY then
       onewcell.string=suchstring(j)
       else
       k=k+1
       goto back
       endif
    endif
 next j
next i

End Sub
ändere ich jetzt
for i = 1 to 1000 'hintere Zahl (1000)

um in
for i = 1 to 5000 'hintere Zahl (5000)
damit alle Zeilen abgesucht werden richtig?

Stephanie

Re: Wörter aus Tabellenzelle aussortieren / herausfiltern.

von F3K Total » Sa, 09.04.2011 15:36

Hallo Stephanie, drücke mal ALT+F11 dann kommt dieses Fenster:
basicmakros.png
Wenn Du jetzt "Bearbeiten" drückst, siehst Du den Basic-Code . Hier kannst Du ihn auch verändern.
Wenn ich auf den Button "finde "schwarz..." drücke wird das Makro ausgeführt und ich habe folgendes Ergebnis:
find_String.png
d.h: in Zeile 2 ist der Text "grün" enthalten, in Zeile 9 "schwarz","grün" und "hell grün" u.s.w., war es nicht das was Du wolltest?

Gruß R

Nachtrag: Um Makros ausführen zu können muß man dies zulassen, auch wenn es eigene sind.

Nachtrag2:
Solltest Du beim Drücken des Buttons "finde "schwarz..." kein Ergebnis bekommen, kann es daran liegen, dass Du im Entwurfsmodus für Formulare bist:
Ansicht/Symbolleisten/Formularentwurf-> Haken setzen.
Wenn die Symbolleiste so aussieht:
F1.png
bist Du im Entwurfmodus, bitte einmal auf das "Geodreieck/Lineal" klicken, dann wird ein Großteil der Leiste gedimmt, und du bist nicht mehr im Entwurfsmodus.
Jetzt funktioniert der Button "finde "schwarz..." auch und Du solltest Dein Ergebnis bekommen.

Re: Wörter aus Tabellenzelle aussortieren / herausfiltern.

von Stephanie » Sa, 09.04.2011 15:20

Hallo,

ich habe gerade draufgeklickt und auf öffnen und bekomme die Meldung

"Dieses Dokument enthält Makros
Makros können Viren enthalten
Die Ausführung von Makros wird aufgrund der aktuellen Sicherheitseinstellung in Extras Optionen OO.o Sicherheit unterbunden.

Manche Funktionen stehen daher möglicherweise nicht zur Verfügung."


Ich habe die Makrosicherheit jetzt mal gerade von hoch auf mittel runtergestuft, ich kann das ja später wieder umstellen.

Ich nehme an dieser Makroblocker wirkt nur bei heruntergeladenen Makros und nicht bei Makros, die ich selber geschrieben bzw. selber aus diesem Forum in Calc hereinkopiert habe?

Nachtrag: nachdem ich die Sicherheitsstufe auf mittel herabgesetzt habe, habe ich das Dokument noch mal heruntergeladen und geöffnet und "Makros ausführen" ja geklickt.

Soweit sehe ich nur den Ausgangstext und kein Ergebnis.

In der Spalte C sehe ich ein graues Feld
finde schwarz,weiß,grün,hell grün

Wo sollte denn das Ergebnis stehen?

Welche Formel / was für ein Code wurde verwendet? Ich kenne mich leider mit Makros so schlecht aus, dass ich gar nicht weiß wo ich danach suchen soll, was da verwendet wurde.

Stephanie

Re: Wörter aus Tabellenzelle aussortieren / herausfiltern.

von F3K Total » Sa, 09.04.2011 15:11

Hallo Stephanie,
habe ein kleines BASIC-Makro geschrieben, was deinen Wünschen entsprechen sollte, siehe Anhang.
Gruß R

Re: Wörter aus Tabellenzelle aussortieren / herausfiltern.

von Stephanie » Sa, 09.04.2011 12:34

Hallo,
Karolus hat geschrieben:
Ich kopiere jetzt also meinen Pythonscript Ordner einfach rein in C:\Programme\OpenOffice.org 3\Basis\program ?
Nein, auf keinen Fall.
Das kam gerade noch rechtzeitig, ich war schon drauf und dran das zu machen.

Ich habe jetzt PC ausgeschaltet und neu gestartet und es noch mal probiert und habe weiterhin exakt die gleiche Fehlermeldung.

Stephanie

Nach oben