Nach Zelleninhalt suchen und genaue Adresse/Position zurückgeben

Alles zur Programmierung im OpenOffice.org
Antworten
Fritz_70
Beiträge: 11
Registriert: Fr 15. Sep 2017, 22:49

Nach Zelleninhalt suchen und genaue Adresse/Position zurückgeben

Beitrag von Fritz_70 » Di 3. Okt 2017, 11:32

Hallo mikele,

ich habe diese Beispiel gefunden.

Code: Alles auswählen

Sub Position_auslesen

   oActiveCell = ThisComponent.getCurrentSelection()
    
    oConv = ThisComponent.createInstance("com.sun.star.table.CellAddressConversion")
    oConv.Address = oActiveCell.getCellAddress
    
    msgbox  oConv.UserInterfaceRepresentation
      
End Sub
In diesem Beispiel erhält man die genaue Adresse von einer ausgewählten Zelle "getCurrentSelection()".

Nun meine Frage:
Geht dies auch in Verbindung mit einer Suchfunktion?

Beispiel: In einer Spalte stehen die Zahlen 1 bis 100, nun möchte ich mir die Zellenadresse anzeigen lassen,in der z.B. die Zahl 80 steht.

Man könnte jetzt sagen,klicke einfach auf die Zahl 80 und dann sieht man die Adresse,oder Spaltennummer.
Das ist aber nicht mein Ziel.

Gruß Fritz

mikele
Beiträge: 499
Registriert: Sa 23. Jul 2011, 22:09

Re: Nach Zelleninhalt suchen und genaue Adresse/Position zurückgeben

Beitrag von mikele » Di 3. Okt 2017, 13:23

Hallo Fritz,
zunächst sollte grundsätzlich geklärt werden, ob es ein Makro sein muss/soll.
Kennst du z. B. die Funktion Vergleich()?
Was ist dein eigentliches, größeres Ziel? Je nachdem bieten sich verschiedene Lösungen an. Es ist aber wenig hilfreich, einzelne kleinschrittige Fragen zu klären, wenn es für das (Gesamt)Problem einen effektiveren Ansatz gibt.
Ein Ansatz wäre eine Schleife durch alle in Frage kommenden Zellen. Per .getCellAddress bekommst du die Adresse. Per .AbsoluteName ebenso (nur in anderer Form, z. B. "$A$4"). Nun hängt es davon ab, was du mit der Adresse eigentlich anfangen willst.
Gruß,
mikele

Fritz_70
Beiträge: 11
Registriert: Fr 15. Sep 2017, 22:49

Re: Nach Zelleninhalt suchen und genaue Adresse/Position zurückgeben

Beitrag von Fritz_70 » Di 3. Okt 2017, 15:09

Okay,dann versuche ich es dir mal an Hand von einer Datei zu erklären.
Vielleicht klappt es so besser.

Beispieldatei
zusammenfuegen.ods
(9.71 KiB) 52-mal heruntergeladen
Gruß Fritz

mikele
Beiträge: 499
Registriert: Sa 23. Jul 2011, 22:09

Re: Nach Zelleninhalt suchen und genaue Adresse/Position zurückgeben

Beitrag von mikele » Di 3. Okt 2017, 16:15

Hallo,
ok - soweit verstanden. An sich ist das ein typischer Fall für eine Datenbank, d. h. dein Ziel wäre da mit "hauseigenen" Mitteln erreichbar, ohne sich extra etwas stricken zu müssen.
Nun wird es einen triftigen Grund geben, dass du es per Tabellenkalkulation lösen musst/willst.
Anbei mal eine Lösung ohne jegliche Programmierung, fast nur unter Nutzung der Sortierfunktion.
Ich gehe davon aus, dass sich in der Tabelle1 im Bereich A2:C20 die Kategorien und im Bereich E2:G31 die Artikel.
In der Tabelle3 werden diese Bereiche per Formel untereinandergesetzt (gelb und rot markiert) und mit ein paar Formeln ergänzt (blau markiert).
Wenn du nun den Bereich A1:G50 nach kategorien_id sortierst, hast du die gewünschte Ansicht. Sortierst du nach artikel_kid hast du wieder die ursprüngliche.
Die Bereiche lassen sich natürlich anpassen und die Farben dienen nur der Illustration.
Dateianhänge
zusammenfuegen.ods
(16.57 KiB) 32-mal heruntergeladen
Gruß,
mikele

Fritz_70
Beiträge: 11
Registriert: Fr 15. Sep 2017, 22:49

Re: Nach Zelleninhalt suchen und genaue Adresse/Position zurückgeben

Beitrag von Fritz_70 » Di 3. Okt 2017, 17:47

Danke mikele für deine Mühe.
Genau,es handelt sich ja auch um eine Datenbank.
Das Problem ist,man kann die Datensätze von der alten Datenbank nicht in die neue Datenbank übertragen,weil sich die Tabellenstruktur komplett geändert hat.
Aus diesem Grund mache ich mir Kopien von der alten Datenbank im csv-Format,speichere sie dann im ods-Format und kann diese dann gut im Calc einlesen und bearbeiten.

Ich habe gerade mal die Sortierung angepasst,wie du geschrieben hast.
Echt super,hätte ich so nicht hinbekommen,also nicht mit Formeln.
Mit Kopieren und Einfügen aber erst in einigen Wochen...
Wie lange beschäftigst du dich schon mit OOffice?

Jetzt kann ich in Ruhe mal die Daten zusammensetzen.

Gruß Fritz

Antworten